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 including a plurality of metadata volumes, comprising:
- receiving a request with respect to a file, the request identifying an absolute pathname of the file in the aggregated file system;
accessing a plurality of mount entries, wherein each of the plurality of mount entries is associated with a respective one of the plurality of metadata volumes as a parent metadata volume and identifies a respective distinct child metadata volume and a relative pathname associated with the child metadata volume;
identifying a target metadata volume that hosts metadata of the file among the metadata volumes in accordance with the request and the mount entries, including recursively identifying a mount entry, if any, 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 having a size based upon a maximum number of pathname components of the relative pathname that can be handled by the identified mount entry, such that the identified relative pathname is further broken into subcomponents of sizes ranging from one pathname component to the maximum number of pathname components, at least one of the sub-components is selected using the identified mount entry based upon a number indicated in a list entry pointed to by the identified mount entry, and resetting the current metadata volume to the child metadata volume identified by the identified mount entry, until no mount entry associated with the current metadata volume is found that matches a respective portion of the absolute pathname, the target metadata volume comprising the last child metadata volume so identified; and
returning information identifying the target metadata volume, hosted metadata and its associated residual pathname in response to the request to a file switch for assembling the file in response to the request.
2 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
21 Claims
-
1. A method of handling a file processing request in an aggregated file system including a plurality of metadata volumes, comprising:
-
receiving a request with respect to a file, the request identifying an absolute pathname of the file in the aggregated file system; accessing a plurality of mount entries, wherein each of the plurality of mount entries is associated with a respective one of the plurality of metadata volumes as a parent metadata volume and identifies a respective distinct child metadata volume and a relative pathname associated with the child metadata volume; identifying a target metadata volume that hosts metadata of the file among the metadata volumes in accordance with the request and the mount entries, including recursively identifying a mount entry, if any, 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 having a size based upon a maximum number of pathname components of the relative pathname that can be handled by the identified mount entry, such that the identified relative pathname is further broken into subcomponents of sizes ranging from one pathname component to the maximum number of pathname components, at least one of the sub-components is selected using the identified mount entry based upon a number indicated in a list entry pointed to by the identified mount entry, and resetting the current metadata volume to the child metadata volume identified by the identified mount entry, until no mount entry associated with the current metadata volume is found that matches a respective portion of the absolute pathname, the target metadata volume comprising the last child metadata volume so identified; and returning information identifying the target metadata volume, hosted metadata and its associated residual pathname in response to the request to a file switch for assembling the file in response to the request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 19)
-
-
10. An aggregated file system, comprising:
-
a plurality of file servers; a plurality of metadata servers that manage a plurality of metadata volumes; and a plurality of file switches, each file switch including a plurality of mount entries, wherein each of the plurality of mount entries is associated with a respective one of the plurality of metadata volumes as a parent metadata volume and identifies a respective distinct child metadata volume and an associated relative pathname; at least one interface for exchanging information with the file servers, the metadata volumes and client computers; and at least one processing unit for executing stored instructions comprising; instructions for receiving a request with respect to a specified file, the request including an absolute pathname of the specified file in the aggregated file system, instructions for identifying a target metadata volume that hosts metadata of the file among the metadata volumes in accordance with the request and the mount entries, including instructions for recursively identifying a mount entry, if any, 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 having a size based upon a maximum number of pathname components of the relative pathname that can be handled by the identified mount entry, such that the identified relative pathname is further broken into sub-components of sizes ranging from one pathname component to the maximum number of pathname components, at least one of the subcomponents is selected using the identified mount entry based upon a number indicated in a list entry pointed to by the identified mount entry, and resetting the current metadata volume to the child metadata volume identified by the identified mount entry, until no mount entry associated with the current metadata volume is found that matches a respective portion of the absolute pathname, the target metadata volume comprising the last child metadata volume so identified; and returning information identifying the target metadata volume, hosted metadata and its associated residual pathname in response to the request to a file switch for assembling the file in response to the request. - View Dependent Claims (11, 12, 13, 14, 15, 16, 20)
-
-
17. A file switch for use in a computer network having a plurality of file servers, a plurality of metadata volumes and a plurality of client computers, the file switch comprising:
-
at least one processing unit for executing computer programs; at least one interface for exchanging information with the file servers, the metadata volumes and the client computers, the information exchanged including information concerning a specified file; and a plurality of mount entries, wherein each of the plurality of mount entries is associated with a respective one of the plurality of metadata volumes as a parent metadata volume and identifies a respective distinct child metadata volume and an associated relative pathname, instructions for receiving a request with respect to the specified file, the request including an absolute pathname of the specified file in the aggregated file system, instructions for identifying a target metadata volume that hosts metadata of the file among the metadata volumes in accordance with the request and the mount entries, including instructions for recursively identifying a mount entry, if any, 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 having a size based upon a maximum number of pathname components of the relative pathname that can be handled by the identified mount entry, such that the identified relative pathname is further broken into sub-components of sizes ranging from one pathname component to the maximum number of pathname components, at least one of the subcomponents is selected using the identified mount entry based upon a number indicated in a list entry pointed to by the identified mount entry, and resetting the current metadata volume to the child metadata volume identified by the identified mount entry, until no mount entry associated with the current metadata volume is found that matches a respective portion of the absolute pathname, the target metadata volume comprising the last child metadata volume so identified, and returning information identifying the target metadata volume, hosted metadata and its associated residual pathname in response to the request to a file switch for assembling the file in response to the request. - View Dependent Claims (18, 21)
-
Specification