IP Library Granted Patent US 10,338,950
Granted Patent B1
US 10,338,950 · App. 15/364,667 · Granted Jul 2, 2019

System and method for providing preferential I/O treatment to devices that host a critical virtual machine

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 10,338,950
App. No.
15/364,667
Granted
Jul 2, 2019
Kind
B1
Abstract

Quality of service is provided to prioritized VMs and applications, based on the varied quality of different shared computing resources. Each VM or application has an associated priority. A quality rating is dynamically assigned to each shared computing resource. Requests for shared computing resources made by specific VMs or applications are received. For each specific received request, the current priority of the requesting VM or application is identified. In response to each received request, a specific shared computing resource is assigned to the specific requesting VM or application. This assignment is made based on the current priority of the requesting VM or application and the current quality rating of the shared computing resource, thereby providing quality of service to the requesting VM or application corresponding to its current priority.

Claims (93)

1. A computer-implemented method comprising:

generating a mapping of a group of virtual machine disk blocks to a group of corresponding offsets in a logical unit number (LUN) of a storage unit, wherein the LUN is one of a plurality of LUNs of the storage unit,

each corresponding offset of the group of corresponding offsets corresponds to a corresponding virtual machine disk block of the group of virtual machine disk blocks,

the mapping identifies a plurality of universally unique identifiers (UUIDs),

each UUID of the plurality of UUIDs uniquely identifies the corresponding virtual machine disk block that begins at the corresponding offset, and

each UUID is stored at a fixed offset in a related LUN of the plurality of LUNs;

detecting that an input/output (I/O) operation is directed to a specific LUN among the plurality of LUNs in the storage unit;

based on the mapping, determining a specific virtual machine from which the I/O operation originated, wherein

the specific virtual machine is one of a plurality of virtual machines, and

the determining comprises identifying a specific UUID of the plurality of UUIDs that is associated with the related LUN, wherein

the identifying comprises reading data at the fixed offset in the related LUN;

identifying a priority level of the specific virtual machine, wherein

the priority level is identified based on the mapping; and

assigning the I/O operation a matching quality rating based on the priority level, wherein

the matching quality rating represents a quality of one or more shared computing resources available to the specific virtual machine.

2. The computer-implemented method of claim 1 , wherein the plurality of UUIDs do not directly correlate to actual storage LUNs.

3. The computer-implemented method of claim 1 , wherein

the mapping is performed by a quality of service manager, and

the quality of service manager operates at a multipathing component level of a clustering and storage system, and

the clustering and storage system comprises multiple multipathed storage devices.

4. The computer-implemented method of claim 1 , wherein

the I/O operation is generated by an application executing on the specific virtual machine, and

the I/O operation is selected from a queue.

5. The computer-implemented method of claim 4 , wherein

selection of the I/O operation from the queue is based on a relative priority and a variable design parameter.

6. The computer-implemented method of claim 1 , wherein

the fixed offset is part of a virtual machine file system associated with the specific virtual machine.

7. The computer-implemented method of claim 3 , wherein

the quality of service manager comprises two or more priority queues for each Host Bus Adaptor (HBA).

8. The computer-implemented method of claim 1 , wherein

the assigning comprises designating one or more specific shared resources of the one or more shared computing resources to the I/O operation from a pool based on the matching quality rating and the priority level.

9. A non-transitory computer-readable storage medium comprising program instructions executable to:

generate a mapping of a group of virtual machine disk blocks to a group of corresponding offsets in a logical unit number (LUN) of a storage unit, wherein the LUN is one of a plurality of LUNs of the storage unit,

each corresponding offset of the group of corresponding offsets corresponds to a corresponding virtual machine disk block of the group of virtual machine disk blocks,

the mapping identifies a plurality of universally unique identifiers (UUIDs),

each UUID of the plurality of UUIDs uniquely identifies the corresponding virtual machine disk block that begins at the corresponding offset, and

each UUID is stored at a fixed offset in a related LUN of the plurality of LUNs;

detect that an input/output (I/O) operation is directed to a specific LUN among the plurality of LUNs in the storage unit;

based on the mapping, determine a specific virtual machine from which the I/O operation originated, wherein

the specific virtual machine is one of a plurality of virtual machines, and

determining the specific virtual machine comprises identifying a specific UUID of the plurality of UUIDs that is associated with the related LUN, wherein

the identifying comprises reading data at the fixed offset in the related LUN;

identify a priority level of the specific virtual machine, wherein

the priority level is identified based on the mapping; and

assign the I/O operation a matching quality rating based on the priority level, wherein

the matching quality rating represents a quality of one or more shared computing resources available to the specific virtual machine.

10. The non-transitory computer-readable storage medium of claim 9 , wherein

the plurality of UUIDs do not directly correlate to actual storage LUNs.

11. The non-transitory computer-readable storage medium of claim 9 , wherein

the mapping is performed by a quality of service manager, and

the quality of service manager operates at a multipathing component level of a clustering and storage system,

the clustering and storage system comprises multiple multipathed storage devices, and

the quality of service manager comprises two or more priority queues for each Host Bus Adaptor (HBA).

12. The non-transitory computer-readable storage medium of claim 9 , wherein

the I/O operation is generated by an application executing on the specific virtual machine,

the I/O operation is selected from a queue, and

selection of the I/O operation from the queue is based on a relative priority and a variable design parameter.

13. The non-transitory computer-readable storage medium of claim 9 , wherein

the fixed offset is part of a virtual machine file system associated with the specific virtual machine.

14. The non-transitory computer-readable storage medium of claim 9 , wherein

assigning the I/O operation a matching quality comprises designating one or more specific shared resources of the one or more shared computing resources to the I/O operation from a pool based on the matching quality rating and the priority level.

15. A system comprising:

one or more processors; and

a memory coupled to the one or more processors, wherein the memory stores program instructions executable to:

generate a mapping of a group of virtual machine disk blocks to a group of corresponding offsets in a logical unit number (LUN) of a storage unit, wherein the LUN is one of a plurality of LUNs of the storage unit,

each corresponding offset of the group of corresponding offsets corresponds to a corresponding virtual machine disk block of the group of virtual machine disk blocks,

the mapping identifies a plurality of universally unique identifiers (UUIDs),

each UUID of the plurality of UUIDs uniquely identifies the corresponding virtual machine disk block that begins at the corresponding offset, and

each UUID is stored at a fixed offset in a related LUN of the plurality of LUNs;

detect that an input/output (I/O) operation is directed to a specific LUN among the plurality of LUNs in the storage unit;

based on the mapping, determine a specific virtual machine from which the I/O operation originated, wherein

the specific virtual machine is one of a plurality of virtual machines, and

determining the specific virtual machine comprises identifying a specific UUID of the plurality of UUIDs that is associated with the related LUN, wherein

the identifying comprises reading data at the fixed offset in the related LUN;

identify a priority level of the specific virtual machine, wherein

the priority level is identified based on the mapping; and

assign the I/O operation a matching quality rating based on the priority level, wherein

the matching quality rating represents a quality of one or more shared computing resources available to the specific virtual machine.

16. The system of claim 15 , wherein

the plurality of UUIDs do not directly correlate to actual storage LUNs.

17. The system of claim 15 , wherein

the mapping is performed by a quality of service manager, and

the quality of service manager operates at a multipathing component level of a clustering and storage system,

the clustering and storage system comprises multiple multipathed storage devices, and

the quality of service manager comprises two or more priority queues for each Host Bus Adaptor (HBA).

18. The system of claim 15 , wherein

the I/O operation is generated by an application executing on the specific virtual machine,

the I/O operation is selected from a queue, and

selection of the I/O operation from the queue is based on a relative priority and a variable design parameter.

19. The system of claim 15 , wherein

the fixed offset is part of a virtual machine file system associated with the specific virtual machine.

20. The system of claim 15 , wherein

assigning the I/O operation a matching quality comprises designating one or more specific shared resources of the one or more shared computing resources to the I/O operation from a pool based on the matching quality rating and the priority level.

Assignments (14)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0863 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0895 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 17, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 042037/0817 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 1, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 041850/0511 →