IP Library › Granted Patent US 9,495,191
Granted Patent B2
US 9,495,191 · App. 14/166,412 · Granted Nov 15, 2016

Using virtual disk in virtual machine live migration

Inventor: Michael Tsirkin (Yokeneam Yillit, IL)
Assignee: Red Hat Israel, Ltd.
G06F9/45558G06F12/1027G06F2009/4557
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 9,495,191
App. No.
14/166,412
Granted
Nov 15, 2016
Kind
B2
Abstract

Systems and methods for implementing lazy disk I/O in virtual machine live migration. An example method may comprise: determining, by a first computer system, that contents of a memory page mapped into an address space of a virtual machine undergoing live migration from a second computer system to the first computer system is stored on a network-accessible virtual disk; storing, in a memory data structure, a mapping of an address of the memory page to an identifier of a location of the memory page on the virtual disk; and responsive to detecting an access to the memory page by the virtual machine, storing in a memory mapped into the address space of the virtual machine the memory page retrieved from the location of the memory page on the virtual disk.

Claims (43)

1. A method, comprising:

determining, by a processor of a first computer system, that contents of a memory page mapped into an address space of a virtual machine undergoing live migration from a second computer system to the first computer system is stored on a network-accessible virtual disk;

storing, in a memory data structure, a mapping of an address of the memory page to an identifier of a location of the memory page on the virtual disk;

setting a source bit in a page table entry associated with the memory page, the source bit indicating that the contents of the memory page has been stored on the virtual disk;

detecting an access to the memory page by the virtual machine;

responsive to ascertaining that the source bit is set, retrieving the contents of the memory page from the location on the virtual disk associated with the memory page by the mapping stored in the data structure; and

storing the contents of the memory page in a memory range mapped into the address space of the virtual machine.

2. The method of claim 1 , wherein determining that the contents of the memory page is stored on the virtual disk comprises receiving a notification from the second computer system.

3. The method of claim 1 , wherein storing the mapping comprises marking as invalid a page table entry for the memory page.

4. The method of claim 3 , wherein storing the memory page in the memory mapped into the address space of the virtual machine comprises marking as valid the page table entry for the memory page.

5. The method of claim 1 , further comprising:

responsive to detecting an access to the location of the memory page on the virtual disk, reading the memory page from the virtual disk into a hypervisor memory.

6. The method of claim 1 , wherein the mapping of the address of the memory page to the identifier of the location of the memory page on the virtual disk is bi-directional.

7. The method of claim 1 , wherein the virtual disk resides on one of: a network attached storage (NAS) system or a storage area network (SAN) system.

8. The method of claim 1 , wherein the identifier of the location of the memory page on the virtual disk comprises an identifier of the virtual disk and an offset on the virtual disk.

9. A first computer system, comprising:

a memory to store a memory data structure; and

a processor, operatively coupled to the memory, to:

determine that contents of a memory page mapped into an address space of a virtual machine undergoing live migration from a second computer system to the first computer system is stored on a network-accessible virtual disk;

store, in the memory data structure, a mapping of an address of the memory page to an identifier of a location of the memory page on the virtual disk;

set a source bit in a page table entry associated with the memory page, the source bit indicating that the contents of the memory page has been stored on the virtual disk;

detect an access to the memory page by the virtual machine;

responsive to ascertaining that the source bit is set, retrieve the contents of the memory page from the location on the virtual disk associated with the memory page by the mapping stored in the data structure; and

store the contents of the memory page in a memory range mapped into the address space of the virtual machine.

10. The first computer system of claim 9 , wherein to determine that the contents of the memory page is stored on the virtual disk, the processor is to receive a notification from the second computer system.

11. The first computer system of claim 9 , wherein to store the mapping, the processor is to mark as invalid a page table entry for the memory page.

12. The first computer system of claim 11 , wherein to store the memory page in the memory mapped into the address space of the virtual machine, the processor is to mark as valid the page table entry for the memory page.

13. The first computer system of claim 9 , wherein the processor is further to:

responsive to detecting an access to the location of the memory page on the virtual disk, read the memory page from the virtual disk into a hypervisor memory.

14. The first computer system of claim 9 , wherein the virtual disk resides on one of: a network attached storage (NAS) system or a storage area network (SAN) system.

15. A computer-readable non-transitory storage medium comprising executable instructions that, when executed by a processor of a first computer system, cause the processor to:

determine, by the processor, that contents of a memory page mapped into an address space of a virtual machine undergoing live migration from a second computer system to the first computer system is stored on a network-accessible virtual disk;

store, in a memory data structure, a mapping of an address of the memory page to an identifier of a location of the memory page on the virtual disk;

set a source bit in a page table entry associated with the memory page, the source bit indicating that the contents of the memory page has been stored on the virtual disk;

detect an access to the memory page by the virtual machine;

responsive to ascertaining that the source bit is set, retrieve the contents of the memory page from the location on the virtual disk associated with the memory page by the mapping stored in the data structure; and

store the contents of the memory page in a memory range mapped into the address space of the virtual machine.

16. The computer-readable non-transitory storage medium of claim 15 , wherein executable instructions to determine that the contents of the memory page is stored on the virtual disk further comprise executable instructions causing the processor to receive a notification from the second computer system.

17. The computer-readable non-transitory storage medium of claim 15 , wherein executable instructions to store the mapping comprise executable instructions causing the processor to mark as invalid a page table entry for the memory page.

18. The computer-readable non-transitory storage medium of claim 17 , wherein executable instructions to store the memory page in the memory mapped into the address space of the virtual machine comprise executable instructions causing the processor to mark as valid the page table entry for the memory page.

19. The computer-readable non-transitory storage medium of claim 17 , further comprising executable instructions causing the processor to:

responsive to detecting an access to the location of the memory page on the virtual disk, read the memory page from the virtual disk into a hypervisor memory.

20. The computer-readable non-transitory storage medium of claim 15 , wherein the virtual disk resides on one of: a network attached storage (NAS) system or a storage area network (SAN) system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2014
From: TSIRKIN, MICHAEL
To: RED HAT ISRAEL, LTD.
Reel/Frame 032137/0854 →
Continuity (1)
Related Publication 20150212845A1 · Jul 30, 2015