IP Library Granted Patent US 9,043,639
Granted Patent B2
US 9,043,639 · App. 11/267,963 · Granted May 26, 2015

Dynamically expandable and contractible fault-tolerant storage system with virtual hot spare

Inventors: Geoffrey S. Barrall (San Jose, CA); Julian M. Terry (Mountain View, CA); Kenneth Rosen (Portola Valley, CA)
Assignee: Drobo, Inc.
G06F11/2094G06F3/0607G06F3/0644G06F3/0689G06F11/1084G06F11/1096G06F11/1658G06F11/1662G06F11/2069G06F11/2087G06F11/325G06F2211/1004G06F2211/1023G06F2211/1028G11B27/11G11B27/329G11B2220/415G11B2220/65
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 9,043,639
App. No.
11/267,963
Granted
May 26, 2015
Kind
B2
Abstract

A dynamically expandable and contractible fault-tolerant storage system employs a virtual hot spare that is created from unused storage capacity across a plurality of storage devices. This unused storage capacity is available if and when a storage device fails for storage of data recovered from the remaining storage device(s). On an ongoing basis, the storage system may determine the amount of unused storage capacity that would be required for the virtual hot spare (e.g., based on the number of storage devices, the capacities of the various storage devices, the amount of data stored, and the manner in which the data is stored) and generate a signal if additional storage capacity is needed for a virtual hot spare.

Claims (47)

1. A method of recovering from loss of a given storage device from a set of storage devices having a plurality of storage devices, each of the storage devices storing fixed-size blocks of data, the method comprising:

under control of a storage manager external to the set of storage devices, storing data in a fault tolerant manner across a plurality of storage devices in the set of storage devices without mirroring the data within a single storage device; and

in response to a loss of the given storage device from the set, the given storage device having stored thereon a portion of the data used to provide fault tolerant storage of the data, such loss resulting in a reduced set having one or more remaining storage devices, causing, under control of the storage manager, automatic reconfiguring of storage of the data using information in the reduced set to store the fixed-size blocks of such data within the reduced set in a fault tolerant manner, such reconfiguring including causing a single selected storage device of the reduced set having an unmirrored copy of the portion to store a mirrored copy of the portion such that storage of the portion is converted from mirroring across two storage devices to mirroring in only the single storage device when fault tolerance cannot be provided for the portion across a plurality of the remaining storage devices or when the reduced set includes only the single selected storage device.

2. A method according to claim 1 , wherein storing the data in a fault tolerant manner across the plurality of storage devices comprises at least one of mirroring, striping with parity, RAID6, dual parity, diagonal parity, Low Density Parity Check codes, and turbo codes.

3. A method according to claim 1 , wherein storing the portion in a fault tolerant manner within the single selected storage device comprises at least one of mirroring, striping with parity, RAID6, dual parity, diagonal parity, Low Density Parity Check codes, and turbo codes.

4. A method according to claim 1 , wherein automatically reconfiguring comprises:

converting a first striped pattern across four or more storage devices of the set to a second striped pattern across three or more of the remaining storage devices.

5. A method according to claim 1 , wherein automatically reconfiguring comprises:

converting a striped pattern across three storage devices of the set to a mirrored pattern across two of the remaining storage devices.

6. A method according to claim 1 , wherein automatically reconfiguring comprises:

converting a mirrored pattern across two storage devices of the set to a mirrored pattern on the single selected storage device.

7. A method according to claim 1 , wherein automatically reconfiguring comprises:

converting a mirrored pattern across a first pair of storage devices of the set to a mirrored pattern across a second pair of storage devices of the reduced set.

8. A method according to claim 1 , wherein automatically reconfiguring comprises:

converting a mirrored pattern on one storage device of the set to a mirrored pattern on the single selected storage device.

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

maintaining a sufficient amount of available storage space across the plurality of storage devices to permit said automatic reconfiguration.

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

determining a reconfiguration scenario for each of a number of possible failure conditions;

determining a total amount of storage space needed on each storage device of the set in order to permit said automatic reconfiguration.

11. A method according to claim 10 , wherein determining a total amount of storage space needed comprises:

determining an amount of space needed on each storage device of the set for fault tolerant storage of data; and

determining an amount of spare working space regions needed.

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

determining whether the plurality of storage devices contain an adequate amount of available storage space to permit said automatic reconfiguration; and

when the plurality of storage devices contain an inadequate amount of available storage space, generating a signal to indicate that additional storage is needed.

13. A method according to claim 12 , wherein generating a signal comprises:

changing the state of an indicator.

14. A method according to claim 12 , wherein the plurality of storage devices are installed in an array having a plurality of slots, and wherein generating a signal comprises:

determining which slot in the array should be populated with additional storage capacity and indicating said slot.

15. A storage system comprising:

a set of storage devices including a plurality of storage devices, each of the storage devices storing fixed-size blocks of data; and

a storage manager, external to the set of storage devices, coupled to the set of storage devices, configured to (i) receive storage commands that pertain to fixed-size blocks of data and (ii) map such storage commands to the set of storage devices so as to cause storage of the blocks of data in a fault tolerant manner across a plurality of storage devices in the set of storage devices without mirroring the data within a single storage device,

wherein, in response to a loss of a given storage device from the set, the given storage device having stored thereon a portion of the data used to provide fault tolerant storage of the data, such loss resulting in a reduced set having one or more remaining storage devices, the storage manager automatically reconfigures storage of the data using information in the reduced set to store the fixed-size blocks of such data within the reduced set in a fault tolerant manner, such reconfiguration including causing a single selected storage device of the reduced set having an unmirrored copy of the portion to store a mirrored copy of the portion such that storage of the portion is converted from mirroring across two storage devices to mirroring in only the single storage device when fault tolerance cannot be provided for the portion across a plurality of the remaining storage devices or when the reduced set includes only the single selected storage device.

16. A system according to claim 15 , wherein the storage manager stores the data in a fault tolerant manner across the plurality of storage devices comprises at least one of mirroring, striping with parity, RAID6, dual parity, diagonal parity, Low Density Parity Check codes, and turbo codes.

17. A system according to claim 15 , wherein the storage manager stores the portion in a fault tolerant manner within the single selected storage device using at least one of mirroring, striping with parity, RAID6, dual parity, diagonal parity, Low Density Parity Check codes, and turbo codes.

18. A system according to claim 15 , wherein the storage manager converts a first striped pattern across four or more storage devices of the set to a second striped pattern across three or more of the remaining storage devices.

19. A system according to claim 15 , wherein the storage manager converts a striped pattern across three storage devices of the set to a mirrored pattern across two of the remaining storage devices.

20. A system according to claim 15 , wherein the storage manager converts a mirrored pattern across two storage devices to a mirrored pattern on the single selected storage device.

21. A system according to claim 15 , wherein the storage manager converts a mirrored pattern across a first pair of storage devices of the set to a mirrored pattern across a second pair of storage devices of the reduced set.

22. A system according to claim 15 , wherein the storage manager converts a mirrored pattern on one storage device of the set to a mirrored pattern onthe single selected storage device.

23. A system according to claim 15 , wherein the storage manager maintains a sufficient amount of available storage space across the plurality of storage devices to permit said automatic reconfiguration.

24. A system according to claim 15 , wherein the storage manager determines a reconfiguration scenario for each of a number of possible failure conditions and determines a total amount of storage space needed on each storage device of the set in order to permit said automatic reconfiguration.

25. A system according to claim 24 , wherein the storage manager determines an amount of space needed on each storage device of the set for fault tolerant storage of data and determines an amount of spare working space regions needed.

26. A system according to claim 15 , wherein the storage manager determines whether the plurality of storage devices contain an adequate amount of available storage space to permit said automatic reconfiguration and generates a signal to indicate that additional storage is needed if the plurality of storage devices contain an inadequate amount of available storage space.

27. A system according to claim 26 , wherein the storage manager generates the signal by changing the state of an indicator.

28. A system according to claim 26 , wherein the plurality of storage devices are installed in an array having a plurality of slots, and wherein the storage manager determines which slot in the array should be populated with additional storage capacity and indicates said slot.

Assignments (14)
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 →
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 →
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: 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 Aug 17, 2018
From: EAST WEST BANK
To: DROBO, INC.
Reel/Frame 046847/0959 →
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 →
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.; ROSEN, KENNETH
To: TRUSTED DATA CORPORATION
Reel/Frame 017081/0423 →
Continuity (3)
Provisional Application 60625495 · Nov 5, 2004
Provisional Application 60718768 · Sep 20, 2005
Related Publication 20060174157A1 · Aug 3, 2006