Background Initialization for Protection Information Enabled Storage Volumes
AssigneeNetApp, Inc.
InventorsWei Sun, Donald Humlicek, Theresa Segura
Life of this patent
Estimating the term…
Abstract
Technology is disclosed for performing background initialization on protection information enabled storage volumes or drives. In some embodiments, a storage controller generates multiple I/O requests for stripe segments of each drive (e.g., disk) of multiple drives of a RAID-based system (e.g., RAID-based disk array). The I/O requests are then sorted for each of the drives according to a pre-determined arrangement and initiated in parallel to the disks while enforcing the pre-determined arrangement. Sorting and issuing the I/O requests in the manner described herein can, for example, reduce drive head movement resulting in faster storage subsystem initialization.
Claims20
A computing device comprising:
- a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of performing background initialization on storage volumes of a storage array, the storage array including a plurality of storage drives;
- a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:
- generate a plurality of read requests to stripe segments of each storage drive of the plurality of storage drives, wherein each storage drive includes a plurality of stripe segments, each of the stripe segments having a plurality of logical blocks that are contiguous within a given one of the stripe segments and non-contiguous from stripe segment to stripe segment;
- sort the read requests for each of the storage drives sequentially on a per-drive basis;
- initiate the read requests to each of the storage drives in parallel and sequentially within each storage drive;
- and
- insert sequential protection information corresponding to the logical blocks after initiating the read requests.
A non-transitory machine readable medium having stored thereon instructions for performing a method comprising machine executable code which when executed by at least one machine, causes the machine to:
- generate multiple read requests for stripe segments of each drive of multiple drives of a storage array, wherein each drive includes multiple stripe segments having multiple logical blocks that are contiguous within the stripe segments and non-contiguous from stripe segment to stripe segment;
- sort the read requests for each of the drives sequentially on a per-drive basis;
- and
- initiate the read requests in parallel to the drives and sequentially within each one of the drives;
- inserting sequential protection information into the corresponding logical blocks of each response inside a drive channel responsive to receiving responses to the multiple read requests;
- and
- after inserting the sequential protection information, generating and sending a write request to each stripe segment and each parity segment of the chunk of data sequentially on a per-drive basis and in parallel for each of the storage drives.
A method comprising:
- generating, by a storage controller, a plurality of read requests for stripe segments of each drive of a plurality of drives of a storage array, wherein each drive includes a plurality of stripe segments having multiple logical blocks that are contiguous within the stripe segments and non-contiguous between the stripe segments;
- sorting the read requests for each of the drives sequentially on a per-drive basis;
- and
- initiating the read requests to the drives in parallel and sequentially within each drive.
Dependencies are inferred from the claim text.