IP Library Granted Patent US 8,386,709
Granted Patent B2
US 8,386,709 · App. 13/364,439 · Granted Feb 26, 2013

Method and system for protecting against multiple failures in a raid system

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 8,386,709
App. No.
13/364,439
Granted
Feb 26, 2013
Kind
B2
Abstract

Embodiments of methods of protecting RAID systems from multiple failures and such protected RAID systems are disclosed. More particularly, in certain embodiments of a distributed RAID system each data bank has a set of associated storage media and executes a similar distributed RAID application. The distributed RAID applications on each of the data banks coordinate among themselves to distribute and control data flow associated with implementing a level of RAID in conjunction with data stored on the associated storage media of the data banks. Furthermore, one or more levels of RAID may be implemented within one or more of the data banks comprising the distributed RAID system.

Claims (43)

1. A method of protecting a RAID system from multiple failures, the method comprising:

establishing a volume on a plurality of storage appliances, where the volume comprises a set of segments and the set of segments are stored on the plurality of storage appliances according to a random permutation of the plurality of storage appliances, wherein executing a command in conjunction with the volume comprises determining the random permutation by accessing a global table storing the random permutation, and the volume is associated with a first RAID level;

implementing the first RAID level in conjunction with the volume, wherein implementing the first RAID level comprises storing a set of network parity (NP) segments, each NP segment corresponding to one or more of the set segments such that each NP segment does not reside on the same storage appliance as the corresponding one or more of the set of segments; and

implementing a second RAID level within a first of the plurality of storage appliances.

2. The method of claim 1 , wherein the first RAID level is the same as the second RAID level.

3. The method of claim 1 , further comprising implementing a third RAID level within a second of the plurality of storage appliances, wherein the third RAID level is the same as or different than the second RAID level.

4. The method of claim 1 , further comprising implementing a third RAID level within the first of the plurality of storage appliances where the third RAID level is the same as or different than the second RAID level.

5. The method of claim 1 , wherein implementing the second RAID level for the first of the plurality of storage appliance comprises, for the set of segments stored on the first storage appliance:

storing a set of parity of data (POD) segments on a set of storage media of the first storage appliance, each POD segment corresponding to one or more of the set of data segments stored on the first storage appliance such that each POD segment does not reside on the same storage media as the corresponding one or more of the set of segments stored on the first storage appliance; and

storing a set of parity of parity (POP) segments, each POP segment corresponding to one or more of the set of NP segments stored on the first storage appliance such that each POP segment does not reside on the same storage media as the corresponding one or more of the set of NP segments on the first storage appliance.

6. The method of claim 5 , wherein implementing the second RAID level further comprises, for the set of segments stored on the first storage appliance:

storing a set of Q of data (QOD) segments, each QOD segment corresponding to a POD segment and created from the one or more of the set of data segments on the first storage appliance corresponding to the POD segment, such that each QOD segment does not reside on the same storage media as the corresponding POD segment; and

storing a set of Q of parity (QOP) segments, each QOP segment corresponding to a POP segment and created from the one or more of NP segments corresponding to the POD segment, such that each QOP segment does not reside on the same storage media as the corresponding POP segment.

7. A system for implementing distributed RAID, comprising:

a plurality of storage appliances, each storage appliance including:

a processor;

a data store comprising a set of storage media; and

a non-transitory computer readable medium comprising instructions executable to:

establish a volume on the plurality of storage appliances, where the volume comprises a set of segments and the set of segments are stored on the plurality of storage appliances according to a random permutation of the plurality of storage appliances, wherein executing a command in conjunction with the volume comprises determining the random permutation by accessing a global table storing the random permutation, and the volume is associated with a first RAID level;

implement the first RAID level in conjunction with the volume, wherein implementing the first RAID level comprises storing a set of network parity (NP) segments, each NP segment corresponding to one or more of the set segments such that each NP segment does not reside on the same storage appliance as the corresponding one or more of the set of segments; and

implement a second RAID level within a first of the plurality of storage appliances.

8. The system of claim 7 , wherein the first RAID level is the same as the second RAID level.

9. The system of claim 7 , wherein the non-transitory computer readable medium further comprises instructions to implement a third RAID level within a second of the plurality of storage appliances, wherein the third RAID level is the same as or different than the second RAID level.

10. The system of claim 7 , wherein the non-transitory computer readable medium further comprises instructions to implement a third RAID level within the first of the plurality of storage appliances where the third RAID level is the same as or different than the second RAID level.

11. The system of claim 7 , wherein implementing the second RAID level for the first of the plurality of storage appliance comprises, for the set of segments stored on the first storage appliance:

storing a set of parity of data (POD) segments on a set of storage media of the first storage appliance, each POD segment corresponding to one or more of the set of data segments stored on the first storage appliance such that each POD segment does not reside on the same storage media as the corresponding one or more of the set of segments stored on the first storage appliance; and

storing a set of parity of parity (POP) segments, each POP segment corresponding to one or more of the set of NP segments stored on the first storage appliance such that each POP segment does not reside on the same storage media as the corresponding one or more of the set of NP segments on the first storage appliance.

12. The system of claim 11 , wherein implementing the second RAID level further comprises, for the set of segments stored on the first storage appliance:

storing a set of Q of data (QOD) segments, each QOD segment corresponding to a POD segment and created from the one or more of the set of data segments on the first storage appliance corresponding to the POD segment, such that each QOD segment does not reside on the same storage media as the corresponding POD segment; and

storing a set of Q of parity (QOP) segments, each QOP segment corresponding to a POP segment and created from the one or more of NP segments corresponding to the POD segment, such that each QOP segment does not reside on the same storage media as the corresponding POP segment.

13. A non-transitory computer readable medium comprising computer executable instructions for implementing distributed RAID, the computer instructions executable for:

establishing a volume on a plurality of storage appliances, where the volume comprises a set of segments and the set of segments are stored on the plurality of storage appliances according to a random permutation of the plurality of storage appliances, wherein executing a command in conjunction with the volume comprises determining the random permutation by accessing a global table storing the random permutation, and the volume is associated with a first RAID level;

implementing the first RAID level in conjunction with the volume, wherein implementing the first RAID level comprises storing a set of network parity (NP) segments, each NP segment corresponding to one or more of the set segments such that each NP segment does not reside on the same storage appliance as the corresponding one or more of the set of segments; and

implementing a second RAID level within a first of the plurality of storage appliances.

14. The non-transitory computer readable medium of claim 13 , wherein the first RAID level is the same as the second RAID level.

15. The non-transitory computer readable medium of claim 13 , wherein the instructions are executable for implementing a third RAID level within a second of the plurality of storage appliances, wherein the third RAID level is the same as or different than the second RAID level.

16. The non-transitory computer readable medium of claim 13 , wherein the instructions are executable for implementing a third RAID level within the first of the plurality of storage appliances where the third RAID level is the same as or different than the second RAID level.

17. The non-transitory computer readable medium of claim 13 , wherein implementing the second RAID level for the first of the plurality of storage appliance comprises, for the set of segments stored on the first storage appliance:

storing a set of parity of data (POD) segments on a set of storage media of the first storage appliance, each POD segment corresponding to one or more of the set of data segments stored on the first storage appliance such that each POD segment does not reside on the same storage media as the corresponding one or more of the set of segments stored on the first storage appliance; and

storing a set of parity of parity (POP) segments, each POP segment corresponding to one or more of the set of NP segments stored on the first storage appliance such that each POP segment does not reside on the same storage media as the corresponding one or more of the set of NP segments on the first storage appliance.

18. The non-transitory computer readable medium of claim 17 , wherein implementing the second RAID level further comprises, for the set of segments stored on the first storage appliance:

storing a set of Q of data (QOD) segments, each QOD segment corresponding to a POD segment and created from the one or more of the set of data segments on the first storage appliance corresponding to the POD segment, such that each QOD segment does not reside on the same storage media as the corresponding POD segment; and

storing a set of Q of parity (QOP) segments, each QOP segment corresponding to a POP segment and created from the one or more of NP segments corresponding to the POD segment, such that each QOP segment does not reside on the same storage media as the corresponding POP segment.

Assignments (8)
INTELLECTUAL PROPERTY RELEASE Recorded Jan 4, 2024
From: RUNWAY GROWTH FINANCE CORP.
To: PIVOT3, INC.; NEXGEN STORAGE, INC.
Reel/Frame 066193/0189 →
RELEASE OF SECURITY INTEREST Recorded May 15, 2019
From: PACIFIC WESTERN BANK
To: PIVOT3, INC.
Reel/Frame 049186/0154 →
SECURITY INTEREST Recorded May 13, 2019
From: PIVOT3, INC.; NEXGEN STORAGE, INC.
To: RUNWAY GROWTH CREDIT FUND INC.
Reel/Frame 049164/0117 →
RELEASE OF SECURITY INTEREST Recorded Mar 28, 2016
From: COMERICA BANK
To: PIVOT3, INC.
Reel/Frame 038114/0207 →
SECURITY INTEREST Recorded Mar 22, 2016
From: PIVOT3, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 038068/0092 →
SECURITY AGREEMENT Recorded Dec 11, 2012
From: PIVOT3, INC.
To: COMERICA BANK
Reel/Frame 029444/0462 →
CORRECTIVE DOCUMENT CORRECTING ASSIGNEE FOR ASSIGNMENT RECORDED AT REEL 027890 FRAME 0057. Recorded Sep 5, 2012
From: GALLOWAY, WILLIAM C.; CALLISON, RYAN A.; PELLEGRINO, GREG J.; TAN, CHOON-SENG
To: PIVOT3, INC.
Reel/Frame 028931/0515 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2012
From: GALLOWAY, WILLIAM C.; CALLISON, RYAN A.; PELLEGRINO, GREG J.; TAN, CHOON-SENG
To: PIVOT3
Reel/Frame 027890/0057 →