DYNAMICALLY ADJUSTING STORAGE CAPACITY
A scalable storage infrastructure may be provided by dynamically adjusting the size of a storage volume implemented across one or more storage devices. When data is added to or removed from the storage volume, the system may compare the current amount of data stored on the volume to a threshold value. The storage capacity may then be adjusted to accommodate future storage requests without maintaining an inefficiently large amount of reserved but unused storage space.
1 . A method comprising:
determining, based on a request to execute a storage volume event on a virtual storage volume providing data storage distributed across a plurality of storage devices, that the storage volume event is configured to change an amount of storage being utilized in the virtual storage volume;
determining, based on the determination that the storage volume event is configured to change the amount of storage being utilized in the virtual storage volume, that a utilization of a storage capacity of the virtual storage volume satisfies a utilization watermark threshold; and
adjusting, based on the determination that the utilization of the storage capacity of the virtual storage volume satisfies the utilization watermark threshold, the storage capacity of the virtual storage volume by a step parameter that specifies an amount of change to the storage capacity.
2 . The method of claim 1 , wherein:
the determining that the storage volume event is configured to change the amount of storage being utilized in the virtual storage volume comprises determining that the virtual storage event is configured to consume storage.
3 . The method of claim 2 , wherein:
the adjusting the storage capacity of the virtual storage volume by the step parameter comprises increasing the storage capacity of the virtual storage volume by the step parameter.
4 . The method of claim 1 , wherein:
the determining that the storage volume event is configured to change the amount of storage being utilized in the virtual storage volume comprises determining that the virtual storage event is configured to release storage.
5 . The method of claim 4 , wherein:
the adjusting the storage capacity of the virtual storage volume by the step parameter comprises decreasing the storage capacity of the virtual storage volume by the step parameter.
6 . The method of claim 1 , wherein:
the method is selectively executed after a designated number of storage volume events are executed on the virtual storage volume.
7 . The method of claim 1 , wherein:
the adjusting the storage capacity comprises moving storage data from one storage device to another.
8 . The method of claim 1 , wherein:
the request is to execute the storage volume event on a designated compute node that includes a container engine application executed by an operating system, the container engine application providing a standardized platform for the instantiation and execution of one or more containerized applications.
9 . The method of claim 8 , wherein:
the one or more containerized applications comprise a storage driver configured to manage the virtual storage volume.
10 . The method of claim 8 , wherein:
the designated compute node is one of a plurality of compute nodes forming a distributed storage cluster.
11 . The method of claim 1 , further comprising:
adjusting the step parameter based on the adjusted storage capacity of the virtual storage volume.
12 . The method of claim 1 , further comprising:
executing the virtual storage event;
wherein the determining that the storage volume event is configured to change the amount of storage being utilized in the virtual storage volume comprises measuring the amount of change of the storage being utilized in the virtual storage volume before and after the execution of the virtual storage event.
13 . An apparatus comprising:
a processor; and
a memory storing instructions configured to be executed by the processor to:
determine, based on a request to execute a storage volume event on a virtual storage volume providing data storage distributed across a plurality of storage devices, that the storage volume event is configured to change an amount of storage being utilized in the virtual storage volume;
determine, based on the determination that the storage volume event is configured to change the amount of storage being utilized in the virtual storage volume, that a utilization of a storage capacity of the virtual storage volume satisfies a utilization watermark threshold; and
adjust, based on the determination that the utilization of the storage capacity of the virtual storage volume satisfies the utilization watermark threshold, the storage capacity of the virtual storage volume by a step parameter that specifies an amount of change to the storage capacity.
14 . The apparatus of claim 13 , wherein:
the determining that the storage volume event is configured to change the amount of storage being utilized in the virtual storage volume comprises determining that the virtual storage event is configured to release storage.
15 . The apparatus of claim 14 , wherein:
the adjusting the storage capacity of the virtual storage volume by the step parameter comprises decreasing the storage capacity of the virtual storage volume by the step parameter.
16 . The apparatus of claim 13 , wherein:
the adjusting the storage capacity comprises moving storage data from one storage device to another.
17 . The apparatus of claim 13 , wherein:
the request is to execute the storage volume event on a designated compute node that includes a container engine application executed by an operating system, the container engine application providing a standardized platform for the instantiation and execution of one or more containerized applications.
18 . The apparatus of claim 17 , wherein:
the one or more containerized applications comprise a storage driver configured to manage the virtual storage volume.
19 . The apparatus of claim 13 , further comprising:
adjusting the step parameter based on the adjusted storage capacity of the virtual storage volume.
20 . One or more non-transitory machine-readable media having instructions stored thereon, the instructions executable by one or more processors to perform a method, the method comprising:
determining, based on a request to execute a storage volume event on a virtual storage volume providing data storage distributed across a plurality of storage devices, that the storage volume event is configured to change an amount of storage being utilized in the virtual storage volume;
determining, based on the determination that the storage volume event is configured to change the amount of storage being utilized in the virtual storage volume, that a utilization of a storage capacity of the virtual storage volume satisfies a utilization watermark threshold; and
adjusting, based on the determination that the utilization of the storage capacity of the virtual storage volume satisfies the utilization watermark threshold, the storage capacity of the virtual storage volume by a step parameter that specifies an amount of change to the storage capacity.