Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes
First Claim
Patent Images
1. A method for storing data on a plurality of storage devices of a storage system, comprising:
- receiving the data as data blocks from a plurality of write requests for one or more files;
saving the data blocks as buffered data for writing to the storage devices one file at a time;
selecting a next file to write allocate;
selecting a storage device with a lowest free disk block number (DBN) relative to a base offset;
allocating a next buffer of the selected file to the next lowest free DBN of the selected storage device;
checking if a full block layout has been write allocated;
repeating the allocating a next buffer step and the checking step until there are no more buffers for the selected file or a file block number (FBN) reaches a certain predetermined boundary;
determining that if the selected file has more buffers, proceeding to the selecting a storage device step; and
determining that if there are more files to write allocate, proceeding to the saving the data blocks step.
0 Assignments
0 Petitions
Accused Products
Abstract
A method for storing data on a plurality of storage devices of a storage system is disclosed. The data is received as data blocks from a plurality of write requests. The data blocks are saved as buffered data for writing to the storage devices in a single write request. An indication is received indicating the available storage blocks on the plurality of storage devices which are available for writing. The buffered data is associated with selected storage blocks of the storage blocks which are available for writing. The buffered data is written to the selected storage blocks in a single write request.
108 Citations
10 Claims
-
1. A method for storing data on a plurality of storage devices of a storage system, comprising:
-
receiving the data as data blocks from a plurality of write requests for one or more files; saving the data blocks as buffered data for writing to the storage devices one file at a time; selecting a next file to write allocate; selecting a storage device with a lowest free disk block number (DBN) relative to a base offset; allocating a next buffer of the selected file to the next lowest free DBN of the selected storage device; checking if a full block layout has been write allocated; repeating the allocating a next buffer step and the checking step until there are no more buffers for the selected file or a file block number (FBN) reaches a certain predetermined boundary; determining that if the selected file has more buffers, proceeding to the selecting a storage device step; and determining that if there are more files to write allocate, proceeding to the saving the data blocks step. - View Dependent Claims (2, 3)
-
-
4. A storage system to store data on a plurality of storage devices, comprising:
-
a network adapter to receive the data as data blocks from a plurality of write requests for one or more files; a memory to save the data blocks as buffered data for writing to the storage devices one file at a time; a processor to select a next file to write allocate; the processor to select a storage device with a lowest free disk block number (DBN) relative to a base offset; the storage system to allocate a next buffer of the selected file to the next lowest free DBN of the selected storage device; the processor to check if a full block layout has been write allocated; the processor to repeat the allocate a next buffer, and the check until there are no more buffers for the selected file or a file block number (FBN) reaches is a certain predetermined boundary; the processor to determine that if the selected file has more buffers, proceeding to select a storage device for the more buffers; and the processor to determine that if there are more files to write allocate, proceeding to select a next file to write allocate. - View Dependent Claims (5, 6)
-
-
7. A method for preparing a storage system to store data on a plurality of storage devices, comprising:
-
configuring the storage system to receive the data as data blocks from a plurality of write requests for one or more files; configuring the storage system to save the data blocks as buffered data for writing to the storage devices one file at a time; configuring the storage system to select a next file to write allocate;
.configuring the storage system to select a storage device with a lowest free disk block number (DBN) relative to a base offset; configuring the storage system to allocate a next buffer of the selected file to the next lowest free DBN of the selected storage device; configuring the storage system to check if a full block layout has been write allocated; configuring the storage system to repeat allocating a next buffer and is checking for the full block layout until there are no more buffers for the selected file or a file block number (FBN) reaches a certain predetermined boundary; configuring the storage system to determine that if the selected file has more buffers, then proceeding to the step to select a storage device; and configuring the storage system to determine that if there are more files to write allocate, then proceeding to the step to save the data blocks. - View Dependent Claims (8, 9)
-
-
10. A computer readable storage media, comprising:
-
said computer readable storage media containing program instructions for execution on a processor for a method of storing data on a plurality of storage devices of a storage system, the program instructions for, receiving the data as data blocks from a plurality of write requests for one or more files; saving the data blocks as buffered data for writing to the storage devices one file at a time; selecting a next file to write allocate; selecting a storage device with a lowest free disk block number (DBN) relative to a base offset; allocating a next buffer of the selected file to the next lowest free DBN of the selected storage device; checking if a full block layout has been write allocated; repeating the allocating a next buffer instruction and the checking instruction until there are no more buffers for the selected file or a file block number (FBN) reaches a certain predetermined boundary; determining that if the selected file has more buffers, proceeding to the selecting a storage device instruction; and determining that if there are more files to write allocate, proceeding to the saving the data blocks instruction.
-
Specification