Allocating files in a file system integrated with a RAID disk sub-system
First Claim
1. A method of allocating data in a network storage system that includes a storage redundancy array, the method comprising:
- identifying a set of metadata containers in the storage system which have dirty blocks, each said metadata container containing metadata for a separate data container of a plurality of data containers in the network storage system;
for each of the plurality of metadata containers in the storage system which has dirty blocks,write allocating blocks of data referenced by said metadata container to a storage device in the storage redundancy array; and
adding said blocks of data to a list of writeable blocks of data for said storage device;
andflushing unwritten stripes of data to said storage redundancy array.
0 Assignments
0 Petitions
Accused Products
Abstract
Integrating a file system with a RAID array that exports precise information about the arrangement of data blocks in the RAID subsystem. The present invention uses separate current-write location (CWL) pointers for each disk in the disk array where the pointers simply advance through the disks as writes occur. The present invention writes on the disk with the lowest CWL pointer. A new disk is chosen only when the algorithm starts allocating space for a new file, or when it has allocated N blocks on the same disk for a single file. A sufficient number of blocks are defined as all the buffers in a chunk of N sequential buffers in a file. The result is that CWL pointers are never more than N blocks apart on different disks, and large files have N consecutive blocks on the same disk.
-
Citations
9 Claims
-
1. A method of allocating data in a network storage system that includes a storage redundancy array, the method comprising:
-
identifying a set of metadata containers in the storage system which have dirty blocks, each said metadata container containing metadata for a separate data container of a plurality of data containers in the network storage system; for each of the plurality of metadata containers in the storage system which has dirty blocks, write allocating blocks of data referenced by said metadata container to a storage device in the storage redundancy array; and adding said blocks of data to a list of writeable blocks of data for said storage device; and flushing unwritten stripes of data to said storage redundancy array. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
Specification