Offloading raid update operations to disk controllers
AssigneeEMC IP Holding Company LLC
InventorsArtem Alexandrovich Aliev, Peter Vladimirovich Trifonov
Life of this patent
Estimating the term…
Loading patent…
AssigneeEMC IP Holding Company LLC
InventorsArtem Alexandrovich Aliev, Peter Vladimirovich Trifonov
Estimating the term…
An improved technique involves performing computations for partial stripe updates in a RAID at individual disk controllers rather than at the RAID controller. When a RAID controller receives a request to update old payload data at a block in a particular disk with update data, it sends the update data to the controller of that particular disk. The disk controller reads internally old data from the block, computes the difference between new and old data, replaces the old data on disk with the new data, and returns the difference to the RAID controller. The RAID controller computes difference values of the parity data from the difference values of the payload data received from the disk controllers. It then sends these difference values to the controllers of disks storing parity data. A controller of a disk storing parity data reads internally the corresponding data block, adds to it the difference value, and writes the result back to disk.
In a storage system including a redundant array of disks having an array controller, each disk of the redundant array of disks including a disk controller apart from the array controller, a method of updating data stored on the redundant array of disks, the method comprising:
In a storage system including a redundant array of disks having an array controller, each disk of the redundant array of disks including a disk controller apart from the array controller, a method of updating data, the method comprising:
A storage system constructed and arranged to update data stored on the redundant array of disks, the storage system comprising:
A computer program product having a non-transitory, computer-readable storage medium which stores code for updating data stored on a redundant array of disks in a storage system, the redundant array of disks having an array controller, each disk of the redundant array of disks including a disk controller apart from the array controller, the code including instructions which, when executed by the disk controller, causes the disk controller to:
A disk controller, constructed and arranged to receive a new data block together with an address, read internally a data block stored on a disk at the address, rewrite the data block with the new data block, compute a difference between old and new data blocks, and send this difference to an array controller, wherein computing includes at least XOR operation.
A disk controller, constructed and arranged to receive a difference block together with an address, read internally a data block stored on a disk at the address, add to the data block the difference block, and rewrite the old block stored on disk at the given address with obtained value.
Dependencies are inferred from the claim text.