IP Library Granted Patent US 11,775,182
Granted Patent B2
US 11,775,182 · App. 17/382,905 · Granted Oct 3, 2023

Expanding raid systems

Inventors: Kuolin Hua (Natick, MA); Kunxiu Gao (Boxborough, MA)
Assignee: EMC IP Holding Company LLC
G06F3/062G06F3/0631G06F3/0646G06F3/0689G06F7/78
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,775,182
App. No.
17/382,905
Granted
Oct 3, 2023
Kind
B2
Abstract

Physical storage devices (PSDs) of a protection group cluster (PGC) may be represented by a protection group matrix (PGM) having a plurality of rows and a plurality of columns, where each row corresponds to a PSD of the PGC, and each column corresponds to a partition of each PSD. The value specified in each cell at an intersection of a row and column specifies the protection group of the PGC to which the partition of the PSD represented by the column and row, respectively, is (or will be) assigned. In response to one or more of PSDs being added to a PGC, the PGM may be reconfigured, including adding new rows, and transposing portions of columns to the new rows, or transposing portions of rows to portions of columns of the new rows. Protection members of the PGC may be re-assigned based on the reconfiguration.

Claims (101)

1. A method of configuring protection groups for physical storage devices of a storage system, comprising:

partitioning each of a first quantity (W) of physical storage device into W partitions;

creating a first matrix including W columns and W rows, each row representing one of the W physical storage devices and each column representing one of the W partitions of each of the W physical storage devices;

using the first matrix to assign, for each of the W physical storage devices, a different one of W protection groups to each of the W partitions of the physical storage device;

adding a second quantity (N) of physical storage devices to the storage system, wherein N<W, to produce a third quantity (T=W+N) of physical storage devices;

partitioning each of the N physical storage devices into W partitions;

adding N protection groups to the W protection groups to produce T protection groups;

expanding the first matrix to accommodate T physical storage devices and T protection groups;

assigning the T protection groups to the W partitions of each of the T physical storage devices based on the expanded matrix; and

based on the assigning, moving data from at least a first of the W partitions on at least a first of the T physical devices to at least a second of the W partitions on at least a second of the T physical devices.

2. The method of claim 1 , wherein the assigning of the T protection groups assigns, for each of the T physical storage devices, a different one of T protection groups to each of the W partitions of the physical storage device, including re-assigning only W*(W−N) protection groups from a respective first of W partitions for a first of the W physical storage devices to a respective second of W partitions for a second of the T physical storage devices, wherein the method further comprises:

moving only data of the W*(W−N) protection groups according to the re-assigning.

3. The method of claim 1 , wherein expanding the first matrix includes:

adding N rows to the W rows of the first matrix to produce T rows; and

transposing N columns from a fifth quantity (X=W−N) of the W rows to X columns of the added N rows.

4. The method of claim 3 , wherein expanding the first matrix includes:

before the transposing, swapping positions of the added N rows in the first matrix with positions of rows 0 through [N−1] in the matrix.

5. The method of claim 3 , further comprising:

after adding the N physical storage devices to the storage system, adding a sixth quantity (O) of physical storage devices to the storage system to produce a seventh quantity (T+O) of physical storage devices;

partitioning each of the added O physical storage devices into W partitions;

adding O protection groups to the T protection groups to produce T+O protection groups;

further expanding the first matrix to accommodate the O new physical storage devices, including:

adding O rows to the T rows of the first matrix, and

transposing W rows from O columns to the added O rows; and

assigning the T+O protection groups to the W partitions of each of the T+O physical storage devices based on the further expanded matrix.

6. The method of claim 1 , further comprising:

after adding the N physical storage devices to the storage system, adding a sixth quantity (O) of physical storage devices to the storage system to produce a seventh quantity (T+O) of physical storage devices;

partitioning each of the added O physical storage devices into W partitions;

adding O protection groups to the T protection groups to produce T+O protection groups;

determining if T+O>2*W;

if T+O>2*W, splitting the expanded first matrix into a second matrix and a third matric matrix; and

assigning the T+O protection groups to the W partitions of each of the T physical storage devices based on the second matrix and the third matrix.

7. The method of claim 6 , wherein the expanding of the first matrix into a second matrix and a third matric matrix includes:

configuring the second matrix to have vertically-aligned protection group assignments not subject to change in response to further additions of physical storage devices to the storage system; and

configuring the third matrix to have diagonally-aligned protection group assignments subject to change in response to further additions of physical storage devices to the storage system.

8. A system for configuring protection groups for physical storage devices of a storage system, the system comprising executable logic that implements a method including:

partitioning each of a first quantity (W) of physical storage device into W partitions;

creating a first matrix including W columns and W rows, each row representing one of the W physical storage devices and each column representing one of the W partitions of each of the W physical storage devices;

using the first matrix to assign, for each of the W physical storage devices, a different one of W protection groups to each of the W partitions of the physical storage device;

adding a second quantity (N) of physical storage devices to the storage system, wherein N<W, to produce a third quantity (T=W+N) of physical storage devices;

partitioning each of the N physical storage devices into W partitions;

adding N protection groups to the W protection groups to produce T protection groups;

expanding the first matrix to accommodate T physical storage devices and T protection groups;

assigning the T protection groups to the W partitions of each of the T physical storage devices based on the expanded matrix; and

based on the assigning, moving data from at least a first of the W partitions on at least a first of the T physical devices to at least a second of the W partitions on at least a second of the T physical devices.

9. The system of claim 8 , wherein the assigning of the T protection groups assigns, for each of the T physical storage devices, a different one of T protection groups to each of the W partitions of the physical storage device, including re-assigning only W*(W−N) protection groups from a respective first of W partitions for a first of the W physical storage devices to a respective second of W partitions for a second of the T physical storage devices, wherein the method further includes:

moving only data of the W*(W−N) protection groups according to the re-assigning.

10. The system of claim 8 , wherein expanding the first matrix includes:

adding N rows to the W rows of the first matrix to produce T rows; and

transposing N columns from a fifth quantity (X=W−N) of the W rows to X columns of the added N rows.

11. The system of claim 10 , wherein expanding the first matrix includes:

before the transposing, swapping positions of the added N rows in the first matrix with positions of rows 0 through [N−1] in the matrix.

12. The system of claim 10 , wherein the method further includes:

after adding the N physical storage devices to the storage system, adding a sixth quantity (O) of physical storage devices to the storage system to produce a seventh quantity (T+O) of physical storage devices;

partitioning each of the added O physical storage devices into W partitions;

adding O protection groups to the T protection groups to produce T+O protection groups;

further expanding the first matrix to accommodate the O new physical storage devices, including:

adding O rows to the T rows of the first matrix, and

transposing W rows from O columns to the added O rows; and

assigning the T+O protection groups to the W partitions of each of the T+O physical storage devices based on the further expanded matrix.

13. The system of claim 8 , wherein the method further includes:

after adding the N physical storage devices to the storage system, adding a sixth quantity (O) of physical storage devices to the storage system to produce a seventh quantity (T+O) of physical storage devices;

partitioning each of the added O physical storage devices into W partitions;

adding O protection groups to the T protection groups to produce T+O protection groups;

determining if T+O>2*W;

if T+O>2*W, splitting the expanded first matrix into a second matrix and a third matric matrix; and

assigning the T+O protection groups to the W partitions of each of the T physical storage devices based on the second matrix and the third matrix.

14. The system of claim 13 , wherein the expanding of the first matrix into a second matrix and a third matric matrix includes:

configuring the second matrix to have vertically-aligned protection group assignments not subject to change in response to further additions of physical storage devices to the storage system; and

configuring the third matrix to have diagonally-aligned protection group assignments subject to change in response to further additions of physical storage devices to the storage system.

15. One or more non-transitory computer-readable media having code stored thereon that, when executed, performs a method of configuring protection groups for physical storage devices of a storage system, the method comprising:

partitioning each of a first quantity (W) of physical storage device into W partitions;

creating a first matrix including W columns and W rows, each row representing one of the W physical storage devices and each column representing one of the W partitions of each of the W physical storage devices;

using the first matrix to assign, for each of the W physical storage devices, a different one of W protection groups to each of the W partitions of the physical storage device;

adding a second quantity (N) of physical storage devices to the storage system, wherein N<W, to produce a third quantity (T=W+N) of physical storage devices;

partitioning each of the N physical storage devices into W partitions; executable code that controls adding N protection groups to the W protection groups to produce T protection groups;

expanding the first matrix to accommodate T physical storage devices and T protection groups;

assigning the T protection groups to the W partitions of each of the T physical storage devices based on the expanded matrix; and

based on the assigning, moving data from at least a first of the W partitions on at least a first of the T physical devices to at least a second of the W partitions on at least a second of the T physical devices.

16. The one or more non-transitory computer-readable media of claim 15 , wherein the assigning of the T protection groups assigns, for each of the T physical storage devices, a different one of T protection groups to each of the W partitions of the physical storage device, including re-assigning only W*(W−N) protection groups from a respective first of W partitions for a first of the W physical storage devices to a respective second of W partitions for a second of the T physical storage devices, wherein the method further comprises:

moving only data of the W*(W−N) protection groups according to the re-assigning.

17. The one or more non-transitory computer-readable media of claim 15 , wherein expanding the first matrix includes:

adding N rows to the W rows of the first matrix to produce T rows; and

transposing N columns from a fifth quantity (X=W−N) of the W rows to X columns of the added N rows.

18. The one or more non-transitory computer-readable media of claim 17 , wherein expanding the first matrix includes:

before the transposing, swapping positions of the added N rows in the first matrix with positions of rows 0 through [N−1] in the matrix.

19. The one or more non-transitory computer-readable media of claim 17 , wherein the method further comprises:

adding the N physical storage devices to the storage system, adding a sixth quantity (O) of physical storage devices to the storage system to produce a seventh quantity (T+O) of physical storage devices;

partitioning each of the added O physical storage devices into W partitions;

adding O protection groups to the T protection groups to produce T+O protection groups;

further expanding the first matrix to accommodate the O new physical storage devices, including:

adding O rows to the T rows of the first matrix, and

transposing W rows from O columns to the added O rows; and

assigning the T+O protection groups to the W partitions of each of the T+O physical storage devices based on the further expanded matrix.

20. The one or more non-transitory computer-readable media of claim 15 , wherein the method further comprises:

after adding the N physical storage devices to the storage system, adding a sixth quantity (O) of physical storage devices to the storage system to produce a seventh quantity (T+O) of physical storage devices;

partitioning each of the added O physical storage devices into W partitions;

adding O protection groups to the T protection groups to produce T+O protection groups;

determining if T+O>2*W;

if T+O>2*W, splitting the expanded first matrix into a second matrix and a third matric matrix; and

assigning the T+O protection groups to the W partitions of each of the T physical storage devices based on the second matrix and the third matrix.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2021
From: HUA, KUOLIN; GAO, KUNXIU
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056948/0689 →
Continuity (1)
Related Publication 20230027532A1 · Jan 26, 2023