ALLOCATION STRATEGIES FOR STORAGE DEVICE SETS
First Claim
1. A method of allocating capacity for spaces on a storage device set comprising at least two storage devices accessible to a device having a processor, the method comprising:
- executing on the processor instructions configured to, upon receiving a request to allocate capacity for a space;
among the storage devices, identify a spacious storage device subset comprising storage devices having available capacity above an available capacity minimum threshold;
allocate capacity for the space on the storage devices of the spacious storage device subset; and
if the spacious storage device subset does not satisfy the request;
among remaining storage devices, identify a limited storage device subset comprising storage devices having available capacity below the available capacity minimum threshold; and
allocate capacity for the space on the storage devices of the limited storage device subset.
2 Assignments
0 Petitions
Accused Products
Abstract
A storage device set may allocate capacity for spaces (e.g., logical volumes) according to an allocation strategy, e.g., allocating capacity from the storage device having the greatest available capacity, or maximizing the distribution of allocated capacity across the storage devices. However, such allocation strategies may be inefficient (e.g., limiting the capability of the storage device set to satisfy subsequent requests with constraints such as a minimum distribution of capacity across several storage devices). The techniques presented herein achieve efficient allocation by first allocating capacity on storage devices having ample available capacity using a round-robin technique, and if such storage devices do not satisfy the capacity request, allocating capacity on storage devices having limited available capacity. Additionally, the techniques presented herein facilitate thin provisioning through capacity reservations, wherein storage devices withhold unallocated storage for particular spaces that may be utilized as a reserve if unreserved capacity is exhausted.
-
Citations
20 Claims
-
1. A method of allocating capacity for spaces on a storage device set comprising at least two storage devices accessible to a device having a processor, the method comprising:
executing on the processor instructions configured to, upon receiving a request to allocate capacity for a space; among the storage devices, identify a spacious storage device subset comprising storage devices having available capacity above an available capacity minimum threshold; allocate capacity for the space on the storage devices of the spacious storage device subset; and if the spacious storage device subset does not satisfy the request; among remaining storage devices, identify a limited storage device subset comprising storage devices having available capacity below the available capacity minimum threshold; and allocate capacity for the space on the storage devices of the limited storage device subset. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
19. A method of allocating capacity for spaces on a storage device set comprising at least two storage devices accessible to a device having a processor, the method comprising:
sending to the device instructions that, when executed by the processor, cause the device to; upon receiving a request to create a space with a provisioned capacity and a capacity reservation; create the space, and for respective storage devices, reserve a capacity reservation portion for the space; and upon receiving a request to allocate capacity for the space; among the storage devices, identify a spacious storage device subset comprising storage devices having available capacity above an available capacity minimum threshold; for respective storage devices of the spacious storage device subset, allocate at least one extent for the space on the storage devices of the spacious storage device subset; adjust the capacity reservation portion of the capacity reservation for the space; and if the spacious storage device subset does not satisfy the request; among remaining storage devices, identify a limited storage device subset comprising storage devices having available capacity below the available capacity minimum threshold; and allocate capacity for the space across the limited storage device subset; and adjust the capacity reservation portion of the capacity reservation for the space.
-
20. A computer-readable storage medium comprising instructions that, when executed on a processor of a device having access to a storage device set comprising at least two storage devices, allocates storage for respective spaces by:
-
upon receiving a request to create a space with a provisioned capacity and a capacity reservation; creating the space; for respective storage devices, calculating capacity reservation size comprising a lesser of; a remaining provisioned capacity of the space, and a capacity reservation portion of the capacity reservation for the space on the storage device; and reducing the available capacity of the storage device by the capacity reservation size; upon receiving a request to allocate capacity for a space, the provisioned capacities of the spaces exceeding the capacity of the storage devices of the storage device set, and the request specifying a storage device distribution constraint selected from a storage device distribution constraint set comprising; a number of different storage devices; for storage devices having a storage device type, a number of different storage device types; and for storage devices located in different locations, a number of different locations of the storage devices, allocating capacity by; among the storage devices, identifying a spacious storage device subset comprising storage devices having available capacity above an available capacity minimum threshold; allocating capacity for the space on the storage devices of the spacious storage device subset; and if the spacious storage device subset does not satisfy the request; among remaining storage devices, identifying a limited storage device subset comprising storage devices having available capacity below the available capacity minimum threshold; and allocating capacity for the space across the limited storage device subset; wherein allocating at least one extent on a storage device subset comprises; identifying a sequence of storage devices of the storage device subset according to a round-robin selection, comprising, for a second request following a first request; identifying a last storage device on which capacity was allocated for the first request; and identifying a next storage device following the last storage device according to the storage device order; and for respective storage devices and according to the sequence beginning with the next storage device; allocating an extent on the storage device, associating the extent with the space, binding the extent to a logical address range of the space, and if the remaining provisioned capacity of the space exceeds the capacity reservation portion on the storage device and the storage device has no available capacity, reducing the capacity reservation portion of the reservation capacity for the space on the storage device, until a total capacity of the extents associated with the space satisfies the request; adjusting an available capacity minimum threshold according to the available capacities of the storage devices of the storage device set; and upon reducing the available capacity of the storage devices of the storage device set below the available capacity minimum threshold, notify an administrator of the available capacity of the storage device set.
-
Specification