Method and system for storing data in an array of storage devices with additional and autonomic protection
First Claim
Patent Images
1. A computer readable medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for storing data in an array of storage devices, the operations comprising:
- reserving one third of available strip LBAs for primary data, and reserving two thirds of available strip LBAs for rotated copies of data;
writing a first strip to a first storage device and a second storage device;
writing a second strip to the second storage device and a third storage device; and
writing a third strip to a third storage device and a fourth storage device.
1 Assignment
0 Petitions
Accused Products
Abstract
One aspect of the invention is a method for storing data in an array of storage devices. An example of the method includes writing a first strip to a first storage device and a second storage device. This example also includes writing a second strip to the second storage device and a third storage device. This example further includes writing a third strip to a third storage device and a fourth storage device.
-
Citations
17 Claims
-
1. A computer readable medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for storing data in an array of storage devices, the operations comprising:
-
reserving one third of available strip LBAs for primary data, and reserving two thirds of available strip LBAs for rotated copies of data; writing a first strip to a first storage device and a second storage device; writing a second strip to the second storage device and a third storage device; and writing a third strip to a third storage device and a fourth storage device.
-
-
2. A computer readable medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for storing data in an array of storage devices, the operations comprising:
-
reserving one third of available strip LBAs for primary data, and reserving two thirds of available strip LBAs for rotated copies of data; writing a first strip to a first storage device and a second storage device; writing a second strip to the second storage device and a third storage device; and writing a third strip to a third storage device and a fourth storage device; wherein the first strip, the second strip, and the third strip, are members of a stride.
-
-
3. A computer readable medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for storing data in an array of storage devices, the operations comprising:
-
reserving one third of available strip LBAs for primary data, and reserving two thirds of available strip LBAs for rotated copies of data; writing a first strip to a first storage device and a second storage device; writing a second strip to the second storage device and a third storage device; and writing a third strip to a third storage device and a fourth storage device; wherein at least one of the strips is a parity strip.
-
-
4. A computer readable medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for storing data in an array of storage devices, the operations comprising:
-
reserving one third of available strip LBAs for primary data, and reserving two thirds of available strip LBAs for rotated copies of data; writing a first strip to a first storage device, and to a second storage device, and to a third storage device; writing a second strip to the second storage device, and to the third storage device, and to a fourth storage device; and writing a third strip to the third storage device, and to the fourth storage device, and to a fifth storage device.
-
-
5. A computer readable medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for storing data in an array of storage devices, the operations comprising:
-
reserving one third of available strip LBAs for primary data, and reserving two thirds of available strip LBAs for rotated copies of data; writing a first strip to a first storage device, and to a second storage device, and to a third storage device; writing a second strip to the second storage device, and to the third storage device, and to a fourth storage device; and writing a third strip to the third storage device, and to the fourth storage device, and to a fifth storage device; wherein the first strip, the second strip, and the third strip, are members of a stride.
-
-
6. A computer readable medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for storing data in an array of storage devices, the operations comprising:
-
reserving one third of available strip LBAs for primary data, and reserving two thirds of available strip LBAs for rotated copies of data; writing a first strip to a first storage device, and to a second storage device, and to a third storage device; writing a second strip to the second storage device, and to the third storage device, and to a fourth storage device; and writing a third strip to the third storage device, and to the fourth storage device, and to a fifth storage device; wherein at least one of the strips is a parity strip.
-
-
7. A storage system, comprising:
-
a memory; and a processing device coupled to the memory, wherein the processing device is programmed to perform operations for storing data in an array of storage devices, the operations comprising; reserving one third of available strip LBAs for primary data, and reserving two thirds of available strip LBAs for rotated copies of data; writing a first strip to a first storage device and a second storage device; writing a second strip to the second storage device and a third storage device; and writing a third strip to a third storage device and a fourth storage device.
-
-
8. A computer readable medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for storing data in an array of storage devices, the operations comprising:
-
establishing a mapping table; receiving a write command; writing each strip of a stride to a corresponding storage device in the array of storage devices in accordance with the mapping table; determining if a copy flag has a “
yes”
value; andwriting at least one copy of each strip of the stride to at least one corresponding storage device in the array of storage devices in accordance with the mapping table, only if the copy flag has a “
yes”
value. - View Dependent Claims (9)
-
-
10. A computer readable medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for storing data in an array of storage devices, the operations comprising:
-
establishing a mapping table; receiving a write command; determining if a copy flag has a “
yes”
value;and if so; writing each strip of a stride to a corresponding storage device in the array of storage devices in accordance with the mapping table; and writing at least one copy of each strip of the stride to at least one corresponding storage device in the array of storage devices in accordance with the mapping table; and if not; writing each strip of the stride to a corresponding storage device in the array of storage devices in accordance with the mapping table; and wherein the operations further comprise updating the mapping table, wherein the operation of updating the mapping table comprises determining if a copy flag should be set to a “
no”
value. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A computer readable medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for storing data in an array of storage devices, the operations comprising:
-
setting a value for a parameter N, wherein each storage device in the array of storage devices has a capacity for storing at least N strips; setting a counter to an initial value; establishing a mapping table; receiving a write command; incrementing the counter; updating the mapping table; determining if a copy flag has a “
yes”
value;and if so; writing each strip of a stride and at least one copy of each strip of the stride to storage devices in the array in accordance with the mapping table, only if the copy flag has a “
yes”
value;and if not; writing each strip of the stride to storage devices in the array in accordance with the mapping table.
-
-
16. A storage system, comprising:
-
a memory; and a processing device coupled to the memory, wherein the processing device is programmed to perform operations for storing data in an array of storage devices, the operations comprising; establishing a mapping table; receiving a write command; writing each strip of the stride to a corresponding storage device in the array of storage devices in accordance with the mapping table; determining if a copy flag has a “
yes”
value; andwriting at least one copy of each strip of the stride to at least one corresponding storage device in the array of storage devices in accordance with the mapping table, only if the copy flag has a “
yes”
value.
-
-
17. A method for storing data in an array of storage devices, the method comprising:
-
reserving one third of available strip LBAs for primary data, and reserving two thirds of available strip LBAs for rotated copies of data; establishing a mapping table; receiving a write command; writing each strip of a stride to a corresponding storage device in the array of storage devices in accordance with the mapping table; determining if a copy flag has a “
yes”
value; andwriting at least one copy of each strip of the stride to at least one corresponding storage device in the array of storage devices in accordance with the mapping table, only if the copy flag has a “
yes”
value.
-
Specification