Shared file system
First Claim
1. A shared storage 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; and
b) a plurality of client computers each running client software, the client software i) issuing namespace requests to the server computer, and ii) 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.
135 Citations
56 Claims
-
1. A shared storage 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; and
b) a plurality of client computers each running client software, the client software i) issuing namespace requests to the server computer, and ii) directly retrieving, analyzing, and altering the metadata. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. 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 network;
b) a server computer that manages the namespace in response to namespace requests, including requests to add new filenames to the namespace and to remove existing filenames from the namespace; 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, ii) reads and writes the real-data directly from the network storage device, and iii) creates, retrieves, and modifies the metadata. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. An improved file system comprising:
-
a) a storage device;
b) a server software program that runs on a server computer and maintains a namespace; and
c) a client software program that runs on a 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, and iii) alters the addressing metadata for the file. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30)
-
-
31. An improved file system comprising:
-
a) a storage device containing real-data and one or more direct pointers addressing the real-data;
b) a server software program that runs on a server computer, the server software program i) maintains a namespace, and ii) 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
c) a client software program that runs on a client computer that responds to file system requests from an application program concerning the file;
the client software programi) 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 (32, 33, 34, 35, 36)
-
-
37. An improved file system comprising:
-
a) a storage device;
b) a server computer running server software that maintains a namespace defining a directory structure of files, and c) a client computer in network communication with the server computer and the storage device, the client computer running client software that i) obtains allocation information concerning the allocation of storage on the storage device and ii) alters the allocation information during file allocation and de-allocation. - View Dependent Claims (38, 39, 40, 41, 42)
-
-
43. A network of connected computer devices comprising:
-
a) a first computer running software for i) managing a directory structure of files, and ii) servicing directory requests, the directory requests including requests to add filenames to the directory, remove filenames from the directory, and search the directory; and
b) a second computer running software for i) submitting to the first computer directory 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 (44, 45, 46, 47, 48, 49)
-
-
50. A method for handling a file request from an application, the file request relating to real-data of a file, the real-data being stored on a network connected, shared storage device, the method comprising:
-
a) receiving the file request from the application at a client computer;
b) requesting an indirect extent pointer for the file from a server computer;
c) receiving the requested indirect extent pointer at the client computer;
d) using the indirect extent pointer to retrieve metadata from the storage device;
e) for a file read request, the client computer i) analyzing the metadata to determine the locations of the real-data stored on the storage device, and ii) reading the real-data from the storage device; and
f) for a file write request, the client computer i) analyzing the metadata to determine the locations of the real-data stored on the storage device, ii) allocating additional storage space to the file, iii) writing real-data to the storage device, iv) updating metadata, and v) storing updated metadata on the storage device. - View Dependent Claims (51)
-
-
52. A method for handling file requests by a file system comprising:
-
a) receiving the file request at a client computer;
b) requesting that a server computer perform a namespace search for the file of the request 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. - View Dependent Claims (53)
-
-
54. A method for handling file requests by a file system comprising
a) receiving the file request at a client computer; -
b) requesting namespace data relating to the file request from a server 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 the allocation information metadata altered by the client computer. - View Dependent Claims (55, 56)
-
Specification