Scalable system for partitioning and accessing metadata over multiple servers
First Claim
1. A method of handling a file processing request in an aggregated file system, comprising:
- receiving a request with respect to a file, the request identifying an absolute pathname of the file in the aggregated file system;
identifying a target metadata volume that hosts metadata of the file among a plurality of metadata volumes in accordance with the request and one or more mount entries each associated with a respective one of the plurality of metadata volumes, including recursively;
identifying a mount entry when associated with a current metadata volume, wherein the mount entry identifies a relative pathname matching a respective portion of the absolute pathname, the identified relative pathname further comprising pathname sub-components of sizes ranging from one pathname component to a size of the identified relative pathname; and
selecting at least one of the pathname sub-components using the identified mount entry based upon a number indicated in a list entry pointed to by the identified mount entry, until no mount entry associated with a current metadata volume matches a respective portion of the absolute pathname, to set the current metadata volume; and
identifying the current metadata volume as the target metadata volume and sending the request to a metadata server hosting the identified target metadata volume in response to the request to a file switch for assembling the file.
0 Assignments
0 Petitions
Accused Products
Abstract
In an aggregated file system, metadata is partitioned into multiple metadata volumes. On receipt of a file processing request, a file switch examines its mount entry cache to identify a target metadata volume that hosts the metadata of the requested file. The identification begins with mount entries at a root volume and continues recursively by examining a portion of the absolute pathname of the file until the target metadata volume is identified. Finally, the file switch forwards the request to a metadata server managing the target metadata volume. Since the identification process is carried out completely within the file switch, there is no need for multiple expensive network accesses to different metadata servers.
-
Citations
36 Claims
-
1. A method of handling a file processing request in an aggregated file system, comprising:
-
receiving a request with respect to a file, the request identifying an absolute pathname of the file in the aggregated file system; identifying a target metadata volume that hosts metadata of the file among a plurality of metadata volumes in accordance with the request and one or more mount entries each associated with a respective one of the plurality of metadata volumes, including recursively; identifying a mount entry when associated with a current metadata volume, wherein the mount entry identifies a relative pathname matching a respective portion of the absolute pathname, the identified relative pathname further comprising pathname sub-components of sizes ranging from one pathname component to a size of the identified relative pathname; and selecting at least one of the pathname sub-components using the identified mount entry based upon a number indicated in a list entry pointed to by the identified mount entry, until no mount entry associated with a current metadata volume matches a respective portion of the absolute pathname, to set the current metadata volume; and identifying the current metadata volume as the target metadata volume and sending the request to a metadata server hosting the identified target metadata volume in response to the request to a file switch for assembling the file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus for handling a file processing request in an aggregated file system, comprising:
-
at least one processor; and memory coupled to the at least one processor which is configured to execute program instructions stored in the memory comprising; receiving a request with respect to a specified file, the request including an absolute pathname of the specified file in the aggregated file system; identifying a target metadata volume that hosts metadata of the file among a plurality of metadata volumes in accordance with the request and one or more mount entries each associated with a respective one of the plurality of metadata volumes, including recursively; identifying a mount entry when associated with a current metadata volume, wherein the mount entry identifies a relative pathname matching a respective portion of the absolute pathname, the identified relative pathname further comprising pathname sub-components of sizes ranging from one pathname component to a size of the identified relative pathname; and selecting at least one of the pathname sub-components using the identified mount entry based upon a number indicated in a list entry pointed to by the identified mount entry, until no mount entry associated with a current metadata volume matches a respective portion of the absolute pathname, to set the current metadata volume; and identifying the current metadata volume as the target metadata volume and sending the request to a metadata server hosting the identified target metadata volume in response to the request to a file switch for assembling the file. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A non-transitory computer readable medium having stored thereon instructions for handling a file processing request in an aggregated file system comprising machine executable code which when executed by at least one processor, causes the processor to perform steps comprising:
-
receiving a request with respect to a specified file, the request including an absolute pathname of the specified file in the aggregated file system; identifying a target metadata volume that hosts metadata of the file among a plurality of metadata volumes in accordance with the request and one or more mount entries each associated with a respective one of the plurality of metadata volumes, including recursively; identifying a mount entry when associated with a current metadata volume, wherein the mount entry identifies a relative pathname matching a respective portion of the absolute pathname, the identified relative pathname further comprising pathname sub-components of sizes ranging from one pathname component to a size of the identified relative pathname; and selecting at least one of the pathname sub-components using the identified mount entry based upon a number indicated in a list entry pointed to by the identified mount entry, until no mount entry associated with a current metadata volume matches a respective portion of the absolute pathname, to set the current metadata volume; and identifying the current metadata volume as the target metadata volume and sending the request to a metadata server hosting the identified target metadata volume in response to the request to a file switch for assembling the file. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. An aggregated file system, comprising:
-
a plurality of file servers; a plurality of metadata servers including a plurality of metadata volumes; and a plurality of file switches, each file switch including; at least one processor; and memory coupled to the at least one processor which is configured to execute program instructions stored in the memory comprising; receiving a request with respect to a specified file, the request including an absolute pathname of the specified file in the aggregated file system; identifying a target metadata volume that hosts metadata of the file among the plurality of metadata volumes in accordance with the request and one or more mount entries each associated with a respective one of the plurality of metadata volumes, including recursively; identifying a mount entry when associated with a current metadata volume, wherein the mount entry identifies a relative pathname matching a respective portion of the absolute pathname, the identified relative pathname further comprising pathname sub-components of sizes ranging from one pathname component to a size of the identified relative pathname; and selecting at least one of the pathname sub-components using the identified mount entry based upon a number indicated in a list entry pointed to by the identified mount entry, until no mount entry associated with a current metadata volume matches a respective portion of the absolute pathname, to set the current metadata volume; and identifying the current metadata volume as the target metadata volume and sending the request to a metadata server hosting the identified target metadata volume in response to the request to a file switch for assembling the file. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36)
-
Specification