IP Library › Granted Patent US 9,367,253
Granted Patent B2
US 9,367,253 · App. 14/209,792 · Granted Jun 14, 2016

Catastrophic data loss avoidance

Inventors: Michael Gough (San Jose, CA); Rick Brauen (Puyallup, WA)
Assignee: VMware, Inc.
G06F3/0619G06F3/064G06F3/0689G06F11/1076G06F11/14G06F11/2094H04L29/14
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,367,253
App. No.
14/209,792
Filed
Mar 13, 2014
Granted
Jun 14, 2016
Kind
B2
Art Unit
2114
USPC
714/6.24
Abstract

Exemplary methods, apparatuses, and systems divide data into a plurality of portions such that the data is recoverable using a subset of the plurality of portions. For each portion of the data, a storage device different than storage devices storing all other portions of the data is selected. The selecting of storage devices includes distributing the portions of data based upon diversity of geographic locations of storage devices and diversity of storage device characteristics. The storage device characteristics include at least one of hardware characteristics, software characteristics, and operating history characteristics. Each portion of the data is stored on a corresponding selected storage device.

Claims (63)

1. A computer-implemented method, comprising:

dividing data into a plurality of portions, wherein the data is recoverable using a subset of the plurality of portions;

selecting, for each portion of the data, a storage device different than storage devices storing all other portions of the data, wherein the selecting includes distributing the portions of data based upon diversity of geographic locations of storage devices and diversity of storage device characteristics, the storage device characteristics including at least one of hardware characteristics, software characteristics, and operating history characteristics; and

storing each portion of the data on a corresponding selected storage device.

2. The computer-implemented method of claim 1 , wherein distributing the portions of data based upon diversity of geographic locations of storage devices and diversity of storage device characteristics comprises:

generating a spatial representation of a plurality of storage devices, wherein the generated spatial representation is defined by a combination of geographic locations of the storage devices and storage device characteristics, the spatial representation including each of the plurality of storage devices as a set of one or more coordinates within the spatial representation; and

selecting storage devices to maximize distances between the set of coordinates for each selected storage device and the sets of coordinates for all other selected storage devices.

3. The computer-implemented method of claim 2 , wherein selecting storage devices to maximize the distances comprises:

determining home position coordinates within the spatial representation that maximize distances from one another; and

selecting a storage device with a set of coordinates near each determined home position.

4. The computer-implemented method of claim 3 , wherein the selected storage devices includes a first storage device selected as having a set of coordinates near a first home position, the first storage device storing a first portion of the data, the method further comprising:

determining that the storage device characteristics for the first storage device have changed;

generating an updated set of coordinates within the spatial representation for the first storage device based upon the geographic location and changed storage device characteristics of the first storage device;

determining that the updated set of coordinates is beyond a threshold distance from the first home position;

selecting a second storage device with a set of coordinates near the first home position in response to determining that the updated set of coordinates is beyond a threshold distance from the first home position; and

transferring the first portion of data stored on the first storage device to the second storage device in response to the selection of the second storage device.

5. The computer-implemented method of claim 1 , wherein the operating history characteristics for each storage device include one or more of: an operating temperature the storage device, a seismic event to which the storage device was exposed, or a date the storage device was put into operation.

6. The computer-implemented method of claim 1 , wherein the hardware characteristics for each storage device include one or more of: a manufacturer for the storage device, a manufacturing date for the storage device, or a model identifier for the storage device.

7. The computer-implemented method of claim 1 , wherein the software characteristics for each storage device include one or more of: an identifier or a version of firmware on the storage device or an identifier or a version of software on the storage device.

8. The computer-implemented method of claim 1 , further comprising:

detecting a failure of a first selected storage device storing a first portion of the data;

copying each portion of the data from remaining selected storage devices to one or more back up storage devices in response to the detected failure; and

recovering the first portion of the data using the subset of the plurality of portions in response to the copying of each portion of the data from remaining selected storage devices to one or more back up storage devices.

9. A non-transitory computer-readable medium storing instructions, which when executed by a processing device, cause the processing device to perform a method comprising:

dividing data into a plurality of portions, wherein the data is recoverable using a subset of the plurality of portions;

selecting, for each portion of the data, a storage device different than storage devices storing all other portions of the data, wherein the selecting includes distributing the portions of data based upon diversity of geographic locations of storage devices and diversity of storage device characteristics, the storage device characteristics including at least one of hardware characteristics, software characteristics, and operating history characteristics; and

storing each portion of the data on a corresponding selected storage device.

10. The non-transitory computer-readable medium of claim 9 , wherein distributing the portions of data based upon diversity of geographic locations of storage devices and diversity of storage device characteristics comprises:

generating a spatial representation of a plurality of storage devices, wherein the generated spatial representation is defined by a combination of geographic locations of the storage devices and storage device characteristics, the spatial representation including each of the plurality of storage devices as a set of one or more coordinates within the spatial representation; and

selecting storage devices to maximize distances between the set of coordinates for each selected storage device and the sets of coordinates for all other selected storage devices.

11. The non-transitory computer-readable medium of claim 10 , wherein selecting storage devices to maximize the distances comprises:

determining home position coordinates within the spatial representation that maximize distances from one another; and

selecting a storage device with a set of coordinates near each determined home position.

12. The non-transitory computer-readable medium of claim 11 , wherein the selected storage devices includes a first storage device selected as having a set of coordinates near a first home position, the first storage device storing a first portion of the data, the method further comprising:

determining that the storage device characteristics for the first storage device have changed;

generating an updated set of coordinates within the spatial representation for the first storage device based upon the geographic location and changed storage device characteristics of the first storage device;

determining that the updated set of coordinates is beyond a threshold distance from the first home position;

selecting a second storage device with a set of coordinates near the first home position in response to determining that the updated set of coordinates is beyond a threshold distance from the first home position; and

transferring the first portion of data stored on the first storage device to the second storage device in response to the selection of the second storage device.

13. The non-transitory computer-readable medium of claim 9 , wherein the operating history characteristics for each storage device include one or more of: an operating temperature the storage device, a seismic event to which the storage device was exposed, or a date the storage device was put into operation.

14. The non-transitory computer-readable medium of claim 9 , wherein the hardware characteristics for each storage device include one or more of: a manufacturer for the storage device, a manufacturing date for the storage device, or a model identifier for the storage device.

15. The non-transitory computer-readable medium of claim 9 , wherein the software characteristics for each storage device include one or more of: an identifier or a version of firmware on the storage device or an identifier or a version of software on the storage device.

16. The non-transitory computer-readable medium of claim 9 , the method further comprising:

detecting a failure of a first selected storage device storing a first portion of the data;

copying each portion of the data from remaining selected storage devices to one or more back up storage devices in response to the detected failure; and

recovering the first portion of the data using the subset of the plurality of portions in response to the copying of each portion of the data from remaining selected storage devices to one or more back up storage devices.

17. An apparatus comprising:

a processing device, wherein the processing device executes instructions that cause the apparatus to perform a method comprising:

dividing data into a plurality of portions, wherein the data is recoverable using a subset of the plurality of portions;

selecting, for each portion of the data, a storage device different than storage devices storing all other portions of the data, wherein the selecting includes distributing the portions of data based upon diversity of geographic locations of storage devices and diversity of storage device characteristics, the storage device characteristics including at least one of hardware characteristics, software characteristics, and operating history characteristics; and

storing each portion of the data on a corresponding selected storage device.

18. The apparatus of claim 17 , wherein distributing the portions of data based upon diversity of geographic locations of storage devices and diversity of storage device characteristics comprises:

generating a spatial representation of a plurality of storage devices, wherein the generated spatial representation is defined by a combination of geographic locations of the storage devices and storage device characteristics, the spatial representation including each of the plurality of storage devices as a set of one or more coordinates within the spatial representation; and

selecting storage devices to maximize distances between the set of coordinates for each selected storage device and the sets of coordinates for all other selected storage devices.

19. The apparatus of claim 18 , wherein selecting storage devices to maximize the distances comprises:

determining home position coordinates within the spatial representation that maximize distances from one another; and

selecting a storage device with a set of coordinates near each determined home position.

20. The apparatus of claim 19 , wherein the selected storage devices includes a first storage device selected as having a set of coordinates near a first home position, the first storage device storing a first portion of the data, the method further comprising:

determining that the storage device characteristics for the first storage device have changed;

generating an updated set of coordinates within the spatial representation for the first storage device based upon the geographic location and changed storage device characteristics of the first storage device;

determining that the updated set of coordinates is beyond a threshold distance from the first home position;

selecting a second storage device with a set of coordinates near the first home position in response to determining that the updated set of coordinates is beyond a threshold distance from the first home position; and

transferring the first portion of data stored on the first storage device to the second storage device in response to the selection of the second storage device.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2014
From: GOUGH, MICHAEL; BRAUEN, RICK
To: VMWARE, INC.
Reel/Frame 032433/0931 →
Continuity (1)
Related Publication 20150261455A1 · Sep 17, 2015