IP Library Granted Patent US 12,670,007
Granted Patent B1
US 12,670,007 · App. 18/317,295 · Granted Jun 30, 2026

Virtual machine migration with memory pooling

Inventors: Jonathon Evans (Santa Clara, CA); Vikram Sethi (Austin, TX); Durgesh Srivastava (Cupertino, CA); James Stephen Fields, Jr. (Santa Fe, NM)
Assignee: NVIDIA Corporation
G06F9/45558G06F2009/45562G06F2009/4557G06F2009/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 12,670,007
App. No.
18/317,295
Granted
Jun 30, 2026
Kind
B1
Abstract

Systems and methods for facilitating the migration of one or more virtual machines from a source computing system to a target computing system comprise an architecture with a memory pool. The memory pool is accessible by both the source computing system and the target computing system. Using this architecture, a first virtual machine instance running on the source computing system, and having virtual memory stored in the memory pool, can be migrated to the target computing system without the need to copy virtual memory between the computing systems. Migration includes copying state information about the first virtual machine instance to the target computing system. Then, a second virtual machine instance can be started on the target computing system, where the second virtual machine instance uses the virtual memory stored in the memory pool.

Claims (38)

1 . A method, comprising:

executing a first virtual machine instance on a first computing system, the first virtual machine instance including a virtual central processing unit (vCPU) stored in local memory of the first computing system and virtual memory corresponding to located in a shared memory pool accessible by the first computing system and a second computing system;

copying information corresponding to the vCPU from the local memory of the first computing system to a second local memory of the second computing system;

instantiating a second virtual machine instance on the second computing system, instantiating the second virtual machine instance comprising:

using the vCPU stored in the second local memory of the second computing system; and

accessing, by the second virtual machine instance during execution, the virtual memory from the shared memory pool without transferring the virtual memory from the shared memory pool to the local memory of the second computing system.

2 . The method according to claim 1 , wherein the first virtual machine instance and the second virtual machine instance have simultaneous access to the virtual memory in the shared memory pool.

3 . The method according to claim 1 , wherein the first computing system is configured to detect a triggering event for migrating the first virtual machine instance to the second computing system, and wherein the triggering event may include detection of at least one of: an error correction code indicator, or a Reliability, Availability, and Serviceability (RAS) indicator.

4 . The method according to claim 1 , further comprising copying information associated with the first virtual machine instance from an initial memory location to the shared memory pool, wherein the initial memory location is inaccessible to the second computing system.

5 . The method according to claim 4 , wherein the copying the information occurs while the first virtual machine instance is executing on the first computing system and prior to instantiating the second virtual machine instance on the second computing system.

6 . The method according to claim 1 , wherein the first computing system and the second computing system are servers on a data rack, and wherein the shared memory pool is located on the data rack.

7 . The method according to claim 1 , further comprising copying information associated with the second virtual machine instance running on the second computing system from the shared memory pool to a new memory location, wherein the new memory location is inaccessible to the first computing system.

8 . The method according to claim 1 , further comprising changing the accessibility of the virtual memory from private to shared after starting the first virtual machine instance on the first computing system.

9 . The method according to claim 1 , further comprising changing the accessibility of the virtual memory from shared to private after starting the second virtual machine instance on the second computing system.

10 . A method, comprising:

executing a first virtual machine instance on a first computing system, the first virtual machine instance including a virtual central processing unit (vCPU) stored in local memory of the first computing system and virtual memory located in a shared memory pool accessible by the first computing system and a second computing system;

detecting a triggering event;

performing, in response to detecting the triggering event, a migration of the first virtual machine instance from the first computing system to the second computing system, by:

copying information corresponding to the vCPU from the local memory of the first computing system to a second local memory of the second computing system; and

and

instantiating a second virtual machine instance on the second computing system, wherein instantiating the second virtual machine instance comprises:

using the vCPU stored in the second local memory of the second computing system; and

accessing, by the second virtual machine instance during execution, the virtual memory from the shared memory pool without transferring the virtual memory from the shared memory pool to the local memory of the second computing system.

11 . The method according to claim 10 , wherein detecting the triggering event includes at least one of detecting a software error, detecting a hardware error, or receiving a migration request.

12 . The method according to claim 10 , wherein the triggering event includes detection of at least one of: an error correction code indicator, or a Reliability, Availability, and Serviceability (RAS) indicator.

13 . The method according to claim 12 , wherein the first virtual machine instance and the second virtual machine instance have simultaneous access to the virtual memory in the shared memory pool.

14 . A system, comprising:

a first computing system configured to execute a first virtual machine instance including a virtual central processing unit (vCPU) stored in local memory of the first computing system and using virtual memory located in a shared memory pool, wherein the shared memory pool is accessible to the first computing system and a second computing system; and

the second computing system configured to instantiate a second virtual machine instance by:

receiving and storing information corresponding to the vCPU from the local memory of the first computing system in a second local memory of the second computing system;

using the vCPU stored in the second local memory of the second computing system; and

accessing, by the second virtual machine instance during execution, the virtual memory from the shared memory pool without transferring the virtual memory from the shared memory pool to the local memory of the second computing system.

15 . The system according to claim 14 , wherein the first computing system comprises one or more first servers, wherein the second computing system comprises one or more second servers, and wherein the shared memory pool is physically located outside of the one or more first servers and the one or more second servers.

16 . The system according to claim 15 , wherein the first virtual machine instance and the second virtual machine instance have simultaneous access to the virtual memory in the shared memory pool.

17 . The system according to claim 14 , wherein the first computing system is configured to detect a triggering event for migrating the first virtual machine instance to the second computing system, and wherein the triggering event may include detection of at least one of: an error correction code indicator, or a Reliability, Availability, and Serviceability (RAS) indicator.

18 . The system according to claim 16 , wherein the first virtual machine instance changes the state of a portion of the shared memory pool from a private state to a shared state.

19 . The system according to claim 16 , wherein the first virtual machine instance changes the state of a portion of the shared memory pool from a shared state to a private state.

20 . The system according to claim 16 , wherein the second virtual machine changes the state of a portion of the shared memory pool from a shared state to a private state.