Load balancing of I/O by moving logical unit (LUN) slices between non-volatile storage represented by different rotation groups of RAID (Redundant Array of Independent Disks) extent entries in a RAID extent table of a mapped RAID data storage system
First Claim
1. A method of performing load balancing in a data storage system while providing mapped RAID (Redundant Array of Independent Disks) data protection, wherein the data storage system includes at least one storage processor and an array of data storage drives communicably coupled to the storage processor, the method comprising:
- dividing the data storage drives in the array into a plurality of partnership groups of data storage drives, wherein each data storage drive in the array is contained in only one of the partnership groups;
generating a RAID extent table, wherein the RAID extent table contains a plurality of RAID extent entries, wherein each RAID extent entry contained in the RAID extent table indicates a plurality of drive extents, wherein each drive extent comprises a unique contiguous region of non-volatile data storage located on one of the data storage drives and each one of the data storage drives has multiple drive extents located thereon, wherein the RAID extent table contains a plurality of RAID extent groups, wherein each one of the RAID extent groups contains a plurality of RAID extent entries and corresponds to one of the partnership groups, and wherein the RAID extent entries in each RAID extent group only indicate drive extents that are located in data storage drives contained in the corresponding one of the partnership groups;
dividing each RAID extent group into a plurality of rotation groups, wherein each rotation group contains the same number of RAID extent entries, and wherein each RAID extent entry is contained in only one rotation group;
generating at least one corresponding logical unit (LUN) for each one of the RAID extent groups, wherein each LUN is made up of a plurality of slices, wherein host data directed to each slice is stored in drive extents indicated by RAID extent entries in a rotation group to which the slice is mapped according to a mapping between the slices in the LUN and the rotation groups in the corresponding RAID extent group; and
for each RAID extent group, performing a rebalancing operation that includes i) identifying, within the RAID extent group, a heavily loaded rotation group having a high I/O load and a lightly loaded rotation group having a low I/O load, and ii) modifying the mapping between the slices in the corresponding LUN and the rotation groups in the RAID extent group such that at least one slice of the corresponding LUN that is mapped to the heavily loaded rotation group is remapped to the lightly loaded rotation group.
7 Assignments
0 Petitions
Accused Products
Abstract
Load balancing in a mapped RAID data storage system that moves slices of logical unit (LUN) address space between non-volatile storage represented by different rotation groups of RAID extent entries in a RAID extent table. The RAID extent table is divided into RAID extent groups corresponding to partnership groups of drives, and the RAID extent groups are divided into rotation groups. At least one LUN with an address space made up of slices is generated for each RAID extent group. Host data directed to each slice is stored in drive extents indicated by the RAID extent entries in the rotation group to which the slice is mapped. A rebalancing operation modifies the mapping between slices in a LUN and the rotation groups in the corresponding RAID extent group such that at least one slice is remapped from a heavily loaded rotation group to a lightly loaded rotation group.
-
Citations
20 Claims
-
1. A method of performing load balancing in a data storage system while providing mapped RAID (Redundant Array of Independent Disks) data protection, wherein the data storage system includes at least one storage processor and an array of data storage drives communicably coupled to the storage processor, the method comprising:
-
dividing the data storage drives in the array into a plurality of partnership groups of data storage drives, wherein each data storage drive in the array is contained in only one of the partnership groups; generating a RAID extent table, wherein the RAID extent table contains a plurality of RAID extent entries, wherein each RAID extent entry contained in the RAID extent table indicates a plurality of drive extents, wherein each drive extent comprises a unique contiguous region of non-volatile data storage located on one of the data storage drives and each one of the data storage drives has multiple drive extents located thereon, wherein the RAID extent table contains a plurality of RAID extent groups, wherein each one of the RAID extent groups contains a plurality of RAID extent entries and corresponds to one of the partnership groups, and wherein the RAID extent entries in each RAID extent group only indicate drive extents that are located in data storage drives contained in the corresponding one of the partnership groups; dividing each RAID extent group into a plurality of rotation groups, wherein each rotation group contains the same number of RAID extent entries, and wherein each RAID extent entry is contained in only one rotation group; generating at least one corresponding logical unit (LUN) for each one of the RAID extent groups, wherein each LUN is made up of a plurality of slices, wherein host data directed to each slice is stored in drive extents indicated by RAID extent entries in a rotation group to which the slice is mapped according to a mapping between the slices in the LUN and the rotation groups in the corresponding RAID extent group; and for each RAID extent group, performing a rebalancing operation that includes i) identifying, within the RAID extent group, a heavily loaded rotation group having a high I/O load and a lightly loaded rotation group having a low I/O load, and ii) modifying the mapping between the slices in the corresponding LUN and the rotation groups in the RAID extent group such that at least one slice of the corresponding LUN that is mapped to the heavily loaded rotation group is remapped to the lightly loaded rotation group. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A data storage system that provides load balancing while providing mapped RAID (Redundant Array of Independent Disks) data protection, comprising:
-
at least one storage processor including processing circuitry and a memory; an array of data storage drives communicably coupled to the storage processor; and wherein the memory has program code stored thereon for performing load balancing, wherein the program code, when executed by the processing circuitry, causes the processing circuitry to; divide the data storage drives in the array into a plurality of partnership groups of data storage drives, wherein each data storage drive in the array is contained in only one of the partnership groups; generate a RAID extent table, wherein the RAID extent table contains a plurality of RAID extent entries, wherein each RAID extent entry contained in the RAID extent table indicates a plurality of drive extents, wherein each drive extent comprises a unique contiguous region of non-volatile data storage located on one of the data storage drives and each one of the data storage drives has multiple drive extents located thereon, wherein the RAID extent table contains a plurality of RAID extent groups, wherein each one of the RAID extent groups contains a plurality of RAID extent entries and corresponds to one of the partnership groups, and wherein the RAID extent entries in each RAID extent group only indicate drive extents that are located in data storage drives contained in the corresponding one of the partnership groups; divide each RAID extent group into a plurality of rotation groups, wherein each rotation group contains the same number of RAID extent entries, and wherein each RAID extent entry is contained in only one rotation group; generate at least one corresponding logical unit (LUN) for each one of the RAID extent groups, wherein each LUN is made up of a plurality of slices, wherein host data directed to each slice is stored in drive extents indicated by RAID extent entries in a rotation group to which the slice is mapped according to a mapping between the slices in the LUN and the rotation groups in the corresponding RAID extent group; and for each RAID extent group, perform a rebalancing operation that includes i) identifying, within the RAID extent group, a heavily loaded rotation group having a high I/O load and a lightly loaded rotation group having a low I/O load, and ii) modifying the mapping between the slices in the corresponding LUN and the rotation groups in the RAID extent group such that at least one slice of the corresponding LUN that is mapped to the heavily loaded rotation group is remapped to the lightly loaded rotation group. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A non-transitory computer readable medium for performing load balancing in a data storage system while providing mapped RAID (Redundant Array of Independent Disks) data protection, wherein the data storage system includes at least one storage processor and an array of data storage drives communicably coupled to the storage processor, the non-transitory computer readable medium comprising instructions stored thereon that when executed on processing circuitry in the storage processor perform the steps of:
-
dividing the data storage drives in the array into a plurality of partnership groups of data storage drives, wherein each data storage drive in the array is contained in only one of the partnership groups; generating a RAID extent table, wherein the RAID extent table contains a plurality of RAID extent entries, wherein each RAID extent entry contained in the RAID extent table indicates a plurality of drive extents, wherein each drive extent comprises a unique contiguous region of non-volatile data storage located on one of the data storage drives and each one of the data storage drives has multiple drive extents located thereon, wherein the RAID extent table contains a plurality of RAID extent groups, wherein each one of the RAID extent groups contains a plurality of RAID extent entries and corresponds to one of the partnership groups, and wherein the RAID extent entries in each RAID extent group only indicate drive extents that are located in data storage drives contained in the corresponding one of the partnership groups; dividing each RAID extent group into a plurality of rotation groups, wherein each rotation group contains the same number of RAID extent entries, and wherein each RAID extent entry is contained in only one rotation group; generating at least one corresponding logical unit (LUN) for each one of the RAID extent groups, wherein each LUN is made up of a plurality of slices, wherein host data directed to each slice is stored in drive extents indicated by RAID extent entries in a rotation group to which the slice is mapped according to a mapping between the slices in the LUN and the rotation groups in the corresponding RAID extent group; and for each RAID extent group, performing a rebalancing operation that includes i) identifying, within the RAID extent group, a heavily loaded rotation group having a high I/O load and a lightly loaded rotation group having a low I/O load, and ii) modifying the mapping between the slices in the corresponding LUN and the rotation groups in the RAID extent group such that at least one slice of the corresponding LUN that is mapped to the heavily loaded rotation group is remapped to the lightly loaded rotation group.
-
Specification