# US 2018/0322091 A1 · Using rdma for fast system recovery in virtualized environments

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0322091 A1
- Document ID: US20180322091A1
- Status: Published application
- Kind: A1
- Application number: 16/024,109
- Filed: 2018-06-29
- Published: 2018-11-08
- Earliest claimed: 2013-07-02
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Mohammad Banikazemi; John Alan Bivens; Michael R. Hines
- Web page: https://patentgrep.com/patent/US20180322091A1

## CPC

- G06F 11/1456: {Hardware arrangements for backup}
- G06F 11/203: {using migration}
- G06F 11/2038: {with a single idle spare processing component}
- G06F 11/2048: {where the redundant components share neither address space nor persistent storage}
- G06F 2201/815: Virtual
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method, system and computer program product are disclosed for recovery in a virtualized environment using remote direct memory access (RDMA). In one embodiment, the method comprises operating a virtual computer system on a physical computer system, and the virtual system maintains in a memory area a record of a state of the virtual system. In this method, when defined error conditions occur on the virtual system, RDMA is used to pull the record of the state of the virtual system from that memory area onto a standby computer. This record on the standby computer is used to re-initialize the virtual computer. Embodiments of the invention provide methods that provide a very fast recovery from a virtual machine fault or error, while requiring much fewer resources than standard approaches. In embodiments of the invention, one spare real computer system can be used for backing up several virtual systems.

## Claims

### Claim 1

A method of system recovery in a virtualized computing environment operating on a physical computer system, using remote direct memory access, the method comprising:
operating a virtual computer system on a physical computer system, including the virtual computer system maintaining a record of a state of the virtual computer system at each of a series of checkpoints;
setting up a virtual address space for a communication connection between the virtual computer system and the standby computer system, and mapping local buffers to the virtual space; and
when defined error conditions occur on the virtual computer system, initializing a system recovery procedure for using said virtual address space for pushing the record of the state of the virtual computer system at one of the checkpoints onto the standby computer system using remote direct memory access, including re-initializing an input/output system of the physical computer system.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the setting up a virtual address space for a communication connection between the virtual computer system and the standby computer system includes using verbs of a specified architecture to set up the virtual address space.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the pushing the record of the state of the virtual computer system at one of the checkpoints onto the standby computer system includes the virtual computing system communicating with the standby computer system out of the specified architecture.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the pushing the record of the state of the virtual computer system at one of the checkpoints onto the standby computer system further includes the virtual computer system:
placing a message in a send buffer in a memory space of the virtual computer system;
generating a send request; and
posting the send request in a send queue to indicate that the message has been placed in the send buffer, wherein the message comprises data and control information for the data, and the send request includes information about the message.

### Claim 5 (depends on 4)

The method according to claim 4, wherein the pushing the record of the state of the virtual computer system at one of the checkpoints onto the standby computer system further includes the virtual computer system calling a virtual system interface to send the message to the standby computer system.

### Claim 6 (depends on 5)

The method according to claim 5, further comprising the virtual system interface detecting that the send request has been posted to the send queue.

### Claim 7 (depends on 6)

The method according to claim 6, wherein the calling a virtual system interface includes the virtual system interface reading the send request, retrieving the message, and transferring the message to a memory space of the standby computer system.

### Claim 8 (depends on 1)

The method according to claim 1, wherein the standby computer system is another virtual computer system.

### Claim 9 (depends on 1)

The method according to claim 1, wherein the re-initializing the input/output system includes re-initializing the input/output system by querying a non-volatile RAM.

### Claim 10 (depends on 1)

The method according to claim 1, wherein:
the operating a virtual computer system includes operating a plurality of virtual computer systems on the physical computer system, each of the virtual computer systems maintaining a record of a state of said each virtual computer system at each of a series of checkpoints;
a respective one memory area on the standby computer is reserved for each of the virtual computer systems;
the pushing includes, when the defined error conditions occur on any one of the virtual computer systems, pushing the state of said one of the virtual computer systems onto the one memory area on the standby computer reserved for said one virtual computer system; and
the physical computer system includes an Operating System and a Network Interface card for providing the remote direct memory access, and the method further comprises using the Operating System to re-initialize the Network Interface card after the defined error conditions occur.

### Claim 11

A recovery system for recovery in a virtualized computing environment operating on a physical computer system, using remote direct memory access, wherein a virtual computer system maintains a record of a state of the virtual computer system at each of a series of checkpoints, the recovery system comprising:
one or more processing units configured for:
setting up a virtual address space for a communication connection between the virtual computer system and the standby computer system, and mapping local buffers to the virtual space; and
when defined error conditions occur on the virtual computer system, initializing a system recovery procedure for using said virtual address space for pushing the record of the state of the virtual computer system at one of the checkpoints onto the standby computer system using remote direct memory access, including re-initializing an input/output system of the physical computer system.

### Claim 12 (depends on 11)

The recovery system according to claim 11, wherein the setting up a virtual address space for a communication connection between the virtual computer system and the standby computer system includes using verbs of a specified architecture to set up the virtual address space.

### Claim 13 (depends on 11)

The recovery system according to claim 11, wherein the pushing the record of the state of the virtual computer system at one of the checkpoints onto the standby computer system includes the virtual computing system communicating with the standby computer system out of the specified architecture.

### Claim 14 (depends on 11)

The recovery system according to claim 11, wherein the pushing the record of the state of the virtual computer system at one of the checkpoints onto the standby computer system further includes the virtual computer system:

### Claim 15 (depends on 11)

The recovery system according to claim 11, wherein the physical computer system includes an Operating System and a Network Interface card for providing the remote direct memory access, a plurality of virtual computer systems operate on the physical computer system, each of the virtual computer systems maintaining a record of a state of said each virtual computer system at each of a series of checkpoints, a respective one memory area on the standby computer is reserved for each of the virtual computer systems, and the one or more processing units are configured for:
when the defined error conditions occur on any one of the virtual computer systems, pushing the state of said one of the virtual computer systems onto the one memory area on the standby computer reserved for said one virtual computer system; and
using the Operating System to re-initialize the Network Interface card after the defined error conditions occur.

### Claim 16

An article of manufacture comprising:
at least one tangible computer readable hardware device having computer readable program code logic tangibly embodied therein to provide recovery in a virtualized computing environment operating on a physical computer system, using remote direct memory access, wherein a virtual computer system maintains a record of a state of the virtual computer system at each of a series of checkpoints, the computer readable program code logic, when executing on a computer:
setting up a virtual address space for a communication connection between the virtual computer system and the standby computer system, and mapping local buffers to the virtual space; and
when defined error conditions occur on the virtual computer system, initializing a system recovery procedure for using said virtual address space for pushing the record of the state of the virtual computer system at one of the checkpoints onto the standby computer system using remote direct memory access, including re-initializing an input/output system of the physical computer system.

### Claim 17 (depends on 16)

The article of manufacture according to claim 16, wherein the setting up a virtual address space for a communication connection between the virtual computer system and the standby computer system includes using verbs of a specified architecture to set up the virtual address space.

### Claim 18 (depends on 16)

The article of manufacture according to claim 16, wherein the pushing the record of the state of the virtual computer system at one of the checkpoints onto the standby computer system includes the virtual computing system communicating with the standby computer system out of the specified architecture.

### Claim 19 (depends on 16)

The article of manufacture according to claim 16, wherein the pushing the record of the state of the virtual computer system at one of the checkpoints onto the standby computer system further includes the virtual computer system:

### Claim 20 (depends on 16)

The article of manufacture according to claim 16, wherein the physical computer system includes an Operating System and a Network Interface card for providing the remote direct memory access, a plurality of virtual computer systems operate on the physical computer system, each of the virtual computer systems maintaining a record of a state of said each virtual computer system at each of a series of checkpoints, a respective one memory area on the standby computer is reserved for each of the virtual computer systems, and the one or more processing units are configured for:
when the defined error conditions occur on any one of the virtual computer systems, pushing the state of said one of the virtual computer systems onto the one memory area on the standby computer reserved for said one virtual computer system; and
using the Operating System to re-initialize the Network Interface card after the defined error conditions occur.
