Large file support for a network file server
First Claim
1. A method comprising:
- receiving at a network device a request from a client to store a large file;
determining the large file has a file size larger than a native processing capability of a network attached storage (NAS) file server;
after determining the large file has the file size larger than the native processing capability of the NAS file server, segmenting the large file into a plurality of data chunks, each of the plurality of data chunks having a chunk size that is smaller than or equal to the native processing capability of the NAS file server;
storing the plurality of data chunks in a directory on the NAS file server;
storing a directory file handle, the directory file handle referring to a location of the directory on the NAS file server, on the network device;
providing a switch file handle to the client, which is mapped to the directory file handle;
receiving at the network device a client request that includes the switch file handle;
at the network device, accessing the plurality of data chunks of the large file from the directory on the NAS file server based on the mapping between the received switch file handle and the directory file handle;
determining whether the received client request is requesting access to the large file; and
adding an entry to a file handle migration table that correlates the switch file handle that is provided to the client with the directory file handle, wherein the directory file handle is further associated with a predetermined size,wherein the determining whether the received client request is requesting access to the large file comprises;
identifying the switch file handle of the received client request in the file handle migration table to determine whether the switch file handle correlates with the directory file handle and the predetermined size, andbased on identifying the switch file handle of the received client request in the file handle migration table, determining the received client request is requesting access to the large file.
3 Assignments
0 Petitions
Accused Products
Abstract
A NAS switch provides large file support to a file server in a decentralized storage network such as a NAS (Network Attached Storage) storage network. For example, files greater than 2-GB can be stored on a 32-bit commodity file server. The NAS switch sits in the data path of a client on the front end and a commodity NAS file server on the back end. A segmentation module in the NAS switch stores large files as separate data chunks in the file server. To do so, the segmentation module stores a directory file handle, which points to a directory containing the data chunks, in place of the large file. The segmentation module can also store a large file/chunk directory association in a migration cache. A reconstruction module processes client requests concerning large files by issuing requests to specific data chunks. For example, in a read operation, the reconstruction module calculates chunk numbers to determine which file to read and offsets to determine which byte to read within a chunk.
-
Citations
25 Claims
-
1. A method comprising:
-
receiving at a network device a request from a client to store a large file; determining the large file has a file size larger than a native processing capability of a network attached storage (NAS) file server; after determining the large file has the file size larger than the native processing capability of the NAS file server, segmenting the large file into a plurality of data chunks, each of the plurality of data chunks having a chunk size that is smaller than or equal to the native processing capability of the NAS file server; storing the plurality of data chunks in a directory on the NAS file server; storing a directory file handle, the directory file handle referring to a location of the directory on the NAS file server, on the network device; providing a switch file handle to the client, which is mapped to the directory file handle; receiving at the network device a client request that includes the switch file handle; at the network device, accessing the plurality of data chunks of the large file from the directory on the NAS file server based on the mapping between the received switch file handle and the directory file handle; determining whether the received client request is requesting access to the large file; and adding an entry to a file handle migration table that correlates the switch file handle that is provided to the client with the directory file handle, wherein the directory file handle is further associated with a predetermined size, wherein the determining whether the received client request is requesting access to the large file comprises; identifying the switch file handle of the received client request in the file handle migration table to determine whether the switch file handle correlates with the directory file handle and the predetermined size, and based on identifying the switch file handle of the received client request in the file handle migration table, determining the received client request is requesting access to the large file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A Network Attached Storage (NAS) switch system comprising:
-
one or more processors; and one or more memory, wherein at least one of the one or more processors and memory are configured to perform the following operations; receiving at a network device a request from a client to store a large file; determining that the large file has a file size larger than a native processing capability of a NAS file server; after determining the large file has the file size larger than the native processing capability of the NAS file server, segmenting the large file into a plurality of data chunks, each of the plurality of data chunks having a chunk size that is smaller than or equal to the native processing capability of the NAS file server; storing the plurality of data chunks in a directory on the NAS file server; storing a directory file handle, the directory file handle referring to a location of the directory on the NAS file server, on the network device; providing a switch file handle to the client, which is mapped to the directory file handle; receiving at the network device a client request that includes the switch file handle; at the network device, accessing the plurality of data chunks of the large file from the directory on the NAS file server based on the mapping between the received switch file handle and the directory file handle; determining whether the received client request is requesting access to the large file; and adding an entry to a file handle migration table that correlates the switch file handle that is provided to the client with the directory file handle, wherein the directory file handle is further associated with predetermined size, and wherein determining whether the received client request is requesting access to the large file is accomplished by; identifying the switch file handle of the received client request in the file handle migration table to determine whether the switch file handle correlates with the directory file handle and the predetermined size, and based on identifying the switch file handle of the received client request in the file handle migration table, determining the received client request is requesting access to the large file. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 20)
-
-
19. A computer program product, comprising:
-
a computer-readable storage medium having computer program instructions and data embodied thereon comprising; receiving at a network device a request from a client to store a large file; determining that the large file has a file size larger than a native processing capability of a network attached storage (NAS) file server; after determining that the large file has the file size larger than the native processing capability of the NAS file server, segmenting the large file into a plurality of data chunks, each of the plurality of data chunks having a chunk size that is smaller than or equal to the native processing capability of the NAS file server; storing the plurality of data chunks in a directory on the NAS file server; storing a directory file handle, the directory file handle referring to a location of the directory on the NAS file server, on the network device; providing a switch file handle to the client, the switch file handle being mapped to the directory file handle; receiving at the network device a client request that includes the switch file handle; at the network device, accessing the plurality of data chunks of the large file from the directory on the NAS file server based on the mapping between the received switch file handle and the directory file handle; determining whether the received client request is requesting access to the large file; and adding an entry to a file handle migration table that correlates the switch file handle that is provided to the client with the directory file handle, wherein the directory file handle is further associated with predetermined size, and wherein determining whether the received client request is requesting access to the large file is accomplished by; identifying the switch file handle of the received client request in the file handle migration table to determine whether the switch file handle correlates with the directory file handle and the predetermined size, and based on identifying the switch file handle of the received client request in the file handle migration table, determining the received client request is requesting access to the large file. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A Network Attached Storage (NAS) system comprising:
-
means for receiving at a network device a client request to store a large file; means for determining the large file has a file size larger than a native processing capability of a NAS file server; means for segmenting the large file into a plurality of data chunks, each of the plurality of data chunks having a chunk size that is smaller than or equal to the native processing capability of the NAS file server, after determining the large file has the file size larger than the native processing capability of the NAS file server; means for storing the plurality of data chunks in a directory on the NAS file server; means for storing a directory file handle, the directory file handle referring to a location of the directory on the NAS file server, on the network device; means for providing a switch file handle to the client, the switch file handle being mapped to the directory file handle; means for receiving at the network device a client request that includes the switch file handle; and means for accessing the plurality of data chunks of the large file from the directory on the NAS file server based on the mapping between the received switch file handle and the directory file handle at the network device; means for determining whether the received client request is requesting access to the large file; and means for adding an entry to a file handle migration table that correlates the switch file handle that is provided to the client with the directory file handle, wherein the directory file handle is further associated with predetermined size, and wherein determining whether the received client request is requesting access to the large file is accomplished by; identifying the switch file handle of the received client request in the file handle migration table to determine whether the switch file handle correlates with the directory file handle and the predetermined size, and based on identifying the switch file handle of the received client request in the file handle migration table, determining the received client request is requesting access to the large file.
-
Specification