Method and system for managing storage systems containing multiple data storage devices
First Claim
Patent Images
1. A data storage system comprising:
- a plurality of data storage devices, each of said plurality of data storage devices divided into a plurality of fixed size pieces, each of said fixed size pieces comprising two or more data storage device blocks;
data extents formed from said fixed size pieces, in which said data extents are allocated on boundaries related to the number of said fixed size pieces within an allocated data extent;
one or more logical volumes, said one or more logical volumes corresponding to particular ones of said data extents; and
storage space on said plurality of data storage devices allocated in units of said fixed size pieces.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for managing storage from multiple data storage devices are disclosed. The system and method provide improved load balancing, reduction or elimination of fragmentation, and efficient changes in hardware configurations. I/O load and data are spread relatively evenly across many data storage devices in the storage system. Dynamic reorganization can be performed for the data stored on the data storage devices.
-
Citations
35 Claims
-
1. A data storage system comprising:
-
a plurality of data storage devices, each of said plurality of data storage devices divided into a plurality of fixed size pieces, each of said fixed size pieces comprising two or more data storage device blocks;
data extents formed from said fixed size pieces, in which said data extents are allocated on boundaries related to the number of said fixed size pieces within an allocated data extent;
one or more logical volumes, said one or more logical volumes corresponding to particular ones of said data extents; and
storage space on said plurality of data storage devices allocated in units of said fixed size pieces. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
sets of pointers to data extents, each of said sets of pointers corresponding to a particular logical volume.
-
-
9. The data storage system of claim 8 in which said sets of pointers are stored in a logical volume directory, said logical volume directory comprising entries corresponding to said one or more logical volumes.
-
10. The data storage system of claim 1 further comprising:
sets of pointers to pointer extents, said pointer extents comprising pointers to one or more data extents which correspond to a particular logical volume.
-
11. The data storage system of claim 10 in which said sets of pointers are stored in a logical volume directory, said logical volume directory comprising entries corresponding to said one or more logical volumes.
-
12. The data storage system of claim 1 in which said fixed size pieces are sized to be large enough for I/O operations of one of said fixed sized pieces to be near the maximum efficiency of one of said data storage devices.
-
13. The data storage system of claim 1 in which each of said plurality of data storage devices further comprises an allocation table, said allocation table containing an entry for each of said fixed size pieces on a particular data storage device associated with said allocation table.
-
14. A method for storing data in a data storage system having an array of data storage devices, the method comprising:
-
dividing data storage devices into a plurality of fixed size allocation units, each of the allocation units comprising a plurality of data storage device blocks;
creating a logical volume;
forming data extents from the allocation units, each of the data extents formed from an allocated set of one or more contiguous allocation units, in which the data extents are allocated along boundaries related to the number of allocation units within an allocated data extent; and
configuring the logical volume to correspond to one or more of the data extents. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
mirroring the data extents on the data storage devices.
-
-
16. The method of claim 15 wherein mirroring is performed for a subset of the data extents in the logical volume.
-
17. The method of claim 14 further comprising:
maintaining a parity extent, the parity extent corresponding to a set of data extents, any data extent from the set of data extents recoverable from information in the parity extent utilized in combination with the remainder of data extents from the set of data extents.
-
18. The method of claim 14 wherein a single data storage device is configured to comprise both mirrored and parity protected data.
-
19. The method of claim 14 wherein each of the data storage devices is divided into at least 1,000 allocation units.
-
20. The method of claim 14 wherein the logical volume is striped over a plurality of the data storage devices.
-
21. The method of claim 14 wherein the data extents forming the logical volume is spread over a plurality of the data storage devices.
-
22. The method of claim 14 further comprising:
relocating the data extents, wherein the logical volume is not locked in its entirety during the relocation of the data extents.
-
23. The method of claim 14 wherein creating a logical volume automatically selects unused space on multiple ones of the data storage devices to form data extents.
-
24. The method of claim 14 further comprising adding a new data storage device, wherein adding a new data storage device comprises:
moving data extents from the existing data storage devices to the new data storage device, wherein only the data extents being moved are locked during the move.
-
25. A computer program product that includes a computer readable medium, the computer readable medium having stored thereon a sequence of instructions which, when executed by a processor, causes the processor to execute a process for storing data in a data storage system having an array of data storage devices, the process comprising:
-
dividing data storage devices into a plurality of fixed size allocation units, each of the allocation units comprising a plurality of data storage device blocks;
creating a logical volume;
forming data extents from the allocation units, each of the data extents formed from an allocated set of one or more contiguous allocation units, in which the data extents are allocated along boundaries related to the number of allocation units within an allocated data extent; and
configuring the logical volume to correspond to one or more of the data extents. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
mirroring the data extents on the data storage devices.
-
-
27. The computer program product of claim 26 wherein mirroring is performed for a subset of the data extents in the logical volume.
-
28. The computer program product of claim 25, wherein the process further comprises:
maintaining a parity extent, the parity extent corresponding to a set of data extents, any data extent from the set of data extents recoverable from information in the parity extent utilized in combination with the remainder of data extents from the set of data extents.
-
29. The computer program product of claim 25 wherein a single data storage device is configured to comprise both mirrored and parity protected data.
-
30. The computer program product of claim 25 wherein each of the data storage devices is divided into at least 1,000 allocation units.
-
31. The computer program product of claim 25 wherein the logical volume is striped over a plurality of the data storage devices.
-
32. The computer program product of claim 25 wherein the data extents forming the logical volume is spread over a plurality of the data storage devices.
-
33. The computer program product of claim 25, wherein the process further comprises:
relocating the data extents, wherein the logical volume is not locked in its entirety during the relocation of the data extents.
-
34. The computer program product of claim 25 wherein creating a logical volume automatically selects unused space on multiple ones of the data storage devices to form data extents.
-
35. The computer program product of claim 25, wherein the process further comprises adding a new data storage device, wherein adding a new data storage device comprises:
moving data extents from the existing data storage devices to the new data storage device, wherein only the data extents being moved is locked during the move.
Specification