METHOD AND SYSTEM FOR SERVICE-AWARE DATA PLACEMENT IN A STORAGE SYSTEM
First Claim
1. A non-transitory computer readable medium comprising instructions, which when executed by a processor perform a method, the method comprising:
- receiving a service notification specifying a target storage device (SD), wherein the service notification is issued in response to the target SD being identified for replacement based on an SD service schedule, wherein the target SD has been in service for a certain period of time, and wherein the SD service schedule specifies that the target SD is to be replaced after the target SD has been in service for the certain period of time;
after receiving the service notification;
receiving a request to write data to persistent storage, wherein the persistent storage comprises a set of SDs and the target SD is one of the set of SDs;
in response to the request, writing a Redundant Array of Independent Disks (RAID) stripe to persistent storage, wherein the RAID stripe comprises first data blocks and a first parity block, wherein at least one of the first data blocks comprises a portion of the data, wherein the first parity block comprises a first parity value calculated using the first data blocks, and wherein the first parity block is not stored on the target SD and wherein none of the first data blocks are stored on the target SD;
performing a modified garbage collection operation, wherein the modified garbage collection operation comprises;
identifying a live RAID stripe in the persistent storage, wherein the live RAID stripe comprises N second data blocks and a second parity block, wherein at least a portion of the live RAID stripe is located on the target SD;
making a determination that the at least a portion of the live RAID stripe located on the target SD comprises a live data block;
writing, based at least in part on the determination, a new RAID stripe to a new location in the persistent storage,wherein the new RAID stripe comprises N−
1 third data blocks, wherein at least one of the N−
1 third data blocks comprises a copy of data in at least one of the N second data blocks,wherein the new RAID stripe comprises a third parity block, wherein the third parity block comprises a second parity value calculated using the N−
1 third data blocks;
wherein the third parity block is not stored on the target SD, and none of the N−
1 third data blocks are stored on the target SD; and
issuing a removal notification when the modified garbage collection operation is completed, wherein the removal notification indicates that the target SD may be removed from the persistent storage.
9 Assignments
0 Petitions
Accused Products
Abstract
A method and system for service-aware data placement. The method includes receiving a service notification specifying a target SD and, after receiving the service notification, receiving a request to write data, writing a RAID stripe that includes data blocks and a parity block, where the parity block is not stored on the target SD and none of the data blocks is stored on the target SD. The method further includes performing a modified garbage collection operation that includes identifying a live RAID stripe with includes N data blocks, writing a new RAID stripe that includes N−1 data blocks and a second parity block, where the second parity block and none of the N−1 data blocks is stored on the target SD, and issuing a removal notification that indicates that the target SD may be removed.
-
Citations
20 Claims
-
1. A non-transitory computer readable medium comprising instructions, which when executed by a processor perform a method, the method comprising:
-
receiving a service notification specifying a target storage device (SD), wherein the service notification is issued in response to the target SD being identified for replacement based on an SD service schedule, wherein the target SD has been in service for a certain period of time, and wherein the SD service schedule specifies that the target SD is to be replaced after the target SD has been in service for the certain period of time; after receiving the service notification; receiving a request to write data to persistent storage, wherein the persistent storage comprises a set of SDs and the target SD is one of the set of SDs; in response to the request, writing a Redundant Array of Independent Disks (RAID) stripe to persistent storage, wherein the RAID stripe comprises first data blocks and a first parity block, wherein at least one of the first data blocks comprises a portion of the data, wherein the first parity block comprises a first parity value calculated using the first data blocks, and wherein the first parity block is not stored on the target SD and wherein none of the first data blocks are stored on the target SD; performing a modified garbage collection operation, wherein the modified garbage collection operation comprises; identifying a live RAID stripe in the persistent storage, wherein the live RAID stripe comprises N second data blocks and a second parity block, wherein at least a portion of the live RAID stripe is located on the target SD; making a determination that the at least a portion of the live RAID stripe located on the target SD comprises a live data block; writing, based at least in part on the determination, a new RAID stripe to a new location in the persistent storage, wherein the new RAID stripe comprises N−
1 third data blocks, wherein at least one of the N−
1 third data blocks comprises a copy of data in at least one of the N second data blocks,wherein the new RAID stripe comprises a third parity block, wherein the third parity block comprises a second parity value calculated using the N−
1 third data blocks;wherein the third parity block is not stored on the target SD, and none of the N−
1 third data blocks are stored on the target SD; andissuing a removal notification when the modified garbage collection operation is completed, wherein the removal notification indicates that the target SD may be removed from the persistent storage. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system, comprising:
-
a storage array comprising N+M storage devices (SDs); and a storage controller operatively connected to the storage array and configured to; identify a target SD to remove, wherein the target SD has been in service for a certain period of time, wherein the target SD is identified based upon a SD service schedule and wherein the SD service schedule specifies that the target SD is to be removed after the target SD has been in service for the certain period of time; after identifying the target SD, wherein the target SD is one of the N+M SDs; receive a request to write data to the storage array; in response to the request, write a Redundant Array of Independent Disks (RAID) stripe that consists of N−
1 data blocks and M parity blocks to the storage array, wherein none of the N−
1 data blocks are stored on the target SD and none of the M parity blocks are stored on the target SD;perform a modified garbage collection operation, wherein the modified garbage collection operation comprises; identifying a live RAID stripe in the storage array, wherein the live RAID stripe comprises second data and consists of N second data blocks and M second parity blocks; writing a new RAID stripe to a new location in the storage array wherein the new RAID stripe consists of N−
1 third data blocks and M third parity blocks, wherein at least one of the N−
1 third data blocks comprises a copy of data in at least one of the N second data blocks; andissue a removal notification when the modified garbage collection operation is completed, wherein the removal notification indicates that the target SD may be removed from the storage array. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
12. (canceled)
-
13. (canceled)
-
14. (canceled)
Specification