IP Library Granted Patent US 8,527,699
Granted Patent B2
US 8,527,699 · App. 13/093,042 · Granted Sep 3, 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,527,699
App. No.
13/093,042
Granted
Sep 3, 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. Each data bank may have a high speed memory where a write cache is stored. In certain embodiments, a virtualization layer may be executed on a data bank and the distributed RAID application may execute on the virtualization layer. The distributed RAID application may control access to the high speed memory on which the write cache is stored.

Claims (37)

1. A system for implementing distributed Redundant Array of Independent Disks (RAID), comprising: a plurality of data bank computers, each data bank coupled to each of one or more hosts and each of the other plurality of data banks, each data bank including:

a processor;

a data store;

a high speed memory;

a computer readable medium comprising first instructions for a distributed RAID application, the first 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 and redundancy data corresponding to a RAID level implemented in conjunction with the volume are stored on each of 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, such that for each segment of the volume a corresponding redundancy segment comprising the redundancy data associated with that segment does not reside on the same data bank as the segment;

determine if the command is a write command and if the command is a write command storing the write command in a write cache on the high speed memory;

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 command with respect to the first segment and if not, forward the command to the first data bank.

2. The system of claim 1 , wherein the high speed memory is part of the data store.

3. The system of claim 1 , wherein the first instructions are further executable to send a response to the first host after the write command is stored in the write cache.

4. The system of claim 3 , wherein the response to the first host is sent before the determination of the first data bank, execution of the command or forwarding of the command.

5. The system of claim 1 , wherein the computer readable medium comprises second instructions executable to implement a virtualization layer, wherein the distributed RAID application executes on the virtualization layer.

6. The system of claim 5 , wherein the system further comprises a disk controller coupled to the high speed memory and used to control access to the high speed memory.

7. The system of claim 6 , wherein the disk controller is controlled by the distributed RAID application.

8. A method for implementing a distributed Redundant Array of Independent Disks (RAID) application on one or more data bank computers, each data bank computer comprising a processor, a data store and a high speed memory and each data bank 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 and redundancy data corresponding to a RAID level implemented in conjunction with the volume are stored on each of a plurality of data banks according to a data bank order where the data bank order is a permutation 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 does not reside on the same data bank as the segment;

determining if the command is a write command and if the command is a write command storing the write command in a write cache on the high speed memory;

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 command is executed on the first data bank.

9. The method of claim 8 , wherein the high speed memory is part of the data store.

10. The method of claim 8 , further comprising sending a response to the first host after the write command is stored in the write cache.

11. The method of claim 10 , wherein the response to the first host is sent before the determination of the first data bank, execution of the command or forwarding of the command.

12. The method of claim 8 , further comprising executing a virtualization layer, wherein the distributed RAID application executes on the virtualization layer.

13. The method of claim 12 , wherein the method utilizing a disk controller coupled to the high speed memory to control access to the high speed memory.

14. The method of claim 13 , wherein the disk controller is controlled by the distributed RAID application.

15. A non-transitory computer readable medium comprising computer executable instructions for implementing a distributed Redundant Array of Independent Disks (RAID) application on one or more data bank computers, each data bank computer comprising a processor, a data store and a high speed memory and each data bank coupled to one or more hosts and each of the other plurality of data banks, the computer instructions executable for:

receiving a command corresponding to a first segment of a volume from a host, wherein the volume and redundancy data corresponding to a RAID level implemented in conjunction with the volume are stored on each of a plurality of data banks according to a data bank order where the data bank order is a permutation 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 does not reside on the same data bank as the segment;

determining if the command is a write command and if the command is a write command storing the write command in a write cache on the high speed memory;

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

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

16. The computer readable medium of claim 15 , wherein the high speed memory is part of the data store.

17. The computer readable medium of claim 15 , further comprising sending a response to the first host after the write command is stored in the write cache.

18. The computer readable medium of claim 17 , wherein the response to the first host is sent before the determination of the first data bank, execution of the command or forwarding of the command.

19. The computer readable medium of claim 15 , further comprising executing a virtualization layer, wherein the distributed RAID application executes on the virtualization layer.

20. The computer readable medium of claim 19 , wherein the method utilizing a disk controller coupled to the high speed memory to control access to the high speed memory.

21. The computer readable medium of claim 20 , wherein the disk controller is controlled by the distributed RAID application.

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 Jul 5, 2011
From: GALLOWAY, WILLIAM C.; TAN, CHOON-SENG; GOODWYN, BENJAMIN WAYNE; CURLEY, MATTHEW E.
To: PIVOT3, INC.
Reel/Frame 026559/0992 →