IP Library Granted Patent US 8,621,147
Granted Patent B2
US 8,621,147 · App. 13/543,561 · Granted Dec 31, 2013

Method and system for distributed RAID implementation

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,621,147
App. No.
13/543,561
Granted
Dec 31, 2013
Kind
B2
Abstract

Embodiments of the systems and methods disclosed provide a distributed RAID system comprising a set of data banks. 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.

Claims (43)

1. A system for implementing distributed RAID, comprising:

a storage appliance of a plurality of storage appliances, the storage appliance including:

a processor;

a data store;

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

receive a first command corresponding to a first data segment of a first volume from a host, wherein:

the first volume comprises a first set of data segments, wherein the first set of data segments are stored on the plurality of storage appliances according to a first storage appliance order, the first storage appliance order is a first ordering of the plurality of storage appliances, and parity segments corresponding to a first RAID level implemented in conjunction with the first volume are distributed across the plurality of storage appliances according to the storage appliance order such that for each data segment of the first volume a parity segment comprising redundancy data associated with that data segment does not reside on the same storage appliance as that data segment; and

determine a first storage appliance of the plurality of storage appliances based on the storage appliance order, wherein the first storage appliance corresponds to the first data segment, and if the first storage appliance is the storage appliance which received the first command execute the first command with respect to the first data segment, and

if not, forward the first command to the first storage appliance.

2. The system of claim 1 , wherein a second volume is stored on the plurality of storage appliances according to a second storage appliance order, wherein the second storage appliance order is a second ordering of the plurality of storage appliances.

3. The system of claim 2 , wherein a second RAID level is implemented in conjunction with the second volume.

4. The system of claim 1 , wherein a second data segment of the first volume corresponds to the parity segment.

5. The system of claim 1 , wherein the instructions are further executable to:

determine if the first command is a read command or a write command and if the first command is a write command:

determine a second storage appliance of the plurality of storage appliances, wherein the second storage appliance corresponds to the parity segment corresponding to the first data segment; and if the second storage appliance is the storage appliance which received the first command execute the first command with respect to the parity segment and if not, forward the first command to the second storage appliance.

6. The system of claim 1 , wherein the instructions are further executable to:

determine if the first storage appliance has a fault and if the first storage appliance has a fault: determine a second storage appliance of the plurality of storage appliances, wherein the second storage appliance corresponds to the parity segment corresponding to the first data segment, and if the second storage appliance is the storage appliance which received the first command execute the first command with respect to the parity segment and, if not, forward the first command to the second storage appliance.

7. A method for distributed RAID implemented a storage appliance of a plurality of storage appliances, comprising:

receiving a first command corresponding to a first data segment of a first volume from a host, wherein:

the first volume comprises a first set of data segments, wherein the first set of data segments are stored on a plurality of storage appliances according to a first storage appliance order, the first storage appliance order is a first ordering of the plurality of storage appliances, and parity segments corresponding to a first RAID level implemented in conjunction with the first volume are distributed across the plurality of storage appliances according to the storage appliance order such that for each data segment of the first volume a parity segment comprising redundancy data associated with that data segment does not reside on the same storage appliance as that data segment; and

determining a first storage appliance of the plurality of storage appliances based on the storage appliance order, wherein the first storage appliance corresponds to the first data segment, and if the first storage appliance is the storage appliance which received the first command execute the first command with respect to the first data segment, and

if not, forward the first command to the first storage appliance.

8. The method of claim 7 , wherein a second volume is stored on the plurality of storage appliances according to a second storage appliance order, wherein the second storage appliance order is a second ordering of the plurality of storage appliances.

9. The method of claim 8 , wherein a second RAID level is implemented in conjunction with the second volume.

10. The method of claim 7 , wherein a second data segment of the first volume corresponds to the parity segment.

11. The method claim 7 , further comprising:

determining if the first command is a read command or a write command and if the first command is a write command:

determining a second storage appliance of the plurality of storage appliances, wherein the second storage appliance corresponds to the parity segment corresponding to the first data segment; and if the second storage appliance is the storage appliance which received the first command execute the first command with respect to the parity segment and if not, forward the first command to the second storage appliance.

12. The method claim 7 , further comprising:

determining if the first storage appliance has a fault and if the first storage appliance has a fault: determine a second storage appliance of the plurality of storage appliances, wherein the second storage appliance corresponds to the parity segment corresponding to the first data segment, and if the second storage appliance is the storage appliance which received the first command execute the first command with respect to the parity segment and, if not, forward the first command to the second storage appliance.

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

receiving a first command corresponding to a first data segment of a first volume from a host, wherein:

the first volume comprises a first set of data segments, wherein the first set of data segments are stored on a plurality of storage appliances according to a first storage appliance order, the first storage appliance order is a first ordering of the plurality of storage appliances, and parity segments corresponding to a first RAID level implemented in conjunction with the first volume are distributed across the plurality of storage appliances according to the storage appliance order such that for each data segment of the first volume a parity segment comprising redundancy data associated with that data segment does not reside on the same storage appliance as that data segment; and

determining a first storage appliance of the plurality of storage appliances based on the storage appliance order, wherein the first storage appliance corresponds to the first data segment, and if the first storage appliance is the storage appliance which received the first command execute the first command with respect to the first data segment, and

if not, forward the first command to the first storage appliance.

14. The computer readable medium of claim 13 , wherein a second volume is stored on the plurality of storage appliances according to a second storage appliance order, wherein the second storage appliance order is a second ordering of the plurality of storage appliances.

15. The computer readable medium of claim 14 , wherein a second RAID level is implemented in conjunction with the second volume.

16. The computer readable medium of claim 13 , wherein a second data segment of the first volume corresponds to the parity segment.

17. The computer readable medium claim 13 , further comprising instructions for:

determining if the first command is a read command or a write command and if the first command is a write command:

determining a second storage appliance of the plurality of storage appliances, wherein the second storage appliance corresponds to the parity segment corresponding to the first data segment; and if the second storage appliance is the storage appliance which received the command execute the first command with respect to the parity segment and if not, forward the first command to the second storage appliance.

18. The method claim 13 , further comprising instructions for:

determining if the first storage appliance has a fault and if the first storage appliance has a fault: determine a second storage appliance of the plurality of storage appliances, wherein the second storage appliance corresponds to the parity segment corresponding to the first data segment, and if the second storage appliance is the storage appliance which received the first command execute the first command with respect to the parity segment and, if not, forward the first command to the second storage appliance.

Assignments (7)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2012
From: GALLOWAY, WILLIAM C.; CALLISON, RYAN A.; PELLEGRINO, GREG J.; TAN, CHOON-SENG
To: PIVOT3, INC.
Reel/Frame 029155/0844 →