Claims
- 1. A computer storage system, comprising:
a plurality of disk drives for storing distributed parity groups, each distributed 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; file system metadata to describe a location of each of said storage blocks; and a load-balancing module to dynamically move storage blocks of said distributed parity groups among said plurality of disk drives to balance loading of said plurality of disk drives and thereby improve throughput of said computer storage system, said load-balancing module configured to update said file system metadata when a storage block is moved.
- 2. The computer storage system of claim 1, wherein a size of a first distributed parity group is larger than a size of a second distributed parity group.
- 3. The computer storage system of claim 1, further comprising metadata to specify which disk drive in said plurality of disk drives contains a desired storage block.
- 4. The computer storage system of claim 1, wherein said disk drives are provided to a Fibre Channel network.
- 5. The computer storage system of claim 1, wherein a file is comprised of one or more of said distributed parity groups.
- 6. The computer storage system of claim 1, wherein said file system metadata comprises information to specify a logical block address for each storage block in a distributed parity group.
- 7. The computer storage system of claim 1, wherein an extent of a first distributed parity group of a file is larger than an extent of a second distributed parity group of said file.
- 8. The computer storage system of claim 1, wherein said load-balancing module runs in a background process during file system operations.
- 9. A method for load balancing 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 of a plurality of disk drives such that no two data blocks from said parity group reside on the same disk drive; storing said parity block on a separate disk drive that does not contain any of said data blocks; and moving said data blocks among said plurality of disk drives to reduce loading on one or more of said plurality of disk drives.
- 10. The method of claim 9, further comprising storing metadata to describe a disk and logical block location of each of said data blocks and said parity block.
- 11. The method of claim 9, wherein said moving comprises 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.
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 |