Method for allocating files in a file system integrated with a raid disk sub-system
First Claim
1. A method for allocating files in a file system comprising:
- a) selecting an inode having at least one dirty block from a list of inodes having dirty blocks;
b) write allocating blocks of data referenced by said inode to a storage means in a RAID array wherein said storage means comprises a plurality of storage blocks and add said blocks of data to a list of writeable blocks of data for said storage means;
c) determining if all nodes have been processed, when all of said inodes in said list of inodes have not been processed, continue repeating steps a-b; and
,d) flushing all unwritten stripes to said RAID array.
2 Assignments
0 Petitions
Accused Products
Abstract
A method is disclosed for integrating a file system with a RAID array that exports precise information about the arrangement of data blocks in the RAID subsystem. The file system examines this information and uses it to optimize the location of blocks as they are written to the RAID system. Thus, the system uses explicit knowledge of the underlying RAID disk layout to schedule disk allocation. The method 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 algorithm used has two primary goals. The first goal is to keep the CWL pointers as close together as possible, thereby improving RAID efficiency by writing to multiple blocks in the stripe simultaneously. The second goal is to allocate adjacent blocks in a file on the same disk, thereby improving read back performance. The method satisfies the first goal by always writing on the disk with the lowest CWL pointer. For the second goal, a new disks 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 is 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
7 Claims
-
1. A method for allocating files in a file system comprising:
-
a) selecting an inode having at least one dirty block from a list of inodes having dirty blocks; b) write allocating blocks of data referenced by said inode to a storage means in a RAID array wherein said storage means comprises a plurality of storage blocks and add said blocks of data to a list of writeable blocks of data for said storage means; c) determining if all nodes have been processed, when all of said inodes in said list of inodes have not been processed, continue repeating steps a-b; and
,d) flushing all unwritten stripes to said RAID array. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
Specification