IP Library Granted Patent US 10,884,781
Granted Patent B2
US 10,884,781 · App. 16/407,572 · Granted Jan 5, 2021

Method and apparatus for a virtual machine

Inventors: Bing Liu (Tianjin, CN); Man Lv (Beijing, CN); Eric Yang Song (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F9/45558G06F2009/45579G06F2009/45583
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,884,781
App. No.
16/407,572
Granted
Jan 5, 2021
Kind
B2
Abstract

Embodiments of the present disclosure provide a method and an apparatus for a virtual machine. The method implemented in a virtual machine comprises: receiving I/O requests for I/O operations on virtual disks of the virtual machine; detecting associations between the virtual disks and virtual storage devices of a virtual machine hypervisor for the virtual machine; and scheduling the I/O requests based on the associations. Embodiments of the present disclosure enable an application-aware I/O QoS in a virtual environment in an efficiently way and moving IT solutions of virtual version to different virtual platforms. The method and apparatus according to the embodiments of the present disclosure offer good flexibility and compatibility.

Claims (68)

1. A method implemented in a virtual machine, comprising:

receiving, from an application layer or file system, Input/Output (I/O) requests for I/O operations on virtual disks of the virtual machine;

detecting associations between the virtual disks and virtual storage devices of a virtual machine hypervisor for the virtual machine, at least in part by detecting which ones of the virtual disks share one of the virtual storage devices, wherein detecting which ones of the virtual disks of the virtual machine share one of the virtual storage devices of the virtual machine hypervisor comprises detecting that at least two of the virtual disks of the virtual machine share one of the virtual storage devices of the virtual machine hypervisor; and

scheduling the I/O requests based on the associations.

2. The method according to claim 1 , wherein the receiving I/O requests for I/O operations on virtual disks of the virtual machine comprises:

organizing the I/O requests into a first I/O request queue associated with a respective one of the virtual disks; and

merging the I/O requests based on the first I/O request queue at least in part by making at least one of the I/O requests larger.

3. The method according to claim 1 , wherein the scheduling the I/O requests based on the associations comprises:

organizing, based on the associations, the I/O requests into a second I/O request queue associated with a respective one of the virtual storage devices; and

sorting I/O requests in the second I/O request queue.

4. The method according to claim 3 , further comprising:

converting the sorted second I/O request queue as a third I/O request queue associated with a respective one of the virtual disks; and

sending the third I/O request queue to the virtual machine hypervisor, so that the virtual machine hypervisor performs I/O operations corresponding to the I/O requests in the third I/O request queue in sequence.

5. The method according to claim 3 , wherein the sorting I/O requests in the second I/O request queue comprises sorting based on at least one of the following:

a feature of the second I/O request queue, and

a feature of the virtual disk associated with the I/O requests in the second I/O request queue.

6. The method according to claim 5 , wherein the feature of the second I/O request queue comprises at least one of the following:

a predetermined number of I/O requests to be processed in the second I/O request queue,

an arriving time of the I/O requests in the second I/O request queue,

a type of the I/O operations in the second I/O request queue,

scheduling history statistics of the I/O operations in the second I/O request queue, and

a priority of the I/O operations in the second I/O request queue.

7. The method according to claim 5 , wherein the feature of the virtual disk comprises at least one of the following:

a priority of the virtual disk, and

scheduling history statistics of the virtual disk.

8. The method according to claim 3 , further comprising:

throttling the second I/O request queue.

9. The method according to claim 8 , wherein the throttling the second I/O request queue comprises:

receiving a throttling threshold for the throttling from a user interface; and

in response to the number of I/O requests in the second I/O request queue reaching the throttling threshold, throttling the second I/O request queue.

10. The method according to claim 1 , wherein the scheduling the I/O requests further comprises:

detecting additional associations between the virtual disks and a backend storage device; and

scheduling the I/O requests based on the associations and the additional associations.

11. The method according to claim 1 , further comprising:

receiving a setting related to a priority of each type of I/O operation and a priority of an I/O operation on each virtual disk from a user interface; and

informing performance of each type of I/O operation and the I/O operation on each virtual disk to the user interface for a user to adjust the setting.

12. The method according to claim 1 , wherein the detecting is performed by a detecting unit and the scheduling is performed by a scheduling unit, the method further comprising:

in response to the detecting unit detecting the associations, attaching a virtual disk being attached to a NO Operation (NOOP) I/O scheduler to the scheduling unit.

13. An apparatus implemented in a virtual machine, comprising:

at least one processor;

and at least one memory comprising computer program codes; wherein

the at least one memory and the computer program codes are configured to, together with the processor, cause the apparatus to at least:

receive, from an application layer or file system, Input/Output (I/O) requests for I/O operations on virtual disks of the virtual machine;

detect associations between the virtual disks and virtual storage devices of a virtual machine hypervisor for the virtual machine, at least in part by detecting which ones of the virtual disks share one of the virtual storage devices, wherein detecting which ones of the virtual disks of the virtual machine share one of the virtual storage devices of the virtual machine hypervisor comprises detecting that at least two of the virtual disks of the virtual machine share one of the virtual storage devices of the virtual machine hypervisor; and

schedule the I/O requests based on the associations.

14. The apparatus according to claim 13 , wherein the at least one memory and the computer program codes are further configured to, together with the processor, cause the apparatus to receive I/O request for I/O operations on virtual disks of the virtual machine at least by:

organizing the I/O requests into a first I/O request queue associated with corresponding one of the virtual disks; and

merging the I/O requests based on the first I/O request queue at least in part by making at least one of the I/O requests larger.

15. The apparatus according to claim 13 , wherein the at least one memory and the computer program codes are further configured to, together with the processor, cause the apparatus to schedule the I/O request based on the associations at least by:

organizing, based on the associations, the I/O requests into a second I/O request queue associated with a respective one of the virtual storage devices; and

sorting I/O requests in the second I/O request queue.

16. The apparatus according to claim 15 , wherein the at least one memory and the computer program codes are further configured to, together with the processor, cause the apparatus to at least:

convert the sorted second I/O request queue as a third I/O request queue associated with a respective one of the virtual disks; and

send the third I/O request queue to the virtual machine hypervisor, so that the virtual machine hypervisor performs I/O operations corresponding to the I/O requests in the third I/O request queue in sequence.

17. The apparatus according to claim 15 , wherein the at least one memory and the computer program codes are further configured to, together with the processor, cause the apparatus to sort the second I/O request queue based on at least one of the following:

a feature of the second I/O request queue, and

a feature of the virtual disk associated with the I/O requests in the second I/O request queue.

18. The apparatus according to claim 17 , wherein the feature of the second I/O request comprises at least one of the following:

a predetermined number of I/O requests to be processed in the second I/O request queue,

an arriving time of the I/O requests in the second I/O request queue,

a type of the I/O operations in the second I/O request queue,

scheduling history statistics of the I/O operations in the second I/O request queue, and

a priority of the I/O operations in the second I/O request queue.

19. The apparatus according to claim 18 , wherein the feature of the virtual disk comprises at least one of the following:

a priority of the virtual disk, and

scheduling history statistics of the virtual disk.

20. The apparatus according to claim 15 , wherein the at least one memory and the computer program codes are further configured to, together with the processor, cause the apparatus to at least:

throttle the second I/O request queue.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2019
From: LIU, BING; LV, MAN; SONG, ERIC YANG
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049365/0661 →