Directory aggregation for files distributed over a plurality of servers in a switched file system
First Claim
1. A method of generating a directory listing of user files, where each user file of at least a plurality of the user files is divided into portions stored on a plurality of file servers, among a group of file servers in a computer network, comprising:
- receiving a user request for a directory listing of user files for a specified directory;
accessing a directory of metafiles corresponding to all user files in the specified directory, each metafile storing information identifying a set of file servers that store respective defined portions of the specified user file, wherein the directory listing of metafiles is obtained from a particular file server of the group of file servers in which the metafiles are stored; and
constructing a directory listing of the user files from the directory of metafiles.
9 Assignments
0 Petitions
Accused Products
Abstract
A file switch, logically positioned between client computers and file servers in a computer network, distributes user files among multiple file servers using an aggregated directory mechanism. A hierarchical directory structure is created on the file servers and used to store metadata files, which store metadata for each user file to indicate where data files, containing portions of the user file, are stored. The file switch automatically spreads the data files and metadata files over a large number of distinct directories on multiple file servers, preventing large number of data files from being stored in a single directory on a single file server. In response to a directory enumeration request from a client computer, one or more directories of metadata files on one or more of the file servers is enumerated, instead of enumerating the data file that store the user file portions.
174 Citations
52 Claims
-
1. A method of generating a directory listing of user files, where each user file of at least a plurality of the user files is divided into portions stored on a plurality of file servers, among a group of file servers in a computer network, comprising:
-
receiving a user request for a directory listing of user files for a specified directory;
accessing a directory of metafiles corresponding to all user files in the specified directory, each metafile storing information identifying a set of file servers that store respective defined portions of the specified user file, wherein the directory listing of metafiles is obtained from a particular file server of the group of file servers in which the metafiles are stored; and
constructing a directory listing of the user files from the directory of metafiles. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A file switch for use in a computer network having a group of file servers and a plurality of client computers, the file switch comprising:
-
at least one processing unit for executing computer programs;
at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file;
a file aggregation module including one or more computer programs, the computer programs including instructions for;
receiving a user request for a directory listing of user files for a specified directory;
accessing a directory of metafiles corresponding to all user files in the specified directory, each metafile storing information identifying a set of file servers that store respective defined portions of the specified user file, wherein the directory listing of metafiles is obtained from a particular file server of the group of file servers in which the metafiles are stored;
constructing a directory listing of the user files from the directory of metafiles; and
sending the directory listing to a particular client computer of the plurality of client computers. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A system for use in a computer network having a plurality of client computers, the system comprising:
-
a group of file servers;
a file switch, the file switch including;
at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file;
means for receiving a user request for a directory listing of user files for a specified directory;
means for accessing a directory of metafiles corresponding to all user files in the specified directory, each metafile storing information identifying a set of file servers that store respective defined portions of the specified user file, wherein the directory listing of metafiles is obtained from a particular file server of the group of file servers in which the metafiles are stored;
means for constructing a directory listing of the user files from the directory of metafiles; and
means for sending the directory listing to a particular client computer of the plurality of client computers. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A system for use in a computer network having a plurality of client computers, the system comprising:
-
a group of file servers;
a file switch, the file switch including;
at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file;
at least one processing unit for executing computer programs;
a file aggregation module including one or more computer programs, the computer programs including instructions for;
receiving a user request for a directory listing of user files for a specified directory;
accessing a directory of metafiles corresponding to all user files in the specified directory, each metafile storing information identifying a set of file servers that store respective defined portions of the specified user file, wherein the directory listing of metafiles is obtained from a particular file server of the group of file servers in which the metafiles are stored;
constructing a directory listing of the user files from the directory of metafiles; and
sending the directory listing to a particular client computer of the plurality of client computers. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A method of generating a directory listing of user files, where each user file of at least a plurality of the user files is divided into portions stored on a plurality of file servers, among a group of file servers in a computer network, comprising:
-
receiving a user request for a directory listing of user files for a specified directory;
accessing, in each of a plurality of file servers of the group of file servers, a respective directory of metafiles corresponding to all user files in the specified directory, each metafile storing information identifying a set of file servers that store respective defined portions of the specified user file; and
aggregating the accessed directories of metafiles to construct an aggregated directory listing of the user files. - View Dependent Claims (22, 23, 24, 25)
-
-
26. A file switch for use in a computer network having a group of file servers and a plurality of client computers, the file switch comprising:
-
at least one processing unit for executing computer programs;
at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file;
a file aggregation module including one or more computer programs, the computer programs including instructions for;
receiving a user request for a directory listing of user files for a specified directory;
accessing, in each of a plurality of file servers of the group of file servers, a respective directory of metafiles corresponding to all user files in the specified directory, each metafile storing information identifying a set of file servers that store respective defined portions of the specified user file;
aggregating the accessed directories of metafiles to construct an aggregated directory listing of the user files; and
sending the aggregated directory listing to a particular client computer of the plurality of client computers. - View Dependent Claims (27, 28, 29, 30)
-
-
31. A system for use in a computer network having a plurality of client computers, the system comprising:
-
a group of file servers;
a file switch, the file switch including;
at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file;
means for receiving a user request for a directory listing of user files for a specified directory;
means for accessing, in each of a plurality of file servers of the group of file servers, a respective directory of metafiles corresponding to all user files in the specified directory, each metafile storing information identifying a set of file servers that store respective defined portions of the specified user file;
means for aggregating the accessed directories of metafiles to construct an aggregated directory listing of the user files; and
means for sending the aggregated directory listing to a particular client computer of the plurality of client computers. - View Dependent Claims (32, 33, 34, 35)
-
-
36. A system for use in a computer network having a plurality of client computers, the system comprising:
-
a group of file servers;
a file switch, the file switch including;
at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file;
at least one processing unit for executing computer programs;
a file aggregation module including one or more computer programs, the computer programs including instructions for;
receiving a user request for a directory listing of user files for a specified directory;
accessing, in each of a plurality of file servers of the group of file servers, a respective directory of metafiles corresponding to all user files in the specified directory, each metafile storing information identifying a set of file servers that store respective defined portions of the specified user file;
aggregating the accessed directories of metafiles to construct an aggregated directory listing of the user files; and
sending the aggregated directory listing to a particular client computer of the plurality of client computers. - View Dependent Claims (37, 38, 39, 40)
-
-
41. A method for determining storage locations of a user file in a group of file servers in a computer network, comprising the steps of:
-
in accordance with a predefined set of aggregation rules, determining a set of file servers from the group of file servers for storing the user file;
for each portion of the user file to be stored in a respective one of the determined set of servers, generating a file path as a function of a file name of the user file, the file path including at least three directory levels below a root path of the file server; and
storing each said portion of the user file in the respective one of the determined set of servers at the generated file path. - View Dependent Claims (42, 43)
-
-
44. A file switch for use in a computer network having a group of file servers and a plurality of client computers, the file switch comprising:
-
at least one processing unit for executing computer programs;
at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file;
a file aggregation module including one or more computer programs, the computer programs including instructions for;
determining, in accordance with a predefined set of aggregation rules, a set of file servers from the group of file servers for storing the user file;
for each portion of the user file to be stored in a respective one of the determined set of servers, generating a file path as a function of a file name of the user file, the file path including at least three directory levels below a root path of the file server; and
storing each said portion of the user file in the respective one of the determined set of servers at the generated file path. - View Dependent Claims (45, 46)
-
-
47. A system for use in a computer network having a plurality of client computers, the system comprising:
-
a group of file servers;
a file switch, the file switch including;
at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file;
means for determining, in accordance with a predefined set of aggregation rules, a set of file servers from the group of file servers for storing the user file;
means for generating, for each portion of the user file to be stored in a respective one of the determined set of servers, a file path as a function of a file name of the user file, the file path including at least three directory levels below a root path of the file server; and
means for storing each said portion of the user file in the respective one of the determined set of servers at the generated file path. - View Dependent Claims (48, 49)
-
-
50. A system for use in a computer network having a plurality of client computers, the system comprising:
-
a group of file servers;
a file switch, the file switch including;
at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file; and
a file aggregation module including one or more computer programs, the computer programs including instructions for;
determining, in accordance with a predefined set of aggregation rules, a set of file servers from the group of file servers for storing the user file;
for each portion of the user file to be stored in a respective one of the determined set of servers, generating a file path as a function of a file name of the user file, the file path including at least three directory levels below a root path of the file server; and
storing each said portion of the user file in the respective one of the determined set of servers at the generated file path. - View Dependent Claims (51, 52)
-
Specification