Virtual machine failover with disaggregated shared memory
AssigneeInternational Business Machines Corporation
InventorsDaniel Waddington, Moshik Hershcovitch
Life of this patent
Estimating the term…
Abstract
According to an aspect, a computer-implemented method includes operating a program on a virtual machine on a first device having a local cache memory. Based on a determination that an epoch timer has not expired, aspects include writing one or more updates to the local cache memory and transmitting evicted items from the local cache memory to a shared memory device that is separate from the first device. Based on a determination that an epoch timer has expired, aspects include flushing the local cache memory to the shared memory device, transmitting a virtual CPU state of the virtual machine to the shared memory device, and resetting the epoch timer.
Claims20
A computer-implemented method comprising:
- operating a program on a virtual machine on a first device having a local cache memory, wherein the first device is coupled via a cache-coherent interconnect to a disaggregated shared memory device that is physically separate from the first device, the disaggregated shared memory device storing the entirety of a main memory for the program, and serving as a primary memory for the virtual machine;
- based on a determination that an epoch timer has not expired:
- writing one or more updates to the local cache memory;
- and
- transmitting, over the cache-coherent interconnect, evicted dirty cache lines from the local cache memory directly to the disaggregated shared memory device;
- based on a determination that an epoch timer has expired:
- flushing all dirty cache lines from the local cache memory, over the cache-coherent interconnect, to the disaggregated shared memory device;
- transmitting a virtual CPU state of the virtual machine to the disaggregated shared memory device;
- and
- resetting the epoch timer;
- wherein a duration of the epoch timer is reconfigurable by a hypervisor associated with the virtual machine, and wherein the epoch timer determines the frequency of capturing snapshots of the virtual machine.
A system comprising:
- a memory having computer readable instructions;
- and one or more processors for executing the computer readable instructions, the computer readable instructions controlling the one or more processors to perform operations comprising:
- operating a program on a virtual machine on a first device having a local cache memory, wherein the first device is coupled via a cache-coherent interconnect to a disaggregated shared memory device that is physically separate from the first device, the disaggregated shared memory device storing the entirety of the main memory for the program, and serving as the primary memory for the virtual machine;
- based on a determination that an epoch timer has not expired:
- writing one or more updates to the local cache memory;
- and
- transmitting, evicted dirty cache lines from the local cache memory directly to the disaggregated shared memory device;
- based on a determination that an epoch timer has expired:
- flushing all dirty cache lines from the local cache memory, over the cache coherent interconnect, to the disaggregated shared memory device;
- transmitting a virtual CPU state of the virtual machine to the disaggregated shared memory device;
- and
- resetting the epoch timer;
- wherein a duration of the epoch timer is reconfigurable by a hypervisor associated with the virtual machine, and wherein the epoch timer determines the frequency of capturing snapshots of the virtual machine.
A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform operations comprising:
- operating a program on a virtual machine on a first device having a local cache memory, wherein the first device is coupled via a cache-coherent interconnect to a disaggregated shared memory device that is physically separate from the first device, the disaggregated shared memory device storing the entirety of the main memory for the program, and serving as the primary memory for the virtual machine;
- based on a determination that an epoch timer has not expired:
- writing one or more updates to the local cache memory;
- and
- transmitting, over the cache-coherent interconnect, evicted dirty cache lines from the local cache memory directly to the disaggregated shared memory device that is separate from the first device;
- based on a determination that an epoch timer has expired:
- flushing all dirty cache lines from the local cache memory, over the cache-coherent interconnect, to the disaggregated shared memory device;
- transmitting a virtual CPU state of the virtual machine to the disaggregated shared memory device;
- and
- resetting the epoch timer;
- wherein a duration of the epoch timer is reconfigurable by a hypervisor associated with the virtual machine, and wherein the epoch timer determines the frequency of capturing snapshots of the virtual machine.
Dependencies are inferred from the claim text.