Claims
- 1. A computer storage system, comprising:
a plurality of disk drives for storing parity groups, each parity group comprising storage blocks, said storage blocks comprising one or more data blocks and a parity block associated with said one or more data blocks, each of said storage blocks stored on a separate disk drive such that no two storage blocks from a given parity group reside on the same disk drive, wherein file system metadata comprises information to describe the data blocks in one or more parity groups.
- 2. The computer storage system of claim 1, wherein a size of a first parity group is larger than a size of a second parity group.
- 3. The computer storage system of claim 1, wherein said file system metadata further comprises location information comprising one or more disk identifiers to specify which disk drive in said plurality of disk drives contains a desired information blocks.
- 4. The computer storage system of claim 1, wherein said file system metadata further comprises at least one Gnid-string.
- 5. The computer storage system of claim 4, wherein a one-to-one correspondence exists between said at least one Gnid-string and a directory of said file system.
- 6. The computer storage system of claim 4, wherein said Gnid-string comprises a collection of gnids.
- 7. The computer storage system of claim 6, wherein each of said gnids comprises information for locating a specified gnode.
- 8. The computer storage system of claim 7, wherein said information for locating a specified gnode comprises a pointer to said specified gnode.
- 9. The computer storage system of claim 7, wherein said specified gnode comprises file attributes for a file corresponding to said gnode.
- 10. The computer storage system of claim 9, wherein said file attributes include at least one of a file id, a file access time, a file creation time, and a file modification time.
- 11. The computer storage system of claim 7, wherein said specified gnode comprises information for locating a first gee of a plurality of gees corresponding to said gnode.
- 12. The computer storage system of claim 11, wherein said plurality of gees comprises gnode gees and data gees.
- 13. The computer storage system of claim 12, wherein each of said gnode gees comprises information to specify an extent.
- 14. The computer storage system of claim 12, wherein each of said data gees comprises information to specify a first logical disk block and information to specify which of said disk drives contains said first logical block.
- 15. The computer storage system of claim 12, wherein said plurality of gees further comprises parity gees.
- 16. The computer storage system of claim 15, wherein each of said parity gees comprises information regarding location of parity data for one or more preceding data gees in said plurality of gees.
- 17. The computer storage system of claim 11, wherein a parity group comprises a first set of one or more data gees and an associated parity gee.
- 18. The computer storage system of claim 17, wherein each data gee identifies a block of data and said parity gee identifies a parity block.
- 19. The computer storage system of claim 1, wherein said disk drives are provided to a Fibre channel network.
- 20. The computer storage system of claim 1, wherein a file comprises one or more of said parity groups, and wherein said metadata further comprises a hierarchical directory structure for locating said file.
- 21. The computer storage system of claim 1, wherein said metadata comprises information to specify a selected logical disk block of a selected file and information to specify which of said disks that contains said selected logical block.
- 22. The computer storage system of claim 1, wherein a size of a first parity group is independent of a size of a second parity group of the same file.
- 23. The computer storage system of claim 1, further comprising a process to combine a first parity group having m data blocks and one parity block and a second parity group having n data blocks an one parity block to produce a combined parity group having m+n data blocks and one parity block, where m+n is at most one less than the number of said disk drives.
- 24. The computer storage system of claim 23, wherein said process is a background process that runs during file system operations.
- 25. The computer storage system of claim 1, further comprising a process to split a first parity group having k data blocks and one parity block into a second parity group having m data blocks an one parity block and a third parity group having n data blocks and one parity block, where k≧m+n.
- 26. The computer storage system of claim 25, wherein said process is a background process that runs during file system operations.
- 27. The computer storage system of claim 19, further comprising a module to increase storage efficiency by combining one or more parity groups each having a separate parity block into a single parity group having a single parity block.
- 28. A method for storing data in a computer network, comprising:
determining a size of a parity group in response to a write request, said size describing a number of data blocks in said parity group; arranging at least a portion of data from said write request according to said data blocks; computing a parity block for said parity group; storing each of said data blocks on a separate disk drive such that no two data blocks from said parity group reside on the same disk drive; and storing each said parity block on a separate disk drive that does not contain any of said data blocks.
- 29. The method of claim 28, further comprising storing metadata to describe a disk and logical block location of each of said data blocks and said parity block.
- 30. The method of claim 28, further comprising combining a first parity group having a first size and a second parity group having a second size to produce a combined parity group having a third size, wherein said third size specifies a number of blocks that is, at most, one less than the number of disk drives available to store data from said parity group.
- 31. The method of claim 28, further comprising splitting a first parity group into a second parity group and a third parity group.
- 32. The method of claim 28, further comprising allocating a new parity group from a pool of available parity groups.
- 33. The method of claim 32, further comprising generating parity groups for said pool of available parity groups from unused disk space.
- 34. The method of claim 32, further comprising generating a plurality of differently-sized parity groups for said pool of available parity groups from unused disk space.
- 35. The method of claim 34, further comprising splitting a parity group in said pool of parity groups to produce two smaller parity groups in said pool of available parity groups.
- 36. The method of claim 34, further comprising combining one or more parity groups in said pool of parity groups to produce a combined parity group in said pool of available parity groups, said combined group larger than said one or more parity groups.
- 37. A computer file system, comprising:
a plurality of disk drives; means for dynamically sizing and generating parity groups in response to write requests, a size of each parity group computed from a size of said write request and a number of available disk drives.
- 38. The computer network file system of claim 37, further comprising means for maintaining location information regarding data in one or more of said parity groups.
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/264673, 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 |