Top-down wear-leveling storage system and method
AssigneeEMC IP Holding Company LLC
InventorsNickolay Dalmatov, Michael P. Wahl, Jian Gao
Life of this patent
Estimating the term…
Abstract
A method, computer program product, and computing system for compartmentalizing a plurality of RAID extents, within a RAID system, into a plurality of rotation subgroups. A write load imbalance condition is sensed in a first rotation subgroup, chosen from the plurality of rotation subgroups, that is associated with a plurality of logical data portions. At least one of the plurality of logical data portions is moved from the first rotation subgroup to a second rotation subgroup, chosen from the plurality of rotation subgroups.
Claims22
A computer-implemented method, executed on a computing device, comprising:
- dividing a plurality of storage targets into a plurality of drive extents with an equal, pre-defined capacity, wherein the plurality of storage targets includes a plurality of drives;
- defining a plurality of Redundant Array of Independent Disks (RAID) extents from the plurality of drive extents, wherein the plurality of RAID extents includes a first set of RAID extents with a plurality of drive extents from different storage targets with a first performance level and a second set of RAID extents with a plurality of drive extents from different storage targets with a second performance level, wherein each of the plurality of drive extents are only included in one RAID extent;
- pre-defining a plurality of rotation subgroups, wherein pre-defining a plurality of rotation subgroups comprises compartmentalizing the plurality of RAID extents, within a mapped RAID system, into a plurality of rotation subgroups, wherein the first set of RAID extents are compartmentalized into a first plurality of rotation subgroups and the second set of RAID extents are compartmentalized into a second plurality of rotation subgroups, wherein a number of the plurality of storage targets in the mapped RAID system is not limited by a RAID level of the plurality of RAID extents, wherein the first plurality of rotation subgroups is associated with a high performance tier comprised of a plurality of rotation subgroups that do not share any drive extents in common and the second plurality of rotation subgroups is associated with a low performance tier of a plurality of rotation subgroups that do not share any drive extents in common, wherein each rotation subgroup within the performance tiers is comprised of an equal number of RAID extents greater than one;
- writing a plurality of logical data portions in their entirety to a single rotation subgroup, wherein writing a plurality of logical data portions in their entirety to a single rotation subgroup includes writing a first logical data portion in its entirety to a first rotation subgroup within the first plurality of rotation subgroups;
- sensing, in response to writing a first logical data portion in its entirety to a first rotation subgroup within the first plurality of rotation subgroups, a write load imbalance condition in the first plurality of rotation subgroups that is associated with a plurality of logical data portions, wherein sensing the write load imbalance condition includes monitoring a quantity of write operations handled by each solid-state device within the plurality of storage targets within the RAID system and comparing the quantity of write operations handled by each solid-state device with an acceptable level of use, wherein monitoring the quantity of write operations handled by each-solid state device includes monitoring an average quantity of write operations over a defined period of time;
- moving at least one of the plurality of logical data portions from one of the rotation subgroups of the first plurality of rotation subgroups to another rotation subgroup of the first plurality of rotation subgroups;
- and
- directing one or more new data slices to one or more underutilized rotation subgroups of the second plurality of rotation subgroups.
A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:
- dividing a plurality of storage targets into a plurality of drive extents with an equal, pre-defined capacity, wherein the plurality of storage targets includes a plurality of drives;
- defining a plurality of Redundant Array of Independent Disks (RAID) extents from the plurality of drive extents, wherein the plurality of RAID extents includes a first set of RAID extents with a plurality of drive extents from different storage targets with a first performance level and a second set of RAID extents with a plurality of drive extents from different storage targets with a second performance level, wherein each of the plurality of drive extents are only included in one RAID extent;
- pre-defining a plurality of rotation subgroups, wherein pre-defining a plurality of rotation subgroups comprises compartmentalizing the plurality of RAID extents, within a mapped RAID system, into a plurality of rotation subgroups, wherein the first set of RAID extents are compartmentalized into a first plurality of rotation subgroups and the second set of RAID extents are compartmentalized into a second plurality of rotation subgroups, wherein a number of the plurality of storage targets in the mapped RAID system is not limited by a RAID level of the plurality of RAID extents, wherein the first plurality of rotation subgroups is associated with a high performance tier comprised of a plurality of rotation subgroups that do not share any drive extents in common and the second plurality of rotation subgroups is associated with a low performance tier of a plurality of rotation subgroups that do not share any drive extents in common, wherein each rotation subgroup within the performance tiers is comprised of an equal number of RAID extents greater than one;
- writing a plurality of logical data portions in their entirety to a single rotation subgroup, wherein writing a plurality of logical data portions in their entirety to a single rotation subgroup includes writing a first logical data portion in its entirety to a first rotation subgroup within the first plurality of rotation subgroups;
- sensing, in response to writing a first logical data portion in its entirety to a first rotation subgroup within the first plurality of rotation subgroups, within a mapped RAID system, into a plurality of rotation subgroups, a write load imbalance condition in the first plurality of rotation subgroups that is associated with a plurality of logical data portions, wherein sensing the write load imbalance condition includes monitoring a quantity of write operations handled by each solid-state device within the plurality of storage targets within the RAID system and comparing the quantity of write operations handled by each solid-state device with an acceptable level of use, wherein monitoring the quantity of write operations handled by each-solid state device includes monitoring an average quantity of write operations over a defined period of time;
- moving at least one of the plurality of logical data portions from one of the rotation subgroups of the first plurality of rotation subgroups to another rotation subgroup of the first plurality of rotation subgroups;
- and
- directing one or more new data slices to one or more underutilized rotation subgroups of the second plurality of rotation subgroups.
A computing system including a processor and memory configured to perform operations comprising:
- sensing a write load imbalance condition in a first plurality of rotation subgroups that is associated with a plurality of logical data portions, wherein sensing the write load imbalance condition comprises:
- dividing a plurality of storage targets into a plurality of drive extents with an equal, pre-defined capacity, wherein the plurality of storage targets includes a plurality of drives;
- defining a plurality of Redundant Array of Independent Disks (RAID) extents from the plurality of drive extents, wherein the plurality of RAID extents includes a first set of RAID extents with a plurality of drive extents from different storage targets with a first performance level and a second set of RAID extents with a plurality of drive extents from different storage targets with a second performance level, wherein each of the plurality of drive extents are only included in one RAID extent;
- pre-defining a plurality of rotation subgroups, wherein pre-defining a plurality of rotation subgroups comprises compartmentalizing the plurality of RAID extents, within a mapped RAID system, into a plurality of rotation subgroups, wherein the first set of RAID extents are compartmentalized into a first plurality of rotation subgroups and the second set of RAID extents are compartmentalized into a second plurality of rotation subgroups, wherein a number of the plurality of storage targets in the mapped RAID system is not limited by a RAID level of the plurality of RAID extents, wherein the first plurality of rotation subgroups is associated with a high performance tier comprised of a plurality of rotation subgroups that do not share any drive extents in common and the second plurality of rotation subgroups is associated with a low performance tier of a plurality of rotation subgroups that do not share any drive extents in common wherein each rotation subgroup within the performance tiers is comprised of an equal number of RAID extents greater than one;
- and
- writing a plurality of logical data portions in their entirety to a single rotation subgroup, wherein writing a plurality of logical data portions in their entirety to a single rotation subgroup includes writing a first logical data portion in its entirety to a first rotation subgroup within the first plurality of rotation subgroups;
- monitoring a quantity of write operations handled by each solid-state device within the plurality of storage targets within the RAID system and comparing the quantity of write operations handled by each solid-state device with an acceptable level of use, wherein monitoring the quantity of write operations handled by each-solid state device includes monitoring an average quantity of write operations over a defined period of time;
- moving at least one of the plurality of logical data portions from one of the rotation subgroups of the first plurality of rotation subgroups to another rotation subgroup of the first plurality of rotation subgroups;
- and
- directing one or more new data slices to one or more underutilized rotation subgroups of the second plurality of rotation subgroups.
Dependencies are inferred from the claim text.