IP Library Granted Patent US 12,498,949
Granted Patent B2
US 12,498,949 · App. 17/190,252 · Granted Dec 16, 2025

Library based virtual machine migration

Inventor: Michael Tsirkin (Lexington, MA)
Assignee: Red Hat, Inc.
G06F9/45558G06F2009/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 12,498,949
App. No.
17/190,252
Granted
Dec 16, 2025
Kind
B2
Abstract

A method includes determining to migrate a guest VM from a source host to a destination host and, in response to determining to migrate the guest VM, determining that a page of the guest VM matches a page of a VM image of a plurality of VM images in a VM library associated with the source host. The method further includes forwarding an identifier of the page of the VM image to the destination host, the destination host to retrieve, in view of the identifier, the page of the VM image from a second VM library associated with the destination host to instantiate the guest VM at the destination host.

Claims (40)

1 . A method comprising:

generating a common virtual machine (VM) library comprising a plurality of VM images corresponding to a most common configured subset of VMs of a plurality of VMs that have been instantiated, each VM image comprising of one or more pages;

storing a first copy of the common VM library to a source host and a second copy of the common VM library to a destination host, the first copy being the same as the second copy;

determining to migrate a guest VM from the source host to the destination host;

in response to determining to migrate the guest VM, determining, by a processing device, whether each page of a plurality of pages of the guest VM matches a page of a VM image of the plurality of VM images in the common VM library by comparing the VM image to the first copy of the common VM library stored at the source host;

for each page of the plurality of pages of the guest VM:

in response to determining that the page of the quest VM matches the page of a the VM image of the plurality of VM images in the common VM library, determining an identifier of the page of the VM image in the common VM library matching the page of the guest VM, and sending the determined identifier to the destination host; and

in response to determining that the page of the quest VM does not match any page of the plurality of VM images, copying the page of the quest VM to the destination host;

for each determined identifier received from the source host, retrieving, by the destination host, a page corresponding to the received determined identifier of the VM image from the second copy of the common VM library stored at the destination host; and

rebuilding, by the destination host, the quest VM using the retrieved page and copied pages of the guest VM to instantiate the guest VM at the destination host.

2 . The method of claim 1 , wherein determining that the page of the guest VM matches the page of the VM image of the plurality of VM images in the common VM library comprises performing a lookup in the first copy of the common VM library using content of the page of the guest VM.

3 . The method of claim 1 , wherein the identifier uniquely identifies the page of the VM image of the plurality of VM images in the first copy of the common VM library and the second copy of the common VM library.

4 . A system comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

generate a common virtual machine (VM) library comprising a plurality of VM images corresponding to a most common configured subset of VMs of a plurality of VMs that have been instantiated, each VM image comprising of one or more pages;

store a first copy of the common VM library to a source host and a second copy of the common VM library to a destination host, the first copy being the same as the second copy;

determine to migrate a guest VM from the source host to the destination host;

in response to determining to migrate the guest VM, determine whether each page of a plurality of pages of the guest VM matches a page of a VM image of the plurality of VM images in the common VM library by comparing the VM image to the first copy of the common VM library associated with the source host;

for each page of the plurality of pages of the quest VM:

in response to determining that the page of the quest VM matches the page of the VM image of the plurality of VM images in the common VM library, determine an identifier of the page of the VM image in the common VM library matching the page of the guest VM, and sending the determined identifier to the destination host; and

in response to determining that the page of the quest VM does not match any page of the plurality of VM images, copying the page of the quest VM to the destination host;

for each determined identifier received from the source host, retrieve, by the destination host, a page corresponding to the received determined identifier of the VM image from the second copy of the common VM library stored at the destination host; and

rebuild, by the destination host, the quest VM using the retrieved page and copied pages of the guest VM to instantiate the guest VM at the destination host.

5 . The system of claim 4 , wherein to determine that the page of the guest VM matches the page of a VM image of the plurality of VM images in the common VM library the processing device is to:

perform a lookup in the first copy of the common VM library using content of the page of the guest VM.

6 . The system of claim 4 , wherein the identifier uniquely identifies the page of the VM image of the plurality of VM images in the first copy of the common VM library and the second copy of the common VM library.

7 . A non-transitory computer-readable storage medium including instructions that, when executed by a processing device, cause the processing device to:

generate a common virtual machine (VM) library comprising a plurality of VM images corresponding to a most common configured subset of VMs of a plurality of VMs that have been instantiated, each VM image comprising of one or more pages;

store a first copy of the common VM library to a source host and a second copy of the common VM library to a destination host, the first copy being the same as the second copy;

determine to migrate a guest VM from the source host to the destination host;

in response to determining to migrate the guest VM, determine whether each page of a plurality of pages of the guest VM matches a page of a VM image of the plurality of VM images in the common VM library by comparing the VM image to the first copy of the common VM library associated with the source host;

for each page of the plurality of pages of the quest VM:

in response to determining that the page of the guest VM matches the page of the VM image of the plurality of VM images in the common VM library, determine an identifier of the page of the VM image in the common VM library matching the page of the guest VM, and sending the determined identifier to the destination host; and

in response to determining that the page of the quest VM does not match any page of the plurality of VM images, copying the page of the quest VM to the destination host;

for each determined identifier received from the source host, retrieve, by the destination host, a page corresponding to the received determined identifier of the VM image from the second copy of the common VM library stored at the destination host; and

rebuild, by the destination host, the quest VM using the retrieved page and copied page of the guest VM to instantiate the guest VM at the destination host.

8 . The non-transitory computer-readable storage medium of claim 7 , wherein to determine that the page of the guest VM matches the page of a VM image of the plurality of VM images in the common VM library the processing device is to:

perform a lookup in the first copy of the common VM library using content of the page of the guest VM.

9 . The non-transitory computer-readable storage medium of claim 7 , wherein the identifier uniquely identifies the page of the VM image of the plurality of VM images in the first copy of the common VM library and the second copy of the common VM library.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2023
From: TSIRKIN, MICHAEL
To: RED HAT, INC.
Reel/Frame 062354/0330 →
Continuity (1)
Related Publication 20220283835A1 · Sep 8, 2022
References Cited (22)
US 9116803B1 · Agrawal et al. · 2015 [cited by applicant]
US 9590917B2 · Karunamoorthy et al. · 2017 [cited by applicant]
US 9720724B2 · Agrawal et al. · 2017 [cited by applicant]
US 9928056B1 · Chittigala · 2018 [cited by examiner]
US 10432727B1 · Singh et al. · 2019 [cited by applicant]
US 10437865B1 · Clements · 2019 [cited by examiner]
US 10579409B2 · Beveridge et al. · 2020 [cited by applicant]
US 11074092B2 · Dong · 2021 [cited by examiner]
US 11468087B1 · Slember · 2022 [cited by examiner]
US 20100257523A1 · Frank · 2010 [cited by examiner]
US 20140359213A1 · Messec · 2014 [cited by examiner]
US 20150249618A1 · Golander · 2015 [cited by examiner]
US 20150347165A1 · Lipchuk · 2015 [cited by examiner]
US 20160337445A1 · Kono · 2016 [cited by examiner]
US 20170003997A1 · Kelly et al. · 2017 [cited by applicant]
US 20170277555A1 · Gautam · 2017 [cited by examiner]
US 20180213036A1 · Vasetsky · 2018 [cited by examiner]
US 20190227726A1 · Zaydman · 2019 [cited by examiner]
US 20200174934A1 · Zaydman · 2020 [cited by examiner]
US 20220214901A1 · Tsirkin · 2022 [cited by examiner]
CN 105577727A · 2016 [cited by applicant]
Carrion et al., “A Generic Catalog and Repository Service for Virtual Machine Images” Jan. 2010, Conference: 2nd International ICST Conference on Cloud Computing (CloudComp 2010), https://www.researchgate.net/publicatio… [cited by applicant]