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 translating requests from a client for accessing files on a plurality of servers comprising:
- receiving from a network a file-opening request from a client that contains a file name and a parent-directory virtual file handle;
combining the file name and the parent-directory virtual file handle into a combination name;
compressing the combination name with a cryptographic hash function to generate a hashed-name key;
searching a first table of file-translation entries for a matching entry that has a storage key that matches the hashed-name key;
reading a unique identifier from the matching entry;
generating a virtual file handle that includes the unique identifier;
sending the virtual file handle back to the client over the network in response to the file-opening request;
receiving from the network a file-access request from the client that contains the virtual file handle;
extracting a client-inputted unique identifier from the virtual file handle from the client;
searching the first table for the matching entry that has the unique identifier that matches the client-inputted unique identifier;
reading a server identifier from the matching entry;
obtaining a native file handle from a server using the server identifier and the file-access request from the client;
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 a selected server in the plurality of servers;
the selected server using the native file handle to access a selected file stored on the selected server, the selected server sending data from the selected file back to the client over the network, whereby file-access requests are translated from virtual file handles to native file handles.
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.
-
Citations
6 Claims
-
1. A method for translating requests from a client for accessing files on a plurality of servers comprising:
-
receiving from a network a file-opening request from a client that contains a file name and a parent-directory virtual file handle;
combining the file name and the parent-directory virtual file handle into a combination name;
compressing the combination name with a cryptographic hash function to generate a hashed-name key;
searching a first table of file-translation entries for a matching entry that has a storage key that matches the hashed-name key;
reading a unique identifier from the matching entry;
generating a virtual file handle that includes the unique identifier;
sending the virtual file handle back to the client over the network in response to the file-opening request;
receiving from the network a file-access request from the client that contains the virtual file handle;
extracting a client-inputted unique identifier from the virtual file handle from the client;
searching the first table for the matching entry that has the unique identifier that matches the client-inputted unique identifier;
reading a server identifier from the matching entry;
obtaining a native file handle from a server using the server identifier and the file-access request from the client;
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 a selected server in the plurality of servers;
the selected server using the native file handle to access a selected file stored on the selected server, the selected server sending data from the selected file back to the client over the network, whereby file-access requests are translated from virtual file handles to native file handles. - View Dependent Claims (2)
-
-
3. A computer-program product comprising:
-
a computer-usable medium having computer-readable program code means embodied therein for translating network-file-access messages, the computer-readable program code means in the computer-program product comprising;
network connection means for transmitting and receiving packets from a remote client and from a remote server in a plurality of Network Attached Storage (NAS) appliance servers each having a file system;
concatenation means, receiving a file name and a directory handle from the remote client, for generating a combined name-handle;
hash means, receiving the combined name-handle, for generating a hashed-name key by executing a cryptographic hash function;
wherein the hashed-name key has a fixed length and the combined name-handle has a variable length;
table means for storing a plurality of file-translation entries, each file-translation entry having a storage key, a unique identifier, and a server identifier used to obtain a native file handle for a file stored on the remote server;
first search means, responsive to the hashed-name key and coupled to the table means, for finding a matching entry in the table means, the matching entry having a storage key that matches the hashed-name key;
initial reply means for generating a reply to the remote client that contains a virtual file handle for the file, the virtual file handle being generated from the unique identifier from the matching entry;
second search means, responsive to a second request from the remote client, the second request containing the virtual file handle generated from the initial reply means and sent to the remote client, for searching the table means for the matching entry that has the unique identifier matching an extracted unique identifier extracted from the virtual file handle from the remote client; and
second reply means for generating a forwarded request to the remote server, the forwarded request containing the native file handle from the matching entry. - View Dependent Claims (4, 5, 6)
-
Specification