IP Library Granted Patent US 10,496,547
Granted Patent B1
US 10,496,547 · App. 15/591,225 · Granted Dec 3, 2019

External disk cache for guest operating system in a virtualized environment

Inventors: Andrey Naenko (Moscow, RU); Nikolay Dobrovolskiy (Moscow, RU); Serguei M. Beloussov (Costa Del Sol, SG)
Assignee: PARALLELS INTERNATIONAL GMBH
G06F12/0873G06F3/0604G06F3/064G06F3/0653G06F3/0659G06F3/0665G06F3/0685G06F12/0804G06F2212/152G06F2212/224G06F2212/608
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,496,547
App. No.
15/591,225
Granted
Dec 3, 2019
Kind
B1
Abstract

A system and method is provided for managing computing resources of a physical server executing a plurality of virtual machines (VMs) including a first virtual machine (VM). The first VM executes a guest block device driver configured to provide a guest operating system of the first VM an interface to a memory-mapped virtual storage device. A virtual machine monitor maintains a disk cache associated with the virtual storage device. The disk cache resides in a host physical memory of the physical server outside of portions of the host physical memory associated with guest physical memory of the first VM. The virtual machine monitor is configured to, responsive to determining that available host physical memory satisfies a threshold condition, reclaim a target portion of the host physical memory allocated to the disk cache.

Claims (57)

1. A method for managing computing resources of a physical server executing a plurality of virtual machines (VMs), the method comprising:

executing, in a first virtual machine (VM) of the plurality of VMs, a guest block device driver configured to provide an interface to a memory-mapped virtual storage device;

maintaining, by a virtual machine monitor, a disk cache associated with the virtual storage device, wherein the disk cache resides in a host physical memory of the physical server outside of portions of the host physical memory associated with guest physical memory of the first VM; and

responsive to determining that available host physical memory satisfies a threshold condition, reclaiming a target portion of the host physical memory allocated to the disk cache.

2. The method of claim 1 , wherein the memory-mapped virtual storage device occupies guest physical memory of the first VM.

3. The method of claim 1 , wherein the disk cache is configured to store pages from a physical storage device of the physical server, and wherein the disk cache is shared between the plurality of VMs.

4. The method of claim 1 , wherein maintaining by the virtual machine monitor the disk cache associated with the virtual storage device comprises:

intercepting, by the virtual machine monitor, a disk operation issued by the guest block device driver for the virtual storage device, wherein the disk operation comprises at least one of a read operation and a write operation.

5. The method of claim 4 , wherein maintaining by the virtual machine monitor the disk cache associated with the virtual storage device further comprises:

mapping a portion of the disk cache into guest physical address space of the first VM; and

restarting the intercepted disk operation such that the disk operation runs natively on the virtual storage device.

6. The method of claim 1 , wherein maintaining by the virtual machine monitor the disk cache associated with the virtual storage device comprises:

intercepting, by the virtual machine monitor, a read operation issued by the guest block device driver for data from a specified area in the virtual storage device;

retrieving the data from a physical storage device and storing the data in a portion of the disk cache;

mapping the portion of the disk cache into a guest physical address space of the first VM; and

restarting the intercepted read operation such that the read operation executes natively on the virtual storage device to read the data from the specified area in the virtual storage device that is mapped to the disk cache.

7. The method of claim 1 , wherein maintaining by the virtual machine monitor the disk cache associated with the virtual storage device comprises:

intercepting, by the virtual machine monitor, a write operation issued by the guest block device driver for storing data to a specified area in the virtual storage device;

mapping a portion of the disk cache into guest physical address space of the first VM; and

restarting the intercepted write operation such that the write operation executes natively on the virtual storage device to write the data to the specified area in the virtual storage device that is mapped to the disk cache.

8. The method of claim 1 , wherein reclaiming a target portion of the host physical memory allocated to the disk cache comprises:

responsive to determining that cached data contained in the target portion have been modified, (i) flushing the cached data to a physical storage device, and (ii) un-mapping the target portion from a guest physical address space of the first VM.

9. A system for executing a plurality of virtual machines (VMs), the system comprising:

a host physical memory; and

a hardware processor configured to:

execute, in a first virtual machine (VM) comprising a guest block device driver and a memory-mapped virtual storage device, wherein the guest device driver is configured to provide an interface to the memory-mapped virtual storage device;

maintain a disk cache associated with the virtual storage device, wherein the disk cache resides in the host physical memory outside of portions of the host physical memory associated with guest physical memory of the first VM; and

responsive to determining that available host physical memory satisfies a threshold condition, reclaim a target portion of the host physical memory allocated to the disk cache.

10. The system of claim 9 , wherein the memory-mapped virtual storage device occupies guest physical memory of the first VM.

11. The system of claim 9 , wherein the disk cache is configured to store pages from a physical storage device of the physical server, and wherein the disk cache is shared between the plurality of VMs.

12. The system of claim 9 , where the processor configured to maintain the disk cache associated with the virtual storage device is further configured to:

intercept a disk operation issued by the guest block device driver for the virtual storage device, wherein the disk operation comprises at least one of a read operation and a write operation.

13. The system of claim 12 , where the processor configured to maintain the disk cache associated with the virtual storage device is further configured to:

map a portion of the disk cache into guest physical address space of the first VM; and

restart the intercepted disk operation such that the disk operation runs natively on the virtual storage device.

14. The system of claim 9 , wherein the processor configured to maintain the disk cache associated with the virtual storage device is configured to:

intercept a read operation issued by the guest block device driver for data from a specified area in the virtual storage device;

retrieve the data from a physical storage device and storing the data in a portion of the disk cache;

map the portion of the disk cache into a guest physical address space of the first VM; and

restart the intercepted read operation such that the read operation executes natively on the virtual storage device to read the data from the specified area in the virtual storage device that is mapped to the disk cache.

15. The system of claim 9 , wherein the processor configured to maintain the disk cache associated with the virtual storage device is further configured to:

intercept a write operation issued by the guest block device driver for storing data to a specified area in the virtual storage device;

map a portion of the disk cache into guest physical address space of the first VM; and

restart the intercepted write operation such that the write operation executes natively on the virtual storage device to write the data to the specified area in the virtual storage device that is mapped to the disk cache.

16. The system of claim 9 , wherein the processor configured to reclaim a target portion of the host physical memory allocated to the disk cache is further configured to:

responsive to determining that cached data contained in the target portion have been modified, (i) flush the cached data to a physical storage device, and (ii) un-map the target portion from a guest physical address space of the first VM.

17. A non-transitory computer readable medium comprising computer executable instructions for managing computing resources of a physical server executing a plurality of virtual machines (VMs), including instructions for:

executing, in a first virtual machine (VM) of the plurality of VMs, a guest block device driver configured to provide an interface to a memory-mapped virtual storage device;

maintaining, by a virtual machine monitor, a disk cache associated with the virtual storage device, wherein the disk cache resides in a host physical memory of the physical server outside of portions of the host physical memory associated with guest physical memory of the first VM; and

responsive to determining that available host physical memory satisfies a threshold condition, reclaiming a target portion of the host physical memory allocated to the disk cache.

18. The non-transitory computer readable medium of claim 17 , wherein the instructions for maintaining by the virtual machine monitor the disk cache associated with the virtual storage device comprises instructions for:

intercepting, by the virtual machine monitor, a disk operation issued by the guest block device driver for the virtual storage device, wherein the disk operation comprises at least one of a read operation and a write operation.

19. The non-transitory computer readable medium of claim 18 , wherein the instructions for maintaining by the virtual machine monitor the disk cache associated with the virtual storage device further comprises instructions for:

mapping a portion of the disk cache into guest physical address space of the first VM; and

restarting the intercepted disk operation such that the disk operation runs natively on the virtual storage device.

20. The non-transitory computer readable medium of claim 17 , wherein the instructions for reclaiming a target portion of the host physical memory allocated to the disk cache further comprises instructions for:

responsive to determining that cached data contained in the target portion have been modified, (i) flushing the cached data to a physical storage device, and (ii) un-mapping the target portion from a guest physical address space of the first VM.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 047973 FRAME 0797 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 049773/0590 →
SECURITY INTEREST Recorded Dec 21, 2018
From: PARALLELS INTERNATIONAL GMBH
To: UBS AG, STAMFORD BRANCH
Reel/Frame 047973/0797 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2017
From: NAENKO, ANDREY; DOBROVOLSKIY, NIKOLAY; BELOUSSOV, SERGUEI M
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 042320/0057 →
Cited By (16)
US 12,204,929 US 12,217,080 US 12,235,744 US 12,299,467 US 12,314,752 US 12,321,766 US 12,327,133 US 12,360,942 US 12,373,308 US 12,381,878 US 12,430,214 US 12,476,978 US 12,639,173 US 12,645,798 US 12,671,671 US 12,681,817