Relocating data from an end of life storage drive based on storage drive loads in a data storage system using mapped RAID (redundant array of independent disks) technology
First Claim
1. A method of relocating data stored in a storage drive that is one of a group of storage drives communicably coupled to a storage processor in a data storage system that provides RAID (Redundant Array of Independent Disks) data protection for at least one storage object, the method comprising:
- generating a drive extent pool from the storage drives communicably coupled to the storage processor, wherein the drive extent pool indicates a plurality of drive extents located in the storage drives, wherein each drive extent indicated by the drive extent pool comprises a contiguous region of non-volatile data storage located in one of the storage drives, and wherein each drive extent has a size equal to a predetermined drive extent size;
generating a RAID mapping table, wherein the RAID mapping table contains a plurality of RAID extent entries, wherein each RAID extent entry indicates a unique plurality of drive extents that are allocated from the drive extent pool to the RAID extent entry and that are used by the storage processor to persistently store host data written to a portion of an address space of the storage object corresponding to the RAID extent entry and associated parity data, and wherein each RAID extent entry indicates the same total number of drive extents;
in response to receiving an end of life indication from a source storage drive within the group of storage drives, relocating the data stored in the source storage drive by;
i) for each drive extent located in the source storage drive, identifying a corresponding destination drive extent to replace the drive extent located in the source storage drive by selecting, in a round robin manner, a next storage drive from within a set of healthy storage drives in the group of storage drives and allocating a free drive extent that is located in the selected storage drive from the drive extent pool, andii) after a corresponding destination drive extent has been identified for each drive extent located in the source storage drive, generating a parallel copy list, wherein the parallel copy list indicates drive extents located in the source storage drive from which data is copied in parallel by the storage processor to the corresponding destination drive extents, wherein the parallel copy list is generated based on current total I/O loads of the storage drives in the set of healthy storage drives, and wherein each one of the drive extents located in the source storage drive indicated by the parallel copy list has a corresponding destination drive extent located on a healthy storage drive that has a lowest current total I/O load at a time at which the indication of that drive extent located on the source storage drive is added to the parallel copy list.
7 Assignments
0 Petitions
Accused Products
Abstract
Technology for relocating data stored in an end of life source storage drive that identifies individual destination drive extents corresponding to drive extents located in the source storage drive by selecting individual storage drives within a set of healthy storage drives in a group of storage drives in a round robin manner and identifying an individual destination drive extent from each selected storage drive. The corresponding destination drive extents replace the drive extents located in the source storage drive, and are used to store data copied from the drive extents located in the source storage drive. Data is copied in parallel from a set of multiple drive extents located in the source storage drive that is selected based on the current total input/output load determined for each storage drive in the set of healthy storage drives, and on the storage drives on which the corresponding destination drive extents are located.
21 Citations
19 Claims
-
1. A method of relocating data stored in a storage drive that is one of a group of storage drives communicably coupled to a storage processor in a data storage system that provides RAID (Redundant Array of Independent Disks) data protection for at least one storage object, the method comprising:
-
generating a drive extent pool from the storage drives communicably coupled to the storage processor, wherein the drive extent pool indicates a plurality of drive extents located in the storage drives, wherein each drive extent indicated by the drive extent pool comprises a contiguous region of non-volatile data storage located in one of the storage drives, and wherein each drive extent has a size equal to a predetermined drive extent size; generating a RAID mapping table, wherein the RAID mapping table contains a plurality of RAID extent entries, wherein each RAID extent entry indicates a unique plurality of drive extents that are allocated from the drive extent pool to the RAID extent entry and that are used by the storage processor to persistently store host data written to a portion of an address space of the storage object corresponding to the RAID extent entry and associated parity data, and wherein each RAID extent entry indicates the same total number of drive extents; in response to receiving an end of life indication from a source storage drive within the group of storage drives, relocating the data stored in the source storage drive by; i) for each drive extent located in the source storage drive, identifying a corresponding destination drive extent to replace the drive extent located in the source storage drive by selecting, in a round robin manner, a next storage drive from within a set of healthy storage drives in the group of storage drives and allocating a free drive extent that is located in the selected storage drive from the drive extent pool, and ii) after a corresponding destination drive extent has been identified for each drive extent located in the source storage drive, generating a parallel copy list, wherein the parallel copy list indicates drive extents located in the source storage drive from which data is copied in parallel by the storage processor to the corresponding destination drive extents, wherein the parallel copy list is generated based on current total I/O loads of the storage drives in the set of healthy storage drives, and wherein each one of the drive extents located in the source storage drive indicated by the parallel copy list has a corresponding destination drive extent located on a healthy storage drive that has a lowest current total I/O load at a time at which the indication of that drive extent located on the source storage drive is added to the parallel copy list. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A data storage system that provides RAID (Redundant Array of Independent Disks) data protection for at least one storage object, comprising:
-
at least one storage processor including processing circuitry and a memory storing program code executable on the processing circuitry; at least one group of storage drives communicably coupled to the storage processor; and wherein the storage processor is configured and arranged to; generate a drive extent pool from the storage drives communicably coupled to the storage processor, wherein the drive extent pool indicates a plurality of drive extents located in the storage drives, wherein each drive extent indicated by the drive extent pool comprises a contiguous region of non-volatile data storage located in one of the storage drives, and wherein each drive extent has a size equal to a predetermined drive extent size; generate a RAID mapping table, wherein the RAID mapping table contains a plurality of RAID extent entries, wherein each RAID extent entry indicates a unique plurality of drive extents that are allocated from the drive extent pool to the RAID extent entry and that are used by the storage processor to persistently store host data written to a portion of an address space of the storage object corresponding to the RAID extent entry and associated parity data, and wherein each RAID extent entry indicates the same total number of drive extents; wherein to relocate data stored in a source storage drive within the group of storage drives in response to receiving an end of life indication from the source storage the storage processor is configured and arranged to; i) for each drive extent located in the source storage drive, identify a corresponding destination drive extent to replace the drive extent located in the source storage drive by selecting, in a round robin manner, a next storage drive from within a set of healthy storage drives in the group of storage drives and allocating a free drive extent that is located in the selected storage drive from the drive extent pool, and ii) after a corresponding destination drive extent has been identified for each drive extent located in the source storage drive, generate a parallel copy list, wherein the parallel copy list indicates drive extents located in the source storage drive from which data is copied in parallel by the storage processor to the corresponding destination drive extents, wherein the parallel copy list is generated based on current total I/O loads of the storage drives in the set of healthy storage drives, wherein each one of the drive extents located in the source storage drive indicated by the parallel copy list has a corresponding destination drive extent located on a storage drive that has a lowest current total I/O load at a time at which the indication of that drive extent located on the source storage drive is added to the parallel copy list. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A non-transitory computer readable medium for relocating data stored in a storage drive that is one of a group of storage drives communicably coupled to a storage processor in a data storage system that provides RAID (Redundant Array of Independent Disks) data protection for at least one storage object, comprising instructions stored thereon, that when executed on processing circuitry in a storage processor, perform the steps of:
-
generating a drive extent pool from the storage drives communicably coupled to the storage processor, wherein the drive extent pool indicates a plurality of drive extents located in the storage drives, wherein each drive extent indicated by the drive extent pool comprises a contiguous region of non-volatile data storage located in one of the storage drives, and wherein each drive extent has a size equal to a predetermined drive extent size; generating a RAID mapping table, wherein the RAID mapping table contains a plurality of RAID extent entries, wherein each RAID extent entry indicates a unique plurality of drive extents that are allocated from the drive extent pool to the RAID extent entry and that are used by the storage processor to persistently store host data written to a portion of an address space of the storage object corresponding to the RAID extent entry and associated parity data, and wherein each RAID extent entry indicates the same total number of drive extents; in response to receiving an end of life indication from a source storage drive within the group of storage drives, relocating the data stored in the source storage drive by; i) for each drive extent located in the source storage drive, identifying a corresponding destination drive extent to replace the drive extent located in the source storage drive by selecting, in a round robin manner, a next storage drive from within a set of healthy storage drives in the group of storage drives and allocating a free drive extent that is located in the selected storage drive from the drive extent pool, and ii) after a corresponding destination drive extent has been identified for each drive extent located in the source storage drive, generating a parallel copy list, wherein the parallel copy list indicates drive extents located in the source storage drive from which data is copied in parallel by the storage processor to the corresponding destination drive extents, wherein the parallel copy list is generated based on current total I/O loads of the storage drives in the set of healthy storage drives, wherein each one of the drive extents located in the source storage drive indicated by the parallel copy list has a corresponding destination drive extent located on a storage drive having a lowest current total I/O load at a time at which the indication of that drive extent located on the source storage drive is added to the parallel copy list.
-
Specification