IP Library Granted Patent US 11,327,668
Granted Patent B1
US 11,327,668 · App. 17/148,814 · Granted May 10, 2022

Predictable member assignment for expanding flexible raid system

Inventors: Kuolin Hua (Natick, MA); Kunxiu Gao (Boxborough, MA)
Assignee: Dell Products L.P.
G06F3/0631G06F3/0604G06F3/0653G06F3/0659G06F3/0689
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,327,668
App. No.
17/148,814
Granted
May 10, 2022
Kind
B1
Abstract

A flexible RAID system can expand by iteratively adding disks to a disk cluster. The disks may be added individually or in groups. Spare capacity is distributed over multiple disks within a cluster. Clusters are created, grown, and divided with predictable RAID member distribution patterns. Cluster validation is performed based on the patterns.

Claims (39)

1. An apparatus, comprising:

a storage array comprising:

at least one compute node comprising at least one processor and non-transitory computer-readable memory;

a plurality of data storage disks that are accessed by the at least one compute node and used to store data that is accessed via the at least one compute node, each disk having W indexed splits, each split having a fixed-size amount of storage capacity equal to storage capacity of other splits; and

a disk manager configured to:

create a growable disk cluster with spare from W+1 numbered ones of the disks by creating redundant arrays of independent disks (RAID) protection groups each having D+P=W numbered RAID protection group members comprising D data members and P parity members, and distributing the protection group members in one of the following modes:

mode 1: member numbers match disk ordinals on the first W disks and member numbers match split indices on other disks and those splits that do not contain one of the protection group members are designated as spare splits and for each additional disk that is added to the mode 1 pattern in ordered succession the members of the first W disks at the lowest numbered unrotated split index are rotated onto the additional disk such that the protection group member at disk n is moved to split n of the additional disk; and

mode 2: for members on the first W disks, if the split index is less than a number of additional disks greater than W then the member number matches the disk ordinal, and otherwise the member number matches the split index; and for members on other disks, the member number is the disk ordinal modulo RAID width; and designating as spare splits those splits that do not contain one of the protection group members;

grow the growable disk cluster with spare by adding new ones of the disks and rotating members at lowest numbered unrotated split indices onto the new disks; and

validate the growable disk cluster with spare by determining that the member numbers match one of the patterns.

2. The apparatus of claim 1 wherein the disk manager is configured to divide the growable disk cluster with spare into a growable cluster without spare and a non-growable R1 cluster when the growable disk cluster with spare has 2*W+1 disks due to disk addition, the non-growable R1 cluster comprising ones of the disks selected such that the member numbers match the disk ordinals for members on the first W disks except that for members on the last disk the member number is equal to W minus the split index, and the growable cluster without spare comprising ones of the disks selected such that the protection group members are distributed in one of the patterns.

3. The apparatus of claim 2 wherein the disk manager is configured to grow the growable disk cluster without spare by adding new ones of the disks and rotating members at lowest numbered unrotated split indices onto the new disks; and validate the growable disk cluster without spare by determining that the member numbers match one of the patterns.

4. The apparatus of claim 3 wherein the disk manager is configured to divide the growable disk cluster without spare into a smaller growable cluster without spare and a non-growable R0 cluster when the growable disk cluster with spare has 2*W disks due to disk addition, the non-growable R0 cluster comprising ones of the disks selected such that the member numbers match the disk ordinals, and the growable cluster without spare comprising ones of the disks selected such that the protection group members are distributed in one of the patterns.

5. The apparatus of claim 4 wherein the disk manager is configured to validate the smaller growable disk cluster without spare by determining that the member numbers match one of the patterns.

6. The apparatus of claim 3 wherein the disk manager is configured to divide the growable disk cluster without spare into a smaller growable cluster without spare and a non-growable R1 cluster when the growable disk cluster with spare has 2*W+1 disks due to disk addition, the non-growable R1 cluster comprising ones of the disks selected such that the member numbers match the disk ordinals for members on the first W disks except that for members on the last disk the member number is equal to W minus the split index, and the growable cluster without spare comprising ones of the disks selected such that the protection group members are distributed in one of the patterns.

7. The apparatus of claim 6 wherein the disk manager is configured to validate the smaller growable disk cluster without spare by determining that the member numbers match one of the patterns.

8. A method implemented by a storage array comprising at least one compute node comprising at least one processor and non-transitory computer-readable memory and a plurality of data storage disks that are accessed by the at least one compute node and used to store data that is accessed via the at least one compute node, each disk having W indexed splits, each split having a fixed-size amount of storage capacity equal to storage capacity of other splits, the method comprising:

creating a growable disk cluster with spare from W+1 numbered ones of the disks by creating redundant arrays of independent disks (RAID) protection groups each having D+P=W numbered RAID protection group members comprising D data members and P parity members, and distributing the protection group members in one of the following modes:

mode 1: member numbers match disk ordinals on the first W disks and member numbers match split indices on other disks and those splits that do not contain one of the protection group members are designated as spare splits and for each additional disk that is added to the mode 1 pattern in ordered succession the members of the first W disks at the lowest numbered unrotated split index are rotated onto the additional disk such that the protection group member at disk n is moved to split n of the additional disk; and

mode 2: for members on the first W disks, if the split index is less than a number of additional disks greater than W then the member number matches the disk ordinal, and otherwise the member number matches the split index; and for members on other disks, the member number is the disk ordinal modulo RAID width; and designating as spare splits those splits that do not contain one of the protection group members;

growing the growable disk cluster with spare by adding new ones of the disks and rotating members at lowest numbered unrotated split indices onto the new disks; and

validating the growable disk cluster with spare by determining that the member numbers match one of the patterns.

9. The method of claim 8 comprising dividing the growable disk cluster with spare into a growable cluster without spare and a non-growable R1 cluster when the growable disk cluster with spare has 2*W+1 disks due to disk addition, the non-growable R1 cluster comprising ones of the disks selected such that the member numbers match the disk ordinals for members on the first W disks except that for members on the last disk the member number is equal to W minus the split index, and the growable cluster without spare comprising ones of the disks selected such that the protection group members are distributed in one of the patterns.

10. The method of claim 9 comprising: growing the growable disk cluster without spare by adding new ones of the disks and rotating members at lowest numbered unrotated split indices onto the new disks; and validating the growable disk cluster without spare by determining that the member numbers match one of the patterns.

11. The method of claim 10 comprising dividing the growable disk cluster without spare into a smaller growable cluster without spare and a non-growable R0 cluster when the growable disk cluster with spare has 2*W disks due to disk addition, the non-growable R0 cluster comprising ones of the disks selected such that the member numbers match the disk ordinals, and the growable cluster without spare comprising ones of the disks selected such that the protection group members are distributed in one of the patterns.

12. The method of claim 11 comprising validating the smaller growable disk cluster without spare by determining that the member numbers match one of the patterns.

13. The method of claim 10 comprising dividing the growable disk cluster without spare into a smaller growable cluster without spare and a non-growable R1 cluster when the growable disk cluster with spare has 2*W+1 disks due to disk addition, the non-growable R1 cluster comprising ones of the disks selected such that the member numbers match the disk ordinals for members on the first W disks except that for members on the last disk the member number is equal to W minus the split index, and the growable cluster without spare comprising ones of the disks selected such that the protection group members are distributed in one of the patterns.

14. The method of claim 13 comprising validating the smaller growable disk cluster without spare by determining that the member numbers match one of the patterns.

15. A computer-readable storage medium storing instructions that when executed by a storage array comprising at least one compute node comprising at least one processor and non-transitory computer-readable memory and a plurality of data storage disks that are accessed by the at least one compute node and used to store data that is accessed via the at least one compute node, each disk having W indexed splits, each split having a fixed-size amount of storage capacity equal to storage capacity of other splits, cause the compute node to perform a method for creating and validating disk clusters, the method comprising:

creating a growable disk cluster with spare from W+1 numbered ones of the disks by creating redundant arrays of independent disks (RAID) protection groups each having D+P=W numbered RAID protection group members comprising D data members and P parity members, and distributing the protection group members in one of the following modes:

mode 1: member numbers match disk ordinals on the first W disks and member numbers match split indices on other disks and those splits that do not contain one of the protection group members are designated as spare splits and for each additional disk that is added to the mode 1 pattern in ordered succession the members of the first W disks at the lowest numbered unrotated split index are rotated onto the additional disk such that the protection group member at disk n is moved to split n of the additional disk; and

mode 2: for members on the first W disks, if the split index is less than a number of additional disks greater than W then the member number matches the disk ordinal, and otherwise the member number matches the split index; and for members on other disks, the member number is the disk ordinal modulo RAID width; and designating as spare splits those splits that do not contain one of the protection group members;

growing the growable disk cluster with spare by adding new ones of the disks and rotating members at lowest numbered unrotated split indices onto the new disks; and

validating the growable disk cluster with spare by determining that the member numbers match one of the patterns.

16. The computer-readable storage medium of claim 15 wherein the method further comprises dividing the growable disk cluster with spare into a growable cluster without spare and a non-growable R1 cluster when the growable disk cluster with spare has 2*W+1 disks due to disk addition, the non-growable R1 cluster comprising ones of the disks selected such that the member numbers match the disk ordinals for members on the first W disks except that for members on the last disk the member number is equal to W minus the split index, and the growable cluster without spare comprising ones of the disks selected such that the protection group members are distributed in one of the patterns.

17. The computer-readable storage medium of claim 16 wherein the method further comprises: growing the growable disk cluster without spare by adding new ones of the disks and rotating members at lowest numbered unrotated split indices onto the new disks; and validating the growable disk cluster without spare by determining that the member numbers match one of the patterns.

18. The computer-readable storage medium of claim 17 wherein the method further comprises dividing the growable disk cluster without spare into a smaller growable cluster without spare and a non-growable R0 cluster when the growable disk cluster with spare has 2*W disks due to disk addition, the non-growable R0 cluster comprising ones of the disks selected such that the member numbers match the disk ordinals, and the growable cluster without spare comprising ones of the disks selected such that the protection group members are distributed in one of the patterns.

19. The computer-readable storage medium of claim 18 wherein the method further comprises validating the smaller growable disk cluster without spare by determining that the member numbers match one of the patterns.

20. The computer-readable storage medium of claim 17 wherein the method further comprises dividing the growable disk cluster without spare into a smaller growable cluster without spare and a non-growable R1 cluster when the growable disk cluster with spare has 2*W+1 disks due to disk addition, the non-growable R1 cluster comprising ones of the disks selected such that the member numbers match the disk ordinals for members on the first W disks except that for members on the last disk the member number is equal to W minus the split index, and the growable cluster without spare comprising ones of the disks selected such that the protection group members are distributed in one of the patterns.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2021
From: HUA, KUOLIN; GAO, KUNXIU
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054918/0745 →
Cited By (3)
US 12,399,618 US 12,579,127 US 12,645,370