IP Library Granted Patent US 8,090,909
Granted Patent B2
US 8,090,909 · App. 12/479,319 · Granted Jan 3, 2012

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,090,909
App. No.
12/479,319
Granted
Jan 3, 2012
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 (39)

1. A system for implementing distributed RAID, comprising:

one or more hosts;

a plurality of data bank computers, each data bank coupled to each host and each of the other plurality of data banks, each data bank including:

a processor;

a data store;

a computer readable medium comprising instructions executable to:

receive a command corresponding to a first segment of a volume from a first host of the one or more hosts, wherein the volume comprises a set of segments, and the set of segments of the volume are stored on the plurality of data banks according to a data bank order, where the data bank order is a permutation of the plurality of data banks and redundancy data corresponding to a RAID level implemented in conjunction with the volume is stored on each of the plurality of data banks, such that for each segment of the volume a corresponding redundancy segment comprising the redundancy data associated with that segment of the volume does not reside on the same data bank as the corresponding segment of the volume;

determine a first data bank of the plurality of data banks, wherein the first data bank corresponds to the first segment; and

if the first data bank is the data bank which received the command execute the first command with respect to the first segment and if not, forward the first command to the first data bank.

2. The system of claim 1 , wherein the computer instructions are further executable to determine if the first command is a write command and if the first command is a write command determining a second data bank of the plurality of data banks, wherein the second data banks corresponds to a first redundancy segment associated with the first segment and if the second data bank is the data bank which received the command execute the first command with respect to the first redundancy segment and if not, forward the first command to the second data bank.

3. The system of claim 2 , wherein determining the first data bank and determining the second data bank comprises accessing a global table in the data store, the global table comprising the permutation of the data banks and the RAID level.

4. A method for distributed RAID implemented on a computing device having a processor, comprising:

establishing a volume on a plurality of data banks, where the volume comprises a set of segments and the set of segments of the volume are stored on the plurality of data banks according to a data bank order, where the data bank order is a permutation of the plurality of data banks;

implementing a RAID level in conjunction with the volume, wherein implementing the RAID level comprises storing a set of redundancy segments, each redundancy segment corresponding to one or more of the set of segments of the volume such that each redundancy segment does not reside on the same data bank as the corresponding one or more of the set of segments of the volume;

receiving a command corresponding to a first segment of the set of segments of the volume;

determining a first data bank of the plurality of data banks, wherein the first data bank corresponds to the first segment; and

executing the first command with respect to the first segment, wherein the first command is executed on the first data bank.

5. The method of claim 4 , further comprising determining if the first command is a write command and if the first command is a write command determining a second data bank of the plurality of data banks, wherein the second data banks corresponds to a first redundancy segment associated with the first segment and executing the first command with respect to the first redundancy segment, wherein the first command is executed on the second data bank.

6. The method of claim 5 , wherein determining the first data bank and determining the second data bank comprises accessing a global table comprising the permutation of the data banks and the RAID level.

7. A method for distributed RAID implemented on one or more data bank computers, each data bank computers coupled to one or more hosts and each of the other plurality of data banks, comprising:

receiving a command corresponding to a first segment of a volume from a host, wherein the volume comprises a set of segments, and the set of segments of the volume are stored on the plurality of data banks according to a data bank order, where the data bank order is a permutation of the plurality of data banks and redundancy data corresponding to a RAID level implemented in conjunction with the volume is stored on each of a plurality of data banks, such that for each segment of the volume a corresponding redundancy segment comprising the redundancy data associated with that segment of the volume does not reside on the same data bank as the corresponding segment of the volume;

determining a first data bank of the plurality of data banks, wherein the first data bank corresponds to the first segment;

executing the first command with respect to the first segment, wherein the first command is executed on the first data bank.

8. The method of claim 7 , further comprising determining if the first command is a write command and if the first command is a write command determining a second data bank of the plurality of data banks, wherein the second data banks corresponds to a first redundancy segment associated with the first segment and executing the first command with respect to the redundancy segment, wherein the first command is executed on the second data bank.

9. The method of claim 8 , wherein determining the first data bank and determining the second data bank comprises accessing a global table comprising the permutation of the data banks and the RAID level.

10. A computer readable medium comprising computer executable instructions for implementing distributed RAID, the computer instructions executable for:

establishing a volume on a plurality of data banks, where the volume comprises a set of segments and the set of segments of the volume are stored on the plurality of data banks according to a data bank order, where the data bank order is a permutation of the plurality of data banks;

implementing a RAID level in conjunction with the volume, wherein implementing the RAID level comprises storing a set of redundancy segments, each redundancy segment corresponding to one or more of the set of segments of the volume such that each redundancy segment does not reside on the same data bank as the corresponding one or more of the set of segments of the volume;

receiving a command corresponding to a first segment of the set of segments of the volume;

determining a first data bank of the plurality of data banks, wherein the first data bank corresponds to the first segment; and

executing the first command with respect to the first segment, wherein the first command is executed on the first data bank.

11. The computer readable medium of claim 10 , wherein the instructions are further executable for determining if the first command is a write command and if the first command is a write command determining a second data bank of the plurality of data banks, wherein the second data banks corresponds to a first redundancy segment associated with the first segment and executing the first command with respect to the first redundancy segment, wherein the first command is executed on the second data bank.

12. The computer readable medium of claim 11 , wherein determining the first data bank and determining the second data bank comprises accessing a global table comprising the permutation of the data banks and the RAID level.

13. A computer readable medium comprising computer executable instructions for implementing distributed RAID a plurality of data bank computers, the computer instructions executable for:

receiving a command corresponding to a first segment of a volume from a host, wherein the volume comprises a set of segments, and the set of segments of the volume are stored on the plurality of data banks according to a data bank order, where the data bank order is a permutation of the plurality of data banks and redundancy data corresponding to a RAID level implemented in conjunction with the volume is stored on each of a plurality of data banks, such that for each segment of the volume a corresponding redundancy segment comprising the redundancy data associated with that segment of the volume does not reside on the same data bank as the corresponding segment of the volume;

determining a first data bank of the plurality of data banks, wherein the first data bank corresponds to the first segment;

executing the first command with respect to the first segment, wherein the first command is executed on the first data bank.

14. The computer readable medium of claim 13 , wherein the instructions are further executable for determining if the first command is a write command and if the first command is a write command determining a second data bank of the plurality of data banks, wherein the second data banks corresponds to a first redundancy segment associated with the first segment and executing the first command with respect to the redundancy segment, wherein the first command is executed on the second data bank.

15. The computer readable medium of claim 14 , wherein determining the first data bank and determining the second data bank comprises accessing a global table comprising the permutation of the data banks and the RAID level.

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 →
CORRECTIVE DOCUMENT FOR ASSIGNMENT CORRECTING ASSIGNEE NAME ORIGINALLY RECORDED AT REEL/FRAME 023029/0979 Recorded Jul 24, 2012
From: GALLOWAY, WILLIAM C.; CALLISON, RYAN A.; PELLEGRINO, GREG J.; TAN, CHOON-SENG
To: PIVOT3, INC.
Reel/Frame 028635/0881 →
SECURITY AGREEMENT Recorded Nov 17, 2009
From: PIVOT3, INC.
To: COMERICA BANK, A TEXAS BANKING ASSOCIATION
Reel/Frame 023525/0365 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2009
From: GALLOWAY, WILLIAM C.; CALLISON, RYAN A.; PELLEGRINO, GREG J.; TAN, CHOON-SEND
To: PIVOT3
Reel/Frame 023029/0979 →