Storing lossy hashes of file names and parent handles rather than full names using a compact table for network-attached-storage (NAS)
First Claim
1. A method for accessing files, the method comprising:
- receiving from a network, by a file system apparatus, a file-access request from a client, wherein the file-access request contains a virtual file handle;
extracting, by the file system apparatus, a client unique identifier from the virtual file handle, wherein prior to receiving the file-access request from the client, receiving a file-opening request that contains a file name and a parent-directory virtual file handle and combining, by the file system apparatus, the file name and the parent-directory virtual file handle into a combination name for use in generating and providing the client unique identifier to the client for inclusion in the virtual file handle of the file access request;
searching, by the file system apparatus, a first table of file translation entries for a matching entry that matches the client unique identifier;
reading, by the file system apparatus, a server identifier from the matching entry;
obtaining, by the file system apparatus, a native file handle using the server identifier and the file-access request from the client;
replacing, by the file system apparatus, the virtual file handle in the file-access request with the native file handle to generate a translated file-access request; and
sending, by the file system apparatus, the translated file-access request over the network to a selected one of a plurality of storage apparatuses.
2 Assignments
0 Petitions
Accused Products
Abstract
Multiple Network Attached Storage (NAS) appliances are pooled together by a virtual NAS translator, forming one common name space visible to clients. Clients send messages to the virtual NAS translator with a file name and a virtual handle of the parent directory that are concatenated to a full file-path name and compressed by a cryptographic hash function to generate a hashed-name key. The hashed-name key is matched to a storage key in a table. The full file-path name is not stored, reducing the table size. A unique entry number is returned to the client as the virtual file handle that is also stored in another table with one or more native file handles, allowing virtual handles to be translated to native handles that the NAS appliance servers use to retrieve files. File movement among NAS servers alters native file handles but not virtual handles, hiding NAS details from clients.
47 Citations
11 Claims
-
1. A method for accessing files, the method comprising:
-
receiving from a network, by a file system apparatus, a file-access request from a client, wherein the file-access request contains a virtual file handle; extracting, by the file system apparatus, a client unique identifier from the virtual file handle, wherein prior to receiving the file-access request from the client, receiving a file-opening request that contains a file name and a parent-directory virtual file handle and combining, by the file system apparatus, the file name and the parent-directory virtual file handle into a combination name for use in generating and providing the client unique identifier to the client for inclusion in the virtual file handle of the file access request; searching, by the file system apparatus, a first table of file translation entries for a matching entry that matches the client unique identifier; reading, by the file system apparatus, a server identifier from the matching entry; obtaining, by the file system apparatus, a native file handle using the server identifier and the file-access request from the client; replacing, by the file system apparatus, the virtual file handle in the file-access request with the native file handle to generate a translated file-access request; and sending, by the file system apparatus, the translated file-access request over the network to a selected one of a plurality of storage apparatuses. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for accessing files, comprising:
-
receiving from a file system apparatus, via a network, by a storage apparatus, a translated file-access request of a client device, wherein the translated file-access request includes a native file handle determined based on a virtual file handle having a client unique identifier and included in a file-access request of the client device, wherein a file-opening request including a file name and parent-directory virtual file handle have been combined into a combination name prior to the translated file-access request being received by the storage apparatus for use in generating and providing the client unique identifier to the client device for inclusion in the virtual file handle of the file access request; accessing a selected file stored on the storage apparatus, by the storage apparatus, using the native file handle; and sending the accessed file back to the client device, via the network, by the storage apparatus. - View Dependent Claims (8, 9)
-
-
10. An article of manufacture comprising:
-
a non-transitory tangible storage medium; and a plurality of instructions stored thereon, and configured to cause an apparatus, in response to execution of the instructions by the apparatus, to perform operations including; receiving from a network, a file-access request from a client device that contains a virtual file handle; extracting a client unique identifier from the virtual file handle, wherein prior to receiving the file-access request from the client device, receiving a file-opening request from the client device that contains a file name and a parent-directory virtual file handle and combining the file name and the parent-directory virtual file handle into a combination name for use in generating and providing the client unique identifier to the client device for inclusion in the virtual file handle of the file access request; searching a first table for a matching entry that matches the client unique identifier; reading a server identifier from the matching entry; obtaining a native file handle using the server identifier and the file-access request; replacing the virtual file handle in the file-access request with the native file handle to generate a translated file-access request; and sending the translated file-access request over the network to one of a plurality of storage devices.
-
-
11. An article of manufacture comprising:
-
a non-transitory tangible storage medium; and a plurality of instructions stored thereon, and configured to cause a storage apparatus, in response to execution of the instructions by the storage apparatus, to perform operations including; receiving from a file system apparatus, via a network, a translated file-access request of a client device, wherein the translated file-access request includes a native file handle determined based on a virtual file handle including a client unique identifier and included in a file-access request of the client device, wherein a file-opening request including a file name and parent-directory virtual file handle have been combined into a combination name prior to the translated file-access request being received by the storage apparatus for use in generating and providing the client unique identifier to the client device for inclusion in the virtual file handle of the file access request; accessing a selected file stored on the storage apparatus, using the native file handle; and sending the accessed file back to the client device, via the network.
-
Specification