IP Library Granted Patent US 7,814,272
Granted Patent B2
US 7,814,272 · App. 11/267,836 · Granted Oct 12, 2010

Dynamically upgradeable fault-tolerant storage system permitting variously sized storage devices and method

Assignee: Data Robotics, Inc.
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 7,814,272
App. No.
11/267,836
Granted
Oct 12, 2010
Kind
B2
Abstract

A dynamically upgradeable fault-tolerant storage system permits a storage device to be replaced with a larger storage device. Data stored redundantly across multiple storage devices is reproduced on the replacement device, and the additional storage space on the replacement device is made available for redundantly storing additional data.

Claims (39)

1. A method of storing data in a number of storage devices, the storage devices being under control of a storage manager external to the storage devices, the method comprising:

under control of the storage manager, storing fixed-size blocks of data in a first set of storage devices including at least a first storage device;

under control of the storage manager, causing a selected portion of the blocks to be stored, in a fault tolerant manner using block-based mirroring, in only the first storage device when the selected portion cannot be stored in a fault tolerant manner across a plurality of the storage devices; and

in response to a change of composition of the first set of storage devices resulting in a second set of storage devices, the second set including at least the first storage device and a new storage device, causing, under control of the storage manager, automatic reconfiguring of storage of the selected portion of the blocks, using information from the first storage device, such reconfiguring including using the new storage device as part of a storage pattern providing fault tolerance for the selected portion across a plurality of the storage devices in the second set, so that at least some storage space, on the first storage device, that had been utilized to provide fault tolerance for the selected portion becomes available for storage of other blocks of data.

2. A method according to claim 1 , wherein the new storage device is added to the first set of storage devices to form the second set.

3. A method according to claim 1 , wherein the new storage device replaces a storage device of the first set of storage devices to form the second set.

4. A method according to claim 3 , further comprising:

making additional storage capacity from the new storage device available for storing additional data, if the new storage device has a larger storage capacity than the storage device it replaced.

5. A method according to claim 1 , wherein data are stored in the first set of storage devices using a mixture of storage schemes.

6. A method according to claim 5 , wherein the mixture of storage schemes is selected from among a plurality of storage schemes including at least a fault intolerant storage scheme, a fault tolerant storage scheme using only a single storage device, a fault tolerant storage scheme using two storage devices, and a fault tolerant storage scheme using at least three storage devices.

7. A method according to claim 6 , wherein the fault tolerant storage schemes include at least one of mirroring, striping with parity, RAID6, dual parity, diagonal Parity, Low Density Parity Check codes, and turbo codes.

8. A method according to claim 1 , wherein automatically reconfiguring the portion comprises storing the portion in a fault tolerant manner within the new storage device.

9. A method according to claim 8 , wherein the portion is stored within the new storage device using one of mirroring, striping with parity, RAID6, dual parity, diagonal Parity, Low Density Parity Check codes, and turbo codes.

10. A method according to claim 1 , wherein automatically reconfiguring the portion comprises storing the portion in a fault tolerant manner across multiple storage devices in the second set of storage devices, including the new storage device.

11. A method according to claim 10 , wherein the portion is stored across the multiple storage devices using one of mirroring, striping with parity, RAID6, dual parity, diagonal Parity, Low Density Parity Check codes, and turbo codes.

12. A method according to claim 1 , further comprising:

advertising a storage capacity for the number of storage devices greater than an actual storage capacity for the number of storage devices; and

mapping requests to store data in locations outside of the actual storage capacity to locations within the actual storage capacity.

13. A method according to claim 12 , wherein mapping requests comprises:

maintaining a lookup table mapping requested locations to actual locations; and

indexing the lookup table according to the requested location to obtain the actual location.

14. A system for storing data, the system comprising:

a first set of storage devices having at least a first storage device; and

a storage manager, external to the storage devices, the storage manager being configured:

(i) to store fixed-size blocks of data in the first set of storage devices,

(ii) to cause a selected portion of the blocks to be stored, in a fault tolerant manner using block-based mirroring, in only the first storage device when the selected portion cannot be stored in a fault tolerant manner across a plurality of the storage devices, and

(iii) in response to a change of composition of the first set of storage devices resulting in a second set of storage devices including at least the first storage device and a new storage device, to automatically reconfigure storage of the selected portion of the blocks, using information from the first storage device, such reconfiguring including using the new storage device as part of a storage pattern providing fault tolerance for the selected portion across a plurality of the storage devices in the second set, so that at least some storage space, on the first storage device, that had been utilized to provide fault tolerance for the selected portion becomes available for storage of other blocks of data.

15. A system according to claim 14 , wherein the new storage device is added to the first set of storage devices to form the second set.

16. A system according to claim 14 , wherein the new storage device replaces a storage device of the first set of storage devices to form the second set.

17. A system according to claim 16 , wherein the storage manager makes additional storage capacity from the new storage device available for storing additional data, if the new storage device has a larger storage capacity than the storage device it replaced.

18. A system according to claim 14 , wherein the storage manager stores data in the first set of storage devices using a mixture of storage schemes.

19. A system according to claim 18 , wherein the storage manager selects the mixture of storage schemes from among a plurality of storage schemes including at least a fault intolerant storage scheme, a fault tolerant storage scheme using only a single storage device, a fault tolerant storage scheme using two storage devices, and a fault tolerant storage scheme using at least three storage devices.

20. A system according to claim 19 , wherein the fault tolerant storage schemes include at least one of mirroring, striping with parity, RAID6, dual parity, diagonal Parity, Low Density Parity Check codes, and turbo codes.

21. A system according to claim 14 , wherein the storage manager stores the portion in a fault tolerant manner within the new storage device.

22. A system according to claim 21 , wherein the storage manager stores the portion within the new storage device using one of mirroring, striping with parity, RAID6, dual parity, diagonal Parity, Low Density Parity Check codes, and turbo codes.

23. A system according to claim 14 , wherein the storage manager stores the portion in a fault tolerant manner across multiple storage devices in the second set of storage devices including the new storage device.

24. A system according to claim 23 , wherein the storage manager stores the portion across the multiple storage devices using one of mirroring, striping with parity, RAID6, dual parity, diagonal Parity, Low Density Parity Check codes, and turbo codes.

25. A system according to claim 14 , wherein the storage manager is configured to advertise a storage capacity for the number of storage devices greater than an actual storage capacity for the number of storage devices, and configured to map requests to store data in locations outside of the actual storage capacity to locations within the actual storage capacity.

26. A system according to claim 25 , wherein the storage manager maintains a lookup table mapping requested locations to actual locations, and indexes the lookup table according to the requested location to obtain the actual location.

Assignments (16)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2023
From: STORCENTRIC, INC.; DROBO, INC.; NEXSAN CORPORATION; NEXSAN TECHNOLOGIES INCORPORATED; VS ACQUISITION COMPANY, LLC; CONNECTED DATA, INC.; RETROSPECT, INC.
To: STORCENTRIC DIP LENDER, LLC
Reel/Frame 063416/0914 →
RELEASE OF SECURITY INTEREST Recorded Apr 24, 2023
From: NEWLIGHT CAPITAL, LLC; UMB BANK, NATIONAL ASSOCIATION
To: STORCENTRIC, INC.; CONNECTED DATA, INC.; DROBO, INC.; NEXSAN TECHNOLOGIES INCORPORATED; NEXSAN CORPORATION; RETROSPECT, INC.
Reel/Frame 063414/0816 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER: 13532559 PREVIOUSLY RECORDED AT REEL: 051860 FRAME: 0839. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 10, 2021
From: STORCENTRIC, INC.; CONNECTED DATA, INC.; DROBO, INC.; NEXSAN TECHNOLOGIES INCORPORATED; NEXSAN CORPORATION; RETROSPECT, INC.
To: NEWLIGHT CAPITAL, LLC; UMB BANK, NATIONAL ASSOCIATION, AS TRUSTEE
Reel/Frame 057156/0743 →
SECURITY INTEREST Recorded Feb 19, 2020
From: STORCENTRIC, INC.; CONNECTED DATA, INC.; DROBO, INC.; NEXSAN TECHNOLOGIES INCORPORATED; NEXSAN CORPORATION; RETROSPECT, INC.
To: NEWLIGHT CAPITAL, LLC; UMB BANK, NATIONAL ASSOCIATION, AS TRUSTEE
Reel/Frame 051860/0839 →
RELEASE OF SECURITY INTEREST Recorded Feb 19, 2020
From: GORDON BROTHERS FINANCE CO.
To: STORCENTRIC, INC.; DROBO, INC.; NEXSAN CORPORATION; NEXSAN TECHNOLOGIES INCORPORATED; CONNECTED DATA, INC.; NEXSAN TECHNOLOGIES LIMITED; NEXSAN TECHNOLOGIES CANADA INC.
Reel/Frame 051864/0774 →
RELEASE OF SECURITY INTEREST Recorded Aug 17, 2018
From: EAST WEST BANK
To: DROBO, INC.
Reel/Frame 046847/0959 →
RELEASE OF SECURITY INTEREST Recorded Aug 17, 2018
From: MONTAGE CAPITAL II, LP
To: DROBO, INC.
Reel/Frame 047881/0892 →
SHORT FORM INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 17, 2018
From: DROBO, INC.; NEXSAN CORPORATION; NEXSAN TECHNOLOGIES INCORPORATED; CONNECTED DATA, INC.; NEXSAN TECHNOLOGIES LIMITED; NEXSAN TECHNOLOGIES CANADA INC.; DROBO LIMITED
To: GORDON BROTHERS FINANCE COMPANY, AS AGENT
Reel/Frame 046845/0495 →
RELEASE OF SECURITY INTEREST Recorded Oct 27, 2017
From: VENTURE LENDING & LEASING VI, INC.; VENTURE LENDING & LEASING VII, INC.
To: DROBO, INC.
Reel/Frame 044311/0620 →
SECURITY INTEREST Recorded Sep 29, 2017
From: DROBO, INC.
To: MONTAGE CAPITAL II, L.P.
Reel/Frame 043745/0096 →
SECURITY INTEREST Recorded May 18, 2015
From: DROBO, INC.
To: EAST WEST BANK
Reel/Frame 035663/0328 →
SECURITY INTEREST Recorded Jun 11, 2014
From: DROBO, INC.
To: VENTURE LENDING & LEASING VI, INC.; VENTURE LENDING & LEASING VII, INC.
Reel/Frame 033126/0737 →
CHANGE OF NAME Recorded Mar 2, 2012
From: DATA ROBOTICS, INC.
To: DROBO, INC.
Reel/Frame 027798/0297 →
CHANGE OF NAME Recorded Jun 12, 2009
From: DATA ROBOTICS INCORPORATED
To: DATA ROBOTICS, INC.
Reel/Frame 022820/0589 →
CHANGE OF NAME Recorded May 25, 2007
From: TRUSTED DATA CORPORATION
To: DATA ROBOTICS INCORPORATED
Reel/Frame 019347/0725 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2006
From: BARRALL, GEOFFREY S.; TERRY, JULIAN M.
To: TRUSTED DATA CORPORATION
Reel/Frame 017081/0435 →
Continuity (3)
Provisional Application 6062549500 · Nov 5, 2004
Provisional Application 6071876800 · Sep 20, 2005
Related Publication 20060143380A1 · Jun 29, 2006