Reducing redundant network transmissions in virtual machine live migration
First Claim
1. A method, comprising:
- reading, by a processor of a destination computer system, from a memory mapped into an address space of a virtual machine undergoing live migration from an origin computer system to the destination computer system, a data structure comprising a plurality of records, each record mapping an address of a memory page to an identifier of a virtual disk frame storing contents of the memory page, wherein the virtual disk frame is stored on a virtual disk that is employed by the virtual machine as a backing store for storing contents of memory pages, wherein the identifier of the virtual disk frame comprises an offset of the frame on the virtual disk, and wherein the virtual disk is accessible over a network by both the origin computer system and the destination computer system;
reading, by the processor, from the memory mapped into the address space of the virtual machine, a plurality of page modification flags, each page modification flag indicating that contents of a corresponding memory page differ from contents of a virtual disk frame referenced by the data structure; and
responsive to determining that a memory page is referenced by the data structure and that a page modification flag corresponding to the memory page is cleared, reading contents of the memory page from the virtual disk frame identified by the data structure.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for reducing redundant network transmissions in virtual machine live migration. An example method may comprise: reading, by a hypervisor running on a first computer system, from a memory mapped into an address space of a virtual machine undergoing live migration from the first computer system to a second computer system, a data structure comprising a plurality of records, each record mapping an address of a memory page to an identifier of a virtual disk frame storing contents of the memory page; reading a plurality of page modification flags, each page modification flag indicating that contents of a corresponding memory page differ from contents of a virtual disk frame referenced by the data structure; responsive to determining that a memory page is referenced by the data structure and that a page modification flag corresponding to the memory page is set, transmitting the memory page to the second computer system; and responsive to determining that a memory page is not referenced by the data structure, transmitting the memory page to the second computer system.
13 Citations
17 Claims
-
1. A method, comprising:
-
reading, by a processor of a destination computer system, from a memory mapped into an address space of a virtual machine undergoing live migration from an origin computer system to the destination computer system, a data structure comprising a plurality of records, each record mapping an address of a memory page to an identifier of a virtual disk frame storing contents of the memory page, wherein the virtual disk frame is stored on a virtual disk that is employed by the virtual machine as a backing store for storing contents of memory pages, wherein the identifier of the virtual disk frame comprises an offset of the frame on the virtual disk, and wherein the virtual disk is accessible over a network by both the origin computer system and the destination computer system; reading, by the processor, from the memory mapped into the address space of the virtual machine, a plurality of page modification flags, each page modification flag indicating that contents of a corresponding memory page differ from contents of a virtual disk frame referenced by the data structure; and responsive to determining that a memory page is referenced by the data structure and that a page modification flag corresponding to the memory page is cleared, reading contents of the memory page from the virtual disk frame identified by the data structure. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A destination computer system, comprising:
-
a memory; and a processor, operatively coupled to the memory, to; read from a memory mapped into an address space of a virtual machine undergoing live migration from an origin computer system to the destination computer system, a data structure comprising a plurality of records, each record mapping an address of a memory page to an identifier of a virtual disk frame storing contents of the memory page, wherein the virtual disk frame is stored on a virtual disk that is employed by the virtual machine as a backing store for storing contents of memory pages, wherein the identifier of the virtual disk frame comprises an offset of the frame on the virtual disk, and wherein the virtual disk is accessible over a network by both the origin computer system and the destination computer system; read from the memory mapped into the address space of the virtual machine, a plurality of page modification flags, each page modification flag indicating that contents of a corresponding memory page differ from contents of a virtual disk frame referenced by the data structure; and responsive to determining that a memory page is referenced by the data structure and that a page modification flag corresponding to the memory page is cleared, read contents of the memory page from the virtual disk frame identified by the data structure. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer-readable non-transitory storage medium comprising executable instructions that, when executed by a processor of a destination computer system, cause the processor to:
-
read, by the processor, from a memory mapped into an address space of a virtual machine undergoing live migration from an origin computer system to the destination computer system, a data structure comprising a plurality of records, each record mapping an address of a memory page to an identifier of a virtual disk frame storing contents of the memory page, wherein the virtual disk frame is stored on a virtual disk that is employed by the virtual machine as a backing store for storing contents of memory pages, wherein the identifier of the virtual disk frame comprises an offset of the frame on the virtual disk, and wherein the virtual disk is accessible over a network by both the origin computer system and the destination computer system; read, by the processor, from the memory mapped into the address space of the virtual machine, a plurality of page modification flags, each page modification flag indicating that contents of a corresponding memory page differ from contents of a virtual disk frame referenced by the data structure; and responsive to determining that a memory page is referenced by the data structure and that a page modification flag corresponding to the memory page is cleared, read contents of the memory page from the virtual disk frame identified by the data structure. - View Dependent Claims (14, 15, 16, 17)
-
Specification