IP Library Granted Patent US 11,132,258
Granted Patent B2
US 11,132,258 · App. 16/263,767 · Granted Sep 28, 2021

In-place RAID conversion system and method

Inventors: Roy Koren (Kfar Saba, IL); Yair Hershkovitz (Netanya, IL); Vladimir Shveidel (Pardes-Hana, IL)
Assignee: EMC IP Holding Company, LLC
G06F11/1096G06F3/0607G06F3/0632G06F3/0689G06F2211/1004
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,132,258
App. No.
16/263,767
Granted
Sep 28, 2021
Kind
B2
Abstract

A method, computer program product, and computing system for receiving a request to reconfigure a data array that currently includes N data drives and P parity drives to include N data drives and P+1 parity drives; confirming the availability of the P+1 parity drive; and distributing a plurality of new parity portions across the N data drives and P+1 parity drives.

Claims (53)

1. A computer-implemented method, executed on a computing device, comprising:

receiving a request to reconfigure a data array that currently includes N data drives and P parity drives to include N data drives and P+1 parity drives, wherein original parity portions of the data array are arranged in an increasing order based on the number of N data drives and P parity drives across Redundant Array of Independent Disks (RAID) stripes of a RAID stripe set, wherein the N data drives and the P parity drives include N data portions and P parity portions;

confirming the availability of the P+1 parity drive;

distributing a plurality of new parity portions across the N data drives and P+1 parity drives; and

relocating one of an original parity portion and an original data portion chosen from a plurality of P parity portions and N data portions associated with the P parity drives and the N data drives once per RAID stripe of the RAID stripe set to the P+1 parity drive in a decreasing order across the plurality of RAID stripes of the RAID stripe set based on the N data drives and the P+1 parity drives, wherein distributing the plurality of new parity portions includes writing the new parity portions to an original location of the relocated original parity portion or original data portion per RAID stripe of the RAID stripe set.

2. The computer-implemented method of claim 1 wherein receiving a request to reconfigure a data array that currently includes N data drives and P parity drives to include N data drives and P+1 parity drives concerns reconfiguring a RAID 5 data array to a RAID 6 data array.

3. The computer-implemented method of claim 2 wherein:

the RAID 5 data array includes N data drives and one parity drive; and

the RAID 6 data array includes N data drives and two parity drives.

4. The computer-implemented method of claim 1 further comprising maintaining a first new parity portion, chosen from the plurality of new parity portions, on the P+1 parity drive within a first RAID stripe of a RAID stripe set, wherein maintaining a first new parity portion, chosen from the plurality of new parity portions, on the P+1 parity drive within a first RAID strip of a RAID strip set includes:

calculating the first new parity portion for the first RAID stripe of the RAID stripe set; and

storing the first new parity portion for the first RAID stripe of the RAID stripe set on the P+1 parity drive.

5. The computer-implemented method of claim 1 further comprising:

copying data currently stored on a specific drive, chosen from the N data drives and P parity drives, within a specific RAID stripe of the RAID stripe set to the P+1 parity drive of the specific RAID stripe.

6. The computer-implemented method of claim 5 further comprising:

calculating a specific new parity portion for the specific RAID stripe of the RAID stripe set; and

storing the specific new parity portion for the specific RAID stripe of the RAID stripe set on the specific drive.

7. The computer-implemented method of claim 6 , wherein calculating a specific new parity portion for the specific RAID stripe of the RAID stripe set includes using a dual check data computation, orthogonal dual parity check data, and diagonal parity.

8. The computer-implemented method of claim 7 , wherein the dual check data computation includes one or more of parity and Reed-Solomon.

9. 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:

receiving a request to reconfigure a data array that currently includes N data drives and P parity drives to include N data drives and P+1 parity drives, wherein original parity portions of the data array are arranged in an increasing order based on the number of N data drives and P parity drives across Redundant Array of Independent Disks (RAID) stripes of a RAID stripe set, wherein the N data drives and the P parity drives include N data portions and P parity portions;

confirming the availability of the P+1 parity drive;

distributing a plurality of new parity portions across the N data drives and P+1 parity drives; and

relocating one of an original parity portion and an original data portion chosen from a plurality of P parity portions and N data portions associated with the P parity drives and the N data drives once per RAID stripe of the RAID stripe set to the P+1 parity drive in a decreasing order across the plurality of RAID stripes of the RAID stripe set based on the N data drives and the P+1 parity drives, wherein distributing the plurality of new parity portions includes writing the new parity portions to an original location of the relocated original parity portion or original data portion per RAID stripe of the RAID stripe set.

10. The computer program product of claim 9 wherein receiving a request to reconfigure a data array that currently includes N data drives and P parity drives to include N data drives and P+1 parity drives concerns reconfiguring a RAID 5 data array to a RAID 6 data array.

11. The computer program product of claim 10 wherein:

the RAID 5 data array includes N data drives and one parity drive; and

the RAID 6 data array includes N data drives and two parity drives.

12. The computer program product of claim 9 further comprising maintaining a first new parity portion, chosen from the plurality of new parity portions, on the P+1 parity drive within a first RAID stripe of a RAID stripe set, wherein maintaining a first new parity portion, chosen from the plurality of new parity portions, on the P+1 parity drive within a first RAID strip of a RAID strip set includes:

calculating the first new parity portion for the first RAID stripe of the RAID stripe set; and

storing the first new parity portion for the first RAID stripe of the RAID stripe set on the P+1 parity drive.

13. The computer program product of claim 9 further including:

copying data currently stored on a specific drive, chosen from the N data drives and P parity drives, within a specific RAID stripe of the RAID stripe set to the P+1 parity drive of the specific RAID stripe.

14. The computer program product of claim 13 further including:

calculating a specific new parity portion for the specific RAID stripe of the RAID stripe set; and

storing the specific new parity portion for the specific RAID stripe of the RAID stripe set on the specific drive.

15. A computing system including a processor and memory configured to perform operations comprising:

receiving a request to reconfigure a data array that currently includes N data drives and P parity drives to include N data drives and P+1 parity drives, wherein original parity portions of the data array are arranged in an increasing order based on the number of N data drives and P parity drives across Redundant Array of Independent Disks (RAID) stripes of a RAID stripe set, wherein the N data drives and the P parity drives include N data portions and P parity portions;

confirming the availability of the P+1 parity drive;

distributing a plurality of new parity portions across the N data drives and P+1 parity drives; and

relocating one of an original parity portion and an original data portion chosen from a plurality of P parity portions and N data portions associated with the P parity drives and the N data drives once per RAID stripe of the RAID stripe set to the P+1 parity drive in a decreasing order across the plurality of RAID stripes of the RAID stripe set based on the N data drives and the P+1 parity drives, wherein distributing the plurality of new parity portions includes writing the new parity portions to an original location of the relocated original parity portion or original data portion per RAID stripe of the RAID stripe set.

16. The computing system of claim 15 wherein receiving a request to reconfigure a data array that currently includes N data drives and P parity drives to include N data drives and P+1 parity drives concerns reconfiguring a RAID 5 data array to a RAID 6 data array.

17. The computing system of claim 16 wherein:

the RAID 5 data array includes N data drives and one parity drive; and

the RAID 6 data array includes N data drives and two parity drives.

18. The computing system of claim 15 further comprising maintaining a first new parity portion, chosen from the plurality of new parity portions, on the P+1 parity drive within a first RAID stripe of a RAID stripe set, wherein maintaining a first new parity portion, chosen from the plurality of new parity portions, on the P+1 parity drive within a first RAID strip of a RAID strip set includes:

calculating the first new parity portion for the first RAID stripe of the RAID stripe set; and

storing the first new parity portion for the first RAID stripe of the RAID stripe set on the P+1 parity drive.

19. The computing system of claim 15 further comprising:

copying data currently stored on a specific drive, chosen from the N data drives and P parity drives, within a specific RAID stripe of the RAID stripe set to the P+1 parity drive of the specific RAID stripe.

20. The computing system of claim 19 further comprising:

calculating a specific new parity portion for the specific RAID stripe of the RAID stripe set; and

storing the specific new parity portion for the specific RAID stripe of the RAID stripe set on the specific drive.

Assignments (6)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
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 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 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2019
From: KOREN, ROY; HERSHKOVITZ, YAIR; SHVEIDEL, VLADIMIR
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 048210/0053 →