EP1584011A2

Metadata based file switch and switched file system

Abstract

This record has no abstract on file.

Term

Term ended

Projected expiry passed 18 December 2023, 2.8 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

21 claims: 11 independent, 10 dependent

  1. 1
    Claims of equivalent WO 2004061605 A2 WHAT IS CLAIMED IS:1. 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 to perform a specified transaction on a specified user file;determining a subset of the file servers that store portions of the user file needed to perform the specified transaction;sending commands to each respective file server in the subset of file servers to perform the transaction on a respective portion of the user file, and receiving replies from the subset of file servers;aggregating the received replies to produce an aggregated reply;and sending the aggregated reply to a sender of the user request.
  2. 2
    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 to perform a specified transaction on a specified user file;accessing metadata identifying a set of file servers for storing respective defined portions of the specified user file;determining, based on the metadata, a subset of the file servers that store portions of the user file needed to perform the specified transaction;sending commands to each respective file server in the subset of file servers to perform the transaction on a respective portion of the user file, and receiving replies from the subset of file servers;aggregating the received replies to produce an aggregated reply;and sending the aggregated reply to a sender of the user request.
  3. 4
    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.
  4. 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: 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.
  5. 8
    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 a set of file servers from the group of file servers for storing the user file;creating a metafile storing information identifying the set of file servers for storing the user file;and updating directory structures on the set of file servers to indicate storage of the user file.
  6. 12
    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 one or more user requests to perform a specified operation on a specified user file;selecting, from among a group of rules, a rule applicable to the specified user file;each rule in the group of rules including at least one parameter specifying, for files to which the rule is applicable, how to distribute storage of each such file over the file servers in a group of file servers;and performing the specified operation in accordance with the selected rule, including, when the specified operation changes the size of the specified user file, sending commands to a plurality of the file servers so as to continue to distribute storage of the specified user file in accordance with the selected rule.
  7. 13
    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 one or more user requests to perform a specified operation on a specified user file;selecting, from among a group of rules, a rule applicable to the specified user file;each rule in the group of rules including a striping parameter specifying, for files to which the rule is applicable, a maximum size of file portions into which the files are divided, and a mirroring parameter specifying, for files to which the rule is applicable, a number of instances of each file portion are to be stored on file servers in the group of file servers;and performing the specified operation in accordance with the selected rule, including: when the specified operation increases the size of the specified user file by more than the maximum file portion size specified by the selected rale, adding one or more file portions to the user file, including creating and storing on the group of file servers the specified number of instances of each added file portion, each created file portion instance having a size no greater than the maximum file portion size specified by the selected rule.
  8. 15
    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 requiring a lock on a subset of a specified user file;accessing a metafile that stores information identifying a set of file servers that store respective defined portions of the specified user file;determining, based on the information stored in the metafile, a subset of the file servers that store portions of the specified user file that together comprise the subset of the specified user file;at each file server in the subset of file servers, performing a lock acquisition operation to obtain a lock on the respective portion of the specified user file stored therein, and producing a lock acquisition result;and aggregating the lock acquisition results from the. subset of file servers to produce an . aggregated lock acquisition result.
  9. 17
    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 requiring a lock on a subset of the specified user file;accessing a metafile that stores information identifying a set of file servers that store respective defined portions of the specified user file;initiating a lock acquisition operation on the metafile, the lock acquisition operation using a first range of file positions that at least partially fall outside file positions located within the metafile, the first range of file positions corresponding to subset of the specified user file, and producing a lock acquisition result;and when the lock acquisition result is positive, continuing processing of the user request by performing an operation on the subset of the specified user file.
  10. 18
    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 to access a subset of a specified user file, the request including a request for an opportunistic lock on the subset of the specified user file;identifying a subset of file servers that store portions of the user file that together comprise the subset of the specified user file;sending an oplock request to each file server in the subset of file servers, and receiving oplock request replies from the subset of file servers;aggregating the received oplock request replies to produce an aggregated oplock reply, such that the aggregated oplock reply is an oplock grant only when all the received oplock request replies are oplock grants;and sending the aggregated oplock reply to a sender of the user request, thereby enabling the sender to cache data from the subset of the specified user file only when the aggregate oplock reply is an oplock grant.
  11. 21
    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 to access a subset of a specified user file;identifying a subset of file servers that store portions of the user file that together comprise the subset of the specified user file;sending an oplock request to each file server in the subset of file servers, and receiving oplock request replies from the subset of file servers;aggregating the received oplock request replies to produce an aggregated oplock reply, such that the aggregated oplock reply is an oplock grant only when all the received oplock request replies are oplock grants;and caching data from the subset of the specified user file only when the aggregate oplock reply is an oplock grant;wherein the file switch is logically positioned between a client computer from which the user request is received and the group of file servers.