IP Library Granted Patent US 12670037
Granted Patent B2
US 12670037 · App. 18/649,113 · Granted Jun 30, 2026

Dynamic optimization of resources in storage systems

Inventors: Andrew D. Walls (San Jose, CA); Sandeep Ramesh Patil (Pune, IN); William J. Scales (Fareham, GB); Ramakrishna Vadla (Hyderabad, IN); Rahul M. Fiske (Aundh, IN)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/5094G06F1/206G06F9/5016G06F11/3433
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12670037
App. No.
18/649,113
Granted
Jun 30, 2026
Kind
B2
Abstract

An embodiment for dynamic optimization of power consumption in storage systems is provided. The embodiment may include receiving historical time-series data from one or more components in a data center. The embodiment may also include predicting one or more workload metrics of the one or more components during a pre-defined time range. The embodiment may further include identifying one or more required resources for the one or more components to handle the predicted one or more workload metrics during the pre-defined time range. The embodiment may also include in response to determining at least one component of the one or more components does not require a resource allocation increase during the pre-defined time range, executing a first action to scale down at least one first resource during the pre-defined time range.

Claims (71)

1 . A computer-based method of dynamic optimization of resources in storage systems, the method comprising:

receiving historical time-series data from one or more components in a data center;

predicting one or more workload metrics of the one or more components during a pre-defined time range based on the historical time-series data, wherein the pre-defined time range is selected by a user;

identifying one or more required resources for the one or more components to handle the predicted one or more workload metrics during the pre-defined time range selected by the user;

determining whether at least one component of the one or more components requires a resource allocation increase during the pre-defined time range based on the identified one or more required resources; and

in response to determining the at least one component does not require the resource allocation increase, executing a first action to scale down at least one first resource during the pre-defined time range.

2 . The computer-based method of claim 1 , further comprising:

in response to determining the at least one component does require the resource allocation increase, executing a second action to scale up at least one second resource during the pre-defined time range.

3 . The computer-based method of claim 2 , further comprising:

training one or more machine learning models to forecast one or more future workload metrics of the one or more components based on the historical time-series data, wherein the training further comprises:

inputting the historical time-series data including input/output operations per second (IOPS), read/write throughput, and response time of a storage controller into a workload forecaster model, wherein the workload forecaster model forecasts future values for the input/output operations per second (IOPS), the read/write throughput, and the response time; and

feeding the forecasted future values into a storage resource prediction model, wherein the storage resource prediction model predicts the one or more required resources for the one or more components to handle the forecasted future values.

4 . The computer-based method of claim 2 , wherein:

executing the first action further comprises powering down at least one central processing unit (CPU) core in response to determining a required number of CPU cores is less than an active number of CPU cores during the pre-defined time range; and

executing the second action further comprises powering up the at least one CPU core in response to determining the required number of CPU cores is greater than the active number of CPU cores during the pre-defined time range.

5 . The computer-based method of claim 2 , wherein:

executing the first action further comprises slowing a speed of at least one ethernet port in response to determining a required ethernet port speed is less than an active ethernet port speed during the pre-defined time range; and

executing the second action further comprises increasing the speed of the at least one ethernet port in response to determining the required ethernet port speed is greater than the active ethernet port speed during the pre-defined time range.

6 . The computer-based method of claim 2 , wherein:

executing the first action further comprises powering down at least one non-volatile memory express (NVMe) drive in response to determining a required number of NVMe drives is less than an active number of NVMe drives during the pre-defined time range; and

executing the second action further comprises powering up the at least one NVMe drive in response to determining the required number of NVMe drives is greater than the active number of NVMe drives during the pre-defined time range.

7 . The computer-based method of claim 2 , wherein:

executing the first action further comprises slowing a speed of at least one cooling fan in response to determining a required cooling fan speed is less than an active cooling fan speed during the pre-defined time range; and

executing the second action further comprises increasing the speed of the at least one cooling fan in response to determining the required cooling fan speed is greater than the active cooling fan speed during the pre-defined time range.

8 . A computer system, the computer system comprising:

one or more processors, one or more computer-readable memories, one or more computer-readable tangible storage medium, and program instructions stored on at least one of the one or more computer-readable tangible storage medium for execution by at least one of the one or more processors via at least one of the one or more computer-readable memories, wherein the computer system is capable of performing a method comprising:

receiving historical time-series data from one or more components in a data center;

predicting one or more workload metrics of the one or more components during a pre-defined time range based on the historical time-series data, wherein the pre-defined time range is selected by a user;

identifying one or more required resources for the one or more components to handle the predicted one or more workload metrics during the pre-defined time range selected by the user;

determining whether at least one component of the one or more components requires a resource allocation increase during the pre-defined time range based on the identified one or more required resources; and

in response to determining the at least one component does not require the resource allocation increase, executing a first action to scale down at least one first resource during the pre-defined time range.

9 . The computer system of claim 8 , the method further comprising:

in response to determining the at least one component does require the resource allocation increase, executing a second action to scale up at least one second resource during the pre-defined time range.

10 . The computer system of claim 9 , the method further comprising:

training one or more machine learning models to forecast one or more future workload metrics of the one or more components based on the historical time-series data, wherein the training further comprises:

inputting the historical time-series data including input/output operations per second (IOPS), read/write throughput, and response time of a storage controller into a workload forecaster model, wherein the workload forecaster model forecasts future values for the input/output operations per second (IOPS), the read/write throughput, and the response time; and

feeding the forecasted future values into a storage resource prediction model, wherein the storage resource prediction model predicts the one or more required resources for the one or more components to handle the forecasted future values.

11 . The computer system of claim 9 , wherein:

executing the first action further comprises powering down at least one central processing unit (CPU) core in response to determining a required number of CPU cores is less than an active number of CPU cores during the pre-defined time range; and

executing the second action further comprises powering up the at least one CPU core in response to determining the required number of CPU cores is greater than the active number of CPU cores during the pre-defined time range.

12 . The computer system of claim 9 , wherein:

executing the first action further comprises slowing a speed of at least one ethernet port in response to determining a required ethernet port speed is less than an active ethernet port speed during the pre-defined time range; and

executing the second action further comprises increasing the speed of the at least one ethernet port in response to determining the required ethernet port speed is greater than the active ethernet port speed during the pre-defined time range.

13 . The computer system of claim 9 , wherein:

executing the first action further comprises powering down at least one non-volatile memory express (NVMe) drive in response to determining a required number of NVMe drives is less than an active number of NVMe drives during the pre-defined time range; and

executing the second action further comprises powering up the at least one NVMe drive in response to determining the required number of NVMe drives is greater than the active number of NVMe drives during the pre-defined time range.

14 . The computer system of claim 9 , wherein:

executing the first action further comprises slowing a speed of at least one cooling fan in response to determining a required cooling fan speed is less than an active cooling fan speed during the pre-defined time range; and

executing the second action further comprises increasing the speed of the at least one cooling fan in response to determining the required cooling fan speed is greater than the active cooling fan speed during the pre-defined time range.

15 . A computer program product, the computer program product comprising:

one or more computer-readable tangible storage medium and program instructions stored on at least one of the one or more computer-readable tangible storage medium, the program instructions executable by a processor capable of performing a method, the method comprising:

receiving historical time-series data from one or more components in a data center;

predicting one or more workload metrics of the one or more components during a pre-defined time range based on the historical time-series data, wherein the pre-defined time range is selected by a user;

identifying one or more required resources for the one or more components to handle the predicted one or more workload metrics during the pre-defined time range selected by the user;

determining whether at least one component of the one or more components requires a resource allocation increase during the pre-defined time range based on the identified one or more required resources; and

in response to determining the at least one component does not require the resource allocation increase, executing a first action to scale down at least one first resource during the pre-defined time range.

16 . The computer program product of claim 15 , the method further comprising:

in response to determining the at least one component does require the resource allocation increase, executing a second action to scale up at least one second resource during the pre-defined time range.

17 . The computer program product of claim 16 , the method further comprising:

training one or more machine learning models to forecast one or more future workload metrics of the one or more components based on the historical time-series data, wherein the training further comprises:

inputting the historical time-series data including input/output operations per second (IOPS), read/write throughput, and response time of a storage controller into a workload forecaster model, wherein the workload forecaster model forecasts future values for the input/output operations per second (IOPS), the read/write throughput, and the response time; and

feeding the forecasted future values into a storage resource prediction model, wherein the storage resource prediction model predicts the one or more required resources for the one or more components to handle the forecasted future values.

18 . The computer program product of claim 16 , wherein:

executing the first action further comprises powering down at least one central processing unit (CPU) core in response to determining a required number of CPU cores is less than an active number of CPU cores during the pre-defined time range; and

executing the second action further comprises powering up the at least one CPU core in response to determining the required number of CPU cores is greater than the active number of CPU cores during the pre-defined time range.

19 . The computer program product of claim 16 , wherein:

executing the first action further comprises slowing a speed of at least one ethernet port in response to determining a required ethernet port speed is less than an active ethernet port speed during the pre-defined time range; and

executing the second action further comprises increasing the speed of the at least one ethernet port in response to determining the required ethernet port speed is greater than the active ethernet port speed during the pre-defined time range.

20 . The computer program product of claim 16 , wherein:

executing the first action further comprises powering down at least one non-volatile memory express (NVMe) drive in response to determining a required number of NVMe drives is less than an active number of NVMe drives during the pre-defined time range; and

executing the second action further comprises powering up the at least one NVMe drive in response to determining the required number of NVMe drives is greater than the active number of NVMe drives during the pre-defined time range.