IP Library Granted Patent US 12,650,773
Granted Patent B2
US 12,650,773 · App. 18/886,679 · Granted Jun 9, 2026

Input/output operations per second (IOPS) recommendation for data volumes

Inventors: Nitin Ramachandra (Bengaluru, IN); Priyank Agarwal (Bengaluru, IN); Suchitha Shet (Bengaluru, IN); Prasanna Ganapathi (Bengaluru, IN); Ravi Kasha (Farooqnagar, IN)
Assignee: VMware LLC
G06F3/0613G06F3/0665G06F3/0673
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 12,650,773
App. No.
18/886,679
Granted
Jun 9, 2026
Kind
B2
Abstract

An example method for provisioning data volume for a virtual compute instance may include receiving a request to provision a data volume for a virtual compute instance. The request may specify a size of the data volume, a type of the data volume, and a first input/output operations per second (IOPS) value for the data volume. Further, the method may include determining a recommended IOPS value for the data volume by applying a logic to the specified size, the specified type, and the first IOPS value. Furthermore, the method may include provisioning the data volume for the virtual compute instance with the specified size, the specified type, and the recommended IOPS value.

Claims (58)

1 . A method comprising:

receiving a request to provision a data volume for a virtual compute instance, the request specifying a size of the data volume, a type of the data volume, and a first input/output operations per second (IOPS) value for the data volume;

determining a recommended IOPS value for the data volume by applying a logic to the specified size, the specified type, and the first IOPS value; and

provisioning the data volume for the virtual compute instance with the specified size, the specified type, and the recommended IOPS value;

wherein determining the recommended IOPS value for the data volume by applying the logic comprises:

computing a second IOPS value by multiplying the specified size with a maximum IOPS value per unit of the data volume corresponding to the specified type;

selecting a minimum value from the first IOPS value and the second IOPS value as a third IOPS value;

determine whether the third IOPS value is within a range of IOPS values associated with the specified type; and

determining the recommended IOPS value for the data volume based on whether the third IOPS value is within the range of IOPS values.

2 . The method of claim 1 , wherein determining the recommended IOPS value comprises:

when the third IOPS value is less than a minimum value of the range of IOPS values, adjusting the third IOPS value to the minimum value of the range of IOPS values; and

when the third IOPS value is greater than a maximum value of the range of IOPS values, adjusting the third IOPS value to the maximum value of the range of IOPS values.

3 . The method of claim 1 , wherein the data volume comprises an Elastic Block Store (EBS) volume.

4 . The method of claim 1 , wherein receiving the request comprises:

receiving the request comprising a storage profile specifying the size of the data volume, the type of the data volume, and the first IOPS value for a storage volume.

5 . The method of claim 1 , wherein receiving the request comprises:

enabling, via a user interface, a user to input data specifying the size of the data volume, the type of the data volume, and the first IOPS value for the data volume as part of the request to provision the data volume.

6 . The method of claim 1 , wherein receiving the request to provision the data volume comprises:

receiving the request to provision a boot volume comprising data to boot the virtual compute instance, a secondary data volume that can be attached to the virtual compute instance, or both, wherein the boot volume is provisioned during provisioning of the virtual compute instance, and wherein the secondary data volume is a standalone data volume that can be provisioned and attached to the virtual compute instance after provisioning the virtual compute instance.

7 . A management node comprising:

a processor;

memory coupled to the processor, wherein the memory comprises a storage provisioning unit to:

receive a request to provision a data volume for a virtual compute instance, the request specifying a size of the data volume, a type of the data volume, and a first input/output operations per second (IOPS) value for the data volume;

determine a recommended IOPS value for the data volume by applying a logic to the specified size, the specified type, and the first IOPS value;

compute a second IOPS value by multiplying the specified size with a maximum IOPS value per unit of the data volume corresponding to the specified type;

select a minimum value from the first IOPS value and the second IOPS value as a third IOPS value;

determine whether the third IOPS value is within a range of IOPS values associated with the specified type; and

determine the recommended IOPS value for the data volume based on whether the third IOPS value is within the range of IOPS values; and

provision the data volume for the virtual compute instance with the specified size, the specified type, and the recommended IOPS value.

8 . The management node of claim 7 , wherein the storage provisioning unit is to:

when the third IOPS value is less than a minimum value of the range of IOPS values, adjust the third IOPS value to the minimum value of the range of IOPS values; and

when the third IOPS value is greater than a maximum value of the range of IOPS values, adjust the third IOPS value to the maximum value of the range of IOPS values.

9 . The management node of claim 7 , wherein the data volume comprises an Elastic Block Store (EBS) volume.

10 . The management node of claim 7 , wherein the storage provisioning unit is to:

receive the request comprising a storage profile specifying the size of the data volume, the type of the data volume, and the first IOPS value for the data volume.

11 . The management node of claim 7 , wherein the storage provisioning unit is to:

enable, via a user interface, a user to input data specifying the size of the data volume, the type of the data volume, and the first IOPS value for the data volume as part of the request to provision the data volume.

12 . The management node of claim 7 , wherein the storage provisioning unit is to:

receive the request to provision a boot volume comprising data to boot the virtual compute instance, a secondary data volume that can be attached to the virtual compute instance, or both.

13 . A non-transitory computer readable storage medium comprising instructions executable by a processor of a management node to:

receive a request to provision a data volume for a virtual compute instance;

based on the request, determine a size of the data volume, a type of the data volume, and a first input/output operations per second (IOPS) value for the data volume;

determine a recommended IOPS value for the data volume by implementing a logic based on the size, the type, and the first IOPS value; and

provision the data volume for the virtual compute instance with the size, the type, and the recommended IOPS value;

wherein instructions to determine the recommended IOPS value for the data volume by applying the logic comprise instructions to:

compute a second IOPS value by multiplying the specified size with a maximum IOPS value per unit of the data volume corresponding to the specified type;

select a minimum value from the first IOPS value and the second IOPS value as a third IOPS value;

determine whether the third IOPS value is within a range of IOPS values associated with the specified type; and

determine the recommended IOPS value for the data volume based on whether the third IOPS value is within the range of IOPS values.

14 . The non-transitory computer readable storage medium of claim 13 , wherein instructions to determine the recommended IOPS value comprise instructions to:

when the third IOPS value is less than a minimum value of the range of IOPS values, adjust the third IOPS value to the minimum value of the range of IOPS values; and

when the third IOPS value is greater than a maximum value of the range of IOPS values, adjust the third IOPS value to the maximum value of the range of IOPS values.

15 . The non-transitory computer readable storage medium of claim 13 , wherein instructions to receive the request comprise instructions to:

receive the request comprising a storage profile specifying the size of the data volume, the type of the data volume, and the first IOPS value for the data volume.

16 . The non-transitory computer readable storage medium of claim 13 , wherein instructions to receive the request comprise instructions to:

enable, via a user interface, a user to input data specifying the size of the data volume, the type of the data volume, and the first IOPS value for the data volume as part of the request to provision the data volume.

17 . The non-transitory computer readable storage medium of claim 13 , wherein instructions to receive the request to provision the data volume comprise instructions to:

receive the request to provision a boot volume comprising data to boot the virtual compute instance, a secondary data volume that can be attached to the virtual compute instance, or both.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2024
From: RAMACHANDRA, NITIN; AGARWAL, PRIYANK; SHET, SUCHITHA; GANAPATHI, PRASANNA; KASHA, RAVI
To: VMWARE, INC.
Reel/Frame 068601/0778 →
CHANGE OF NAME Recorded Sep 16, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 068964/0505 →
Continuity (1)
Related Publication 20250110645A1 · Apr 3, 2025
References Cited (6)
US 10404613B1 · Brooker · 2019 [cited by examiner]
US 20200034057A1 · Srinivasan et al. · 2020 [cited by applicant]
US 20210314393A1 · Cady · 2021 [cited by applicant]
Anonymous, Amazon Elastic Compute Cloud User Guide for Linux, API Version Apr. 15, 2015, pp. 391-696. [cited by applicant]
Lu, T. et al., IOTune: A G-states Driver for Elastic Performance of Block Storage, arXiv:1705.03591, 2017, pp. 1-15. [cited by applicant]
European Patent Office, Extended Search Report, Application No. 24203999.8, Feb. 10, 2025, 13 pages. [cited by applicant]