Prioritized thin provisioning with eviction overflow between tiers
A computer system configured to thinly provision a plurality of logical volumes over a plurality of types of storage. The plurality of logical volumes includes (1) a first logical volume that is thinly provisioned over a first type of storage, and (2) a second logical volume that is thinly provisioned over a second type of storage. The status of the plurality of logical volumes is monitored to detect one or more events associated with at least one of the plurality of logical volumes. In response to detecting a particular event among the one or more events, a set of data stored in a portion of the first logical volume is selected. The selected set of data is copied to the second logical volume, and the portion of the first logical volume that stores the set of data is deallocated.
1 . A computer system comprising:
one or more processors; and
one or more computer system-readable hardware storage devices having stored thereon computer system-executable instructions that are structured such that when the computer system-executable instructions are executed by the one or more processors, the computer system is configured to perform at least:
thinly provision and tier a plurality of logical volumes over a plurality of types of storage, including thinly provisioning and tiering each of a first logical volume and a second logical volume over the plurality of types of storage;
monitor status of the plurality of logical volumes to detect one or more events associated with at least one of the plurality of logical volumes;
in response to detecting a first event:
select a set of data stored in a portion of the first logical volume;
copy the set of data to the second logical volume; and
deallocate the portion of the first logical volume that stores the set of data; and
in response to detecting a second event:
select a portion of the second logical volume that is thinly provisioned over a particular type of storage;
deallocate a first portion of the particular type of storage that corresponds to the portion of the second logical volume; and
allocate a second portion of the particular type of storage to the first logical volume.
2 . The computer system of claim 1 , wherein the plurality of types of storage includes at least two of (1) a hard disk drive, (2) a lower-speed solid state drive (SSD), (3) a higher-speed SSD, and (4) an ultra disk.
3 . The computer system of claim 1 , wherein the plurality of types of storage includes at least (1) a local disk that is accessible locally, and (2) a remote disk accessible via a network.
4 . The computer system of claim 1 , wherein the first logical volume is configured to store cached data, and the second logical volume is configured to store user data.
5 . The computer system of claim 1 , wherein selecting the set of data is based on one or more tiering policy rules.
6 . The computer system of claim 1 , wherein the first event is a map failure, indicating that there is not enough storage for a write operation.
7 . The computer system of claim 1 , wherein:
the plurality of logical volumes includes (1) the first logical volume that is thinly provisioned over a first type of storage among the plurality of types of storage, and (2) the second logical volume that is thinly provisioned over a second type of storage among the plurality of types of storage, the first logical volume having a first capacity, and the second logical volume having a second capacity.
8 . The computer system of claim 7 , wherein the first type of storage is tier-one storage that has a first access speed, and the second type of storage is tier-two storage that has a second access speed that is slower than the first access speed.
9 . The computer system of claim 7 , wherein the first event is associated with a write operation that writes data to the first logical volume, and wherein the computer system is configured to, in response to the write operation:
determine whether a total amount of storage that has been provisioned for the first logical volume is greater than a predetermined threshold, and
when the total amount of storage that has been provisioned for the first logical volume is greater than the predetermined threshold, determine that the first event occurs.
10 . The computer system of claim 9 , wherein the predetermined threshold is associated with the first capacity.
11 . The computer system of claim 1 , wherein the set of data is a predetermined amount of data, such that in response to deallocating the portion of the first logical volume, a total amount of storage that has been provisioned for the first logical volume is below a predetermined threshold.
12 . The computer system of claim 11 , wherein an amount of the set of data is determined based on the predetermined threshold or an amount of free storage in the second logical volume.
13 . The computer system of claim 1 , wherein the second event is associated with a total amount of the particular type of storage used by the first logical volume.
14 . A method implemented at a computer system for prioritized thin provisioning with eviction overflow between tiers, the method comprising:
thinly provisioning and tiering a plurality of logical volumes over a plurality of types of storage, including thinly provisioning and tiering each of a first logical volume and a second logical volume over the plurality of types of storage;
monitoring status of the plurality of logical volumes to detect one or more events associated with at least one of the plurality of logical volumes;
in response to detecting a first event:
selecting a set of data stored in a portion of the first logical volume;
copying the set of data to the second logical volume; and
deallocating the portion of the first logical volume that stores the set of data; and
in response to detecting a second event:
selecting a portion of the second logical volume that is thinly provisioned over a particular type of storage;
deallocating a first portion of the particular type of storage that corresponds to the portion of the second logical volume; and
allocating a second portion of the particular type of storage to the first logical volume.
15 . The method of claim 14 , wherein the plurality of types of storage includes at least (1) a local disk that is accessible locally, and (2) a remote disk accessible via a network.
16 . The method of claim 14 , wherein the first logical volume is configured to store cached data, and the second logical volume is configured to store user data.
17 . The method of claim 14 , wherein selecting the set of data is based on one or more tiering policy rules.
18 . The method of claim 14 , wherein the plurality of logical volumes includes (1) the first logical volume that is thinly provisioned over a first type of storage among the plurality of types of storage, and (2) the second logical volume that is thinly provisioned over a second type of storage among the plurality of types of storage, the first logical volume having a first capacity, and the second logical volume having a second capacity.
19 . A computer system-readable hardware storage device having stored thereon computer system-executable instructions that are structured such that when the computer system-executable instructions are executed by a processor, a computer system is configured to perform at least:
thinly provision and tier a plurality of logical volumes over a plurality of types of storage, including thinly provisioning and tiering each of a first logical volume and a second logical volume over the plurality of types of storage;
monitor status of the plurality of logical volumes to detect one or more events associated with at least one of the plurality of logical volumes;
in response to detecting a first event:
select a set of data stored in a portion of the first logical volume;
copy the set of data to the second logical volume; and
deallocate the portion of the first logical volume that stores the set of data; and
in response to detecting a second event:
select a portion of the second logical volume that is thinly provisioned over a particular type of storage;
deallocate a first portion of the particular type of storage that corresponds to the portion of the second logical volume; and
allocate a second portion of the particular type of storage to the first logical volume.
20 . The method of claim 14 , wherein the plurality of types of storage includes at least (1) a local disk that is accessible locally, and (2) a remote disk accessible via a network.