Shared file system
First Claim
1. A distributed file system residing on a plurality of computers, the distributed file system having a namespace defining a directory structure of files and metadata that includes pointers to real-data, the file system comprising:
- a) at least one server computer running server software for managing the namespace;
b) a network; and
c) at least one client computer located separately from the server computer and in communication with the server computer over the network, each running client software, the client softwarei) issuing namespace requests to the server computer over the network, each namespace request consisting of a filename and an operation encoded into a protocol interpretable by the server computer, the namespace requests selected from the group consisting of requests to add new filenames to the namespace, requests to remove existing filenames from the namespace, and requests to search the namespace for filenames, andii) directly retrieving, analyzing, and altering the metadata.
1 Assignment
0 Petitions
Accused Products
Abstract
A shared storage distributed file system is presented that provides users and applications with transparent access to shared data stored on network attached storage devices by utilizing layering techniques to inherit file management functionality from existing file systems. The present invention stores meta-data for the shared data as real-data in a standard, non-modified, client-server distributed file system, such as NFS. In effect, the standard client-server file system acts as a meta-data server. The name space consisting of inode files stored as real-data on the meta-data server acts as the name space for the shared data. Similarly, file attributes of the inode files are utilized as the file attributes of the shared data. By utilizing an existing client-server system as the meta-data server, development time and complexity are greatly reduced, while speed advances in the underlying client-server system may be incorporated without alteration of the present invention. A method for communicating with network attached storage devices over layered file systems is also presented.
47 Citations
56 Claims
-
1. A distributed file system residing on a plurality of computers, the distributed file system having a namespace defining a directory structure of files and metadata that includes pointers to real-data, the file system comprising:
-
a) at least one server computer running server software for managing the namespace; b) a network; and c) at least one client computer located separately from the server computer and in communication with the server computer over the network, each running client software, the client software i) issuing namespace requests to the server computer over the network, each namespace request consisting of a filename and an operation encoded into a protocol interpretable by the server computer, the namespace requests selected from the group consisting of requests to add new filenames to the namespace, requests to remove existing filenames from the namespace, and requests to search the namespace for filenames, and ii) directly retrieving, analyzing, and altering the metadata. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A network of connected computing devices for implementing a shared storage distributed file system, the file system having a namespace, real-data, and metadata, the network comprising:
-
a) a network storage device connected to a the network; b) a server computer that manages the namespace by retrieving and modifying directory files in response to namespace requests, including requests to add new filenames to directory files and to remove existing filenames from directory files; and c) a client computer in network communication with the server computer and the network storage device, wherein the client computer i) issues namespace requests to the server computer over the network communication, ii) reads and writes the real-data directly from the network storage device, and iii) creates, retrieves, and modifies the metadata. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. An improved file system operating as part of a client computer comprising:
-
a) a digital communication path to a storage device; b) a network communication path to a server computer operating a server software program that maintains a namespace by receiving a namespace request from the client computer, reading the directory file corresponding to the request from the storage device, modifying the directory file, and writing the directory file to the storage device; and c) a client software program that runs on the client computer that responds to file system requests from an application program concerning a file, wherein the client software i) obtains addressing metadata containing at least one pointer addressing real-data for the file, ii) uses the addressing metadata to locate real-data associated with the file on the storage device, iii) alters the addressing metadata for the file; and iv) submits namespace requests across the network communication path to the server computer. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31)
-
-
32. An improved file system operating on a client computer and a server computer to access a storage device containing real-data and one or more direct pointers addressing the real-data, the improved file system comprising:
-
a) a server software program residing on the server computer, the server software program i) maintains a namespace defining a directory structure of files on the storage device, ii) services namespace requests from the client computer, and iii) stores an indirect pointer within the namespace related to a file, the indirect pointer addressing at least one file related direct pointer on the storage device; and b) a client software program residing on the client computer, the client computer being located separately from the server computer and issuing namespace requests to the server computer, the client software program responds to file system requests from an application program concerning the file;
the client software program furtheri) obtains the indirect pointer for the file from the server software program, ii) uses the indirect pointer to obtain the file related direct pointer directly from the storage device, and iii) uses the file related direct pointer to read and write real-data associated with the file directly from the storage device. - View Dependent Claims (33, 34, 35, 36, 37)
-
-
38. A client computer having an improved file system, the file system providing access to data stored on a storage device, comprising:
-
a) a network connection to a server computer that is located separately from the client computer and that maintains a namespace defining a directory structure of files on the storage device, and b) client software residing and operating on the client computer that i) obtains allocation information concerning the allocation of storage on the storage device, ii) alters the allocation information for regular files during file allocation and de-allocation, and iii) submits namespace requests to the server computer over the network connection; wherein the alteration of the allocation information is performed in response to a request by an application program running on the client computer. - View Dependent Claims (39, 40, 41, 42, 43)
-
-
44. A network of connected computer devices comprising:
-
a) a first computer running software for i) managing a namespace of files, and ii) servicing namespace requests, the namespace requests including requests to add filenames to the namespace, remove filenames from the namespace, and search the namespace; and b) a second computer located separately from the first computer and running software for i) submitting to the first computer namespace requests relating to a file request and ii) analyzing and altering metadata relating to the file request, the metadata including pointers to real-data. - View Dependent Claims (45, 46, 47, 48, 49, 50)
-
-
51. A method for handling file requests by a file system comprising:
-
a) receiving the file request at a client computer; b) requesting at the client computer that a server computer which manages a namespace for the file system perform a namespace search for the file of the request, the server computer being located separately from the client computer; c) analyzing and altering metadata relating to the location of real-data of the file request at the client computer; and d) saving on a storage device the metadata altered by the client computer. - View Dependent Claims (52)
-
-
53. A method for handling file requests by a file system comprising
a) receiving the file request at a client computer; -
b) requesting at the client computer namespace data relating to the file request from a server computer, the server computer managing a namespace for the file system and the server computer also being located separately from the client computer; c) analyzing and altering metadata at the client computer, the metadata relating to the allocation information of storage on a storage device; and d) saving on the storage device the allocation information metadata altered by the client computer. - View Dependent Claims (54, 55)
-
-
56. A computer product, comprising:
-
a non-transitory computer readable medium having a computer program code embodied therein, said computer program code adapted to be executed to implement a method for handling file requests by a file system, the method comprising; a) receiving the file request at a client computer; b) requesting at the client computer that a server computer which manages a namespace for a file system perform a namespace search for the file of the request, the server computer being located separately from the client computer; c) analyzing and altering metadata relating to the location of real-data of the file request at the client computer; and d) saving the metadata altered by the client computer.
-
Specification