| CPC G06F 3/065 (2013.01) [G06F 3/0619 (2013.01); G06F 3/0689 (2013.01); G06F 11/3034 (2013.01)] | 20 Claims |

|
1. An apparatus comprising:
at least one processing device comprising a processor coupled to a memory;
the at least one processing device being configured:
to monitor a health status of two or more storage devices that are part of a virtual disk, the virtual disk utilizing a redundant array of independent disks striping configuration;
to identify, based at least in part on the monitored health status, a first subset of the two or more storage devices that have a first health status and a second subset of the two or more storage devices that have a second health status;
to monitor, for each of the storage devices in the first subset of the two or more storage devices, an estimated time to failure, wherein monitoring the estimated time to failure for a given one of the storage devices in the first subset of the two or more storage devices is based at least in part on determining one or more changes in error percentages in a sequence of two or more timestamped error logs associated with the given storage device;
to determine whether available storage capacity on the second subset of the two or more storage devices is sufficient to copy data from used storage capacity on the first subset of the two or more storage devices;
responsive to determining that there is sufficient available storage capacity on the second subset of the two or more storage devices, to resize the virtual disk from (i) a first storage capacity determined at least in part as a function of portions of storage capacities of the first and second subsets of the two or more storage devices which are allocated to the virtual disk to (ii) a second storage capacity determined at least in part as a function of portions of storage capacities of the second subset of the two or more storage devices which are allocated to the virtual disk;
to copy data from the used storage capacity on the first subset of the two or more storage devices to the available storage capacity on the second subset of the two or more storage devices; and
to dynamically adjust, in conjunction with copying of the data from the used storage capacity on the first subset of the two or more storage devices to the available storage capacity on the second subset of the two or more storage devices and based at least in part on the estimated time to failure for each of the storage devices in the first subset of the two or more storage devices, a first amount of storage controller bandwidth allocated for copying of the data from the used storage capacity on the first subset of the two or more storage devices to the available storage capacity on the second subset of the two or more storage devices relative to a second amount of storage controller bandwidth allocated for processing incoming input-output operations directed to the virtual disk.
|