Claims
- 1. A distributed file storage system, comprising:
a first file server operably connected to a network fabric; a second file server operably connected to said network fabric; file system metadata, a first portion of said file system metadata loaded on said first file server; and a second portion of said file system metadata loaded on said second file server, said file system metadata specifying at least a portion of a directory structure that aggregates files stored by said first file server and said second file server to allow a client computer operably connected to said network fabric to locate files stored by said first file server and files stored by said second file server without prior knowledge as to which file server stores a desired file, said file system metadata further organizing file data into distributed parity groups, each distributed parity group comprising one or more data blocks and a parity block, said file system metadata comprising disk identifier data and disk address data for each of said data blocks and said parity block.
- 2. The distributed file storage system of claim 1, wherein said first portion of said file system metadata comprises directory information that describes a portion of said directory structure corresponding to subdirectories and files stored on said first file server, said directory information comprising location information for a first file, said location information comprising a server id that identifies at least said first file server or said second file server.
- 3. The distributed file storage system of claim 1, wherein said first portion of said file system metadata comprises first information that describes at least a portion of a directory structure of files and subdirectories on said first file server and second portion of said file system metadata describes at least a portion of a directory structure of files and subdirectories on said second file server, said first information comprising location information for said second information, said location information comprising a server identifier.
- 4. The distributed file storage system of claim 1, wherein a root directory is stored on said first file server.
- 5. The distributed file storage system of claim 1, wherein each of said one or more data blocks and said parity block in each of said distributed parity group is stored on a separate disk drive such that no single disk drive contains data from two blocks of a given distributed parity group.
- 6. The distributed file storage system of claim 1, wherein a size of a first distributed parity group of a first file is independent of a size of a second distributed parity group of said first file.
- 7. The distributed file storage system of claim 1, further comprising a collection module configured to combine relatively smaller distributed parity groups of a first file to produce relatively larger distributed parity groups.
- 8. The distributed file storage system of claim 1, further comprising a process configured to combine distributed parity groups of a first file to improve storage efficiency.
- 9. The distributed file storage system of claim 1, wherein said second file server maintains a copy of said first portion of said file system metadata.
- 10. The distributed file storage system of claim 1, wherein said first file server maintains an intent log that specifies differences between a copy of said first portion of said file system metadata stored in random access memory and a copy of said first portion of said file system metadata stored on disk.
- 11. The distributed file storage system of claim 1, wherein said network fabric comprises a Fibre Channel network.
- 12. The distributed file storage system of claim 1, wherein said network fabric comprises a first Fibre Channel network and wherein said first file server communicates with one or more disk drives using a second Fibre Channel network.
- 13. The distributed file storage system of claim 1, wherein said first portion of said metadata comprises file attributes for one or more files stored by said first file server.
- 14. The distributed file storage system of claim 1, wherein said first file server communicates with one or more disk drives using a Fibre Channel network.
- 15. The distributed file storage system of claim 1, wherein said first file server communicates with one or more disk drives using InfiniBand.
- 16. The distributed file storage system of claim 1, wherein said first file server communicates with one or more disk drives using SCSI.
- 17. A method for storing data in a computer network, comprising:
loading a first portion of file system metadata on a first file server operably connected to a network fabric; loading a second portion of file system metadata on a second file server connected to said network fabric, said file system metadata comprising information to allow finding a desired file in a directory structure that aggregates at least a portion of one or more files stored by said first file server or said second file server; organizing data in a first file stored on said first file server into at least one distributed parity group, said at least one distributed parity group comprising one or more data blocks and a parity block; storing each of said data blocks of said at least one distributed parity group on a different disk drive; storing said parity block of said at least one distributed parity group on a disk drive different from the disk drives used to store said data blocks of said at least one distributed parity group; and updating said first portion of said file system metadata to specify storage locations of each of said data blocks of said at least one distributed parity group and a storage location of said parity block of said at least one distributed parity group.
- 18. The method of claim 17, further comprising storing first directory information on said first file server, said first directory information describing files and subdirectories on said first file server.
- 19. The method of claim 17, further comprising first directory information on said first file server, said first directory information describing a portion of said directory structure, said directory information comprising location information for a second file, said location information comprising a server identifier of a server that has access to said second file.
- 20. The method of claim 17, wherein said first portion of said file system metadata comprises a root directory.
- 21. The method of claim 17, said first file further comprising a second distributed parity group having a number of data blocks different from a number of data blocks in said at least one distributed parity group.
- 22. The method of claim 17, said first file further comprising a second distributed parity group having an extent unequal to an extent of said at least one distributed parity group.
- 23. The method of claim 17, further comprising mirroring said first portion of said file system metadata on said second file server.
- 24. The method of claim 17, wherein said first portion of said file system metadata comprises file attributes.
- 25. The method of claim 17, further comprising performing a directory lookup by sending a directory lookup request to said first file server, said first file server returning a directory file handle that points to a directory on said second file server.
- 26. The method of claim 17, further comprising collecting one or more distributed parity groups of said first file into a single parity group.
- 27. The method of claim 17, further comprising reconstructing a lost data block of said at least one distributed parity group as a reconstructed block and storing said reconstructed block on a disk drive different from said disk drives used to store said data blocks and a disk drive used to store said parity block.
- 28. The method of claim 17, further comprising reconstructing a lost data block of said at least one distributed parity group as a reconstructed block and splitting said at least one distributed parity group into two distributed parity groups.
- 29. A computer network file system, comprising:
a first file server operably connected to a network fabric; a second file server operably connected to the network fabric; means for locating a distributed parity group of a file stored by said first file server and files stored by said second file server by traversing a directory structure that spans at least a said first file server and said second file server. means for a computing parity block for said distributed parity group and for storing said distributed parity group and said parity block.
REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims priority benefit under 35 U.S.C. §119(e) from all of the following U.S. Provisional Applications, the contents of which are hereby incorporated by reference in their entirety:
[0002] U.S. Provisional Application No. 60/264,671, filed Jan. 29, 2001, titled “DYNAMICALLY DISTRIBUTED FILE SYSTEM”;
[0003] U.S. Provisional Application No. 60/264,694, filed Jan. 29, 2001, titled “A DATA PATH ACCELERATOR ASIC FOR HIGH PERFORMANCE STORAGE SYSTEMS”;
[0004] U.S. Provisional Application No. 60/264,672, filed Jan. 29, 2001, titled “INTEGRATED FILE SYSTEM/PARITY DATA PROTECTION”;
[0005] U.S. Provisional Application No. 60/264,673, filed Jan. 29, 2001, titled “DISTRIBUTED PARITY DATA PROTECTION”;
[0006] U.S. Provisional Application No. 60/264,670, filed Jan. 29, 2001, titled “AUTOMATIC IDENTIFICATION AND UTILIZATION OF RESOURCES IN A DISTRIBUTED FILE SERVER”;
[0007] U.S. Provisional Application No. 60/264,669, filed Jan. 29, 2001, titled “DATA FLOW CONTROLLER ARCHITECTURE FOR HIGH PERFORMANCE STORAGE SYSTEMS”;
[0008] U.S. Provisional Application No. 60/264,668, filed Jan. 29, 2001, titled “ADAPTIVE LOAD BALANCING FOR A DISTRIBUTED FILE SERVER”; and
[0009] U.S. Provisional Application No. 60/302,424, filed Jun. 29, 2001, titled “DYNAMICALLY DISTRIBUTED FILE SYSTEM”.
Provisional Applications (8)
|
Number |
Date |
Country |
|
60264671 |
Jan 2001 |
US |
|
60264694 |
Jan 2001 |
US |
|
60264672 |
Jan 2001 |
US |
|
60264673 |
Jan 2001 |
US |
|
60264670 |
Jan 2001 |
US |
|
60264669 |
Jan 2001 |
US |
|
60264668 |
Jan 2001 |
US |
|
60302424 |
Jun 2001 |
US |