Data Reconstruction in Distributed Data Storage System with Key-Based Addressing
First Claim
1. A method for recovering data from a plurality of storage devices,said data being grouped as containers written by at least one writing entity within a corresponding one of a plurality of hosts, each container being identified by a unique key that is independent of physical storage identifiers and comprising a set of data chunks stored in different ones of the plurality of storage devices, said method comprising:
- detecting inaccessibility of one of the plurality of storage devices in which data chunks are stored;
iteratively requesting and receiving data chunks from the data storage devices in which a given container'"'"'s chunks are stored;
for each container having a data chunk stored in the inaccessible storage device, reconstructing from the received data chunks belonging to the same container the corresponding data chunk that had been stored in the inaccessible storage device; and
storing the reconstructed data chunk in a different one of the storage devices.
5 Assignments
0 Petitions
Accused Products
Abstract
In a Distributed Virtual Array data storage system, data chunks making up data containers are stored in a key order in storage devices according to layouts specified in a layout data structure. When any of the storage devices becomes inaccessible, the storage devices iteratively return, in storage order, their stored chunks. Chunks belonging to the same container are identified and, if that container had a chunk in the inaccessible storage device, are used to reconstruct the inaccessible chunk. The chunks of the container are then stored according to an updated layout. The keys are independent of physical storage locations.
55 Citations
32 Claims
-
1. A method for recovering data from a plurality of storage devices,
said data being grouped as containers written by at least one writing entity within a corresponding one of a plurality of hosts, each container being identified by a unique key that is independent of physical storage identifiers and comprising a set of data chunks stored in different ones of the plurality of storage devices, said method comprising: -
detecting inaccessibility of one of the plurality of storage devices in which data chunks are stored; iteratively requesting and receiving data chunks from the data storage devices in which a given container'"'"'s chunks are stored; for each container having a data chunk stored in the inaccessible storage device, reconstructing from the received data chunks belonging to the same container the corresponding data chunk that had been stored in the inaccessible storage device; and storing the reconstructed data chunk in a different one of the storage devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer program product comprising code embodied in a non-transitory storage medium, said code being executable on at least one processor for causing the processor(s):
-
to recover data from a plurality of storage devices, said data being grouped as containers written by at least one writing entity within a corresponding one of a plurality of hosts, each container being identified by a unique key that is independent of physical storage identifiers and comprising a set of data chunks stored in different ones of the plurality of storage devices; to detect inaccessibility of one of the plurality of storage devices in which data chunks are stored; to iteratively request and receive data chunks from the data storage devices in which a given container'"'"'s chunks are stored; for each container having a data chunk stored in the inaccessible storage device, to reconstruct from the received data chunks belong to the same container the corresponding data chunk that had been stored in the inaccessible storage device; and to store the reconstructed data chunk in a different one of the storage devices. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A method for recovering data from a plurality of storage devices,
said data being grouped as containers written by at least one writing entity within a corresponding one of a plurality of hosts, each container being identified by a unique key that is independent of physical storage identifiers and comprising a set of data chunks stored in different ones of the plurality of storage devices, said method comprising: -
storing the chunks of each container in the plurality of storage devices according to one of a plurality of layouts determined as a function of the container'"'"'s key; compiling the layouts into a layout data structure; in each of the storage devices, storing the respective data chunks in an order determined by the container key corresponding to each respective data chunk, each said key including information indicating according to which layout the corresponding container is stored; detecting inaccessibility of one of the plurality of storage devices in which data chunks are stored; iteratively requesting and receiving, in storage key order, data chunks from the data storage devices in which a given container'"'"'s chunks are stored; for each container having a data chunk stored in the inaccessible storage device, determining which of the received data chunks are stored according to the same layout and whether that layout specified storage of any data chunk of the corresponding container in the inaccessible storage device and, independent of any prior knowledge of which chunks belong to the same container, reconstructing from the received data chunks belonging to the same container the corresponding data chunk that had been stored in the inaccessible storage device; and storing the reconstructed data chunk in a different one of the storage devices; updating the layout data structure to reflect the inaccessibility of the storage device and to indicate, per layout, in which of the storage devices data chunks stored in the inaccessible storage are to be reconstructed; and distributing the updated layout table to the hosts.
-
Specification