# US 2014/0157264 A1 · Virtual Machine-Preserving Host Updates

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

- Number: US 2014/0157264 A1
- Document ID: US20140157264A1
- Status: Published application
- Kind: A1
- Application number: 13/693,532
- Filed: 2012-12-04
- Published: 2014-06-05
- Earliest claimed: 2012-12-04
- Assignees: Microsoft Corporation
- Applicants: Microsoft Corporation
- Inventors: Mark Eugene Russinovich; Melur K. Raghuraman
- Web page: https://patentgrep.com/patent/US20140157264A1

## CPC

- G06F 8/656: while running
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 9/455: Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 9/45545: {Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox}
- G06F 8/63: {Image based installation; Cloning; Build to order}
- G06F 9/44: Arrangements for executing specific programs
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques are described for updating a host operating system on a server while maintaining virtual machines running on the server. An updated host operating system is copied to the server. The currently active host operating system freezes the virtual machines but leaves them resident in RAM. The allocations and state for each virtual machine is copied to RAM or local storage. The active host operating system is shut down. Instead of issuing a command to reboot the server after it finishes shutting down, the active host operating system transfers execution to a loader. The loader reads the kernel of the updated host operating system into RAM along with an allocation map for the virtual machines and instructions to resume the virtual machines. The loader transfers execution to the updated host operating system entry point, and the updated host operating system loads the states of the virtual machines and resumes them.

## Claims

### Claim 1

A computer-implemented method, comprising:
receiving a copy of an updated host operating system on a computer system;
suspending all virtual machines running on the computer system;
recording an allocation map and state for each of the virtual machines;
transferring execution from the active host operating system to a loader;
reading a kernel of updated host operating system into RAM via the loader;
loading the allocation map and state for each of the virtual machines; and
resuming operation of the virtual machines by the updated host operating system.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
leaving the virtual machines resident in RAM when the virtual machines are suspended.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
recording the allocation map and state for the virtual machines to RAM or to local storage.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein transferring execution from the active host operating system to the loader further comprises:
shutting down the active host operating system.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, further comprising:
transferring execution from the active host operating system to the loader as part of the active host operating system shut down, wherein the loader executes in place of rebooting the computer system.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein loading the allocation map and state for each of the virtual machines further comprises:
loading instructions to resume the virtual machines.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising:
maintaining virtual machine caches while the virtual machines are suspended.

### Claim 8

A computer system, comprising:
a processor;
system memory;
one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the processor, causes the processor to perform a method for updating a host operating system, the processor operating to:
load an updated host operating system to the system memory;
suspend virtual machines running on the computer system;
store an allocation map and state for each of the virtual machines to the system memory;
shut down the active host operating system;
transfer execution from the active host operating system to a loader;
load a kernel of updated host operating system into the system memory via the loader;
initialize the updated host operating system;
load the allocation map and state for each of the virtual machines; and
resume operation of the virtual machines by the updated host operating system.

### Claim 9 (depends on 8)

The computer system of claim 8, the processor further operating to:
maintaining the virtual machines resident in system memory when the virtual machines are suspended.

### Claim 10 (depends on 8)

The computer system of claim 8, wherein the system memory is RAM.

### Claim 11 (depends on 8)

The computer system of claim 8, the processor further operating to:
transfer execution from the active host operating system to the loader as part of the active host operating system shut down, wherein the loader executes in place of rebooting the computer system.

### Claim 12 (depends on 8)

The computer system of claim 8, wherein loading the allocation map and state for each of the virtual machines further comprises:
loading instructions to resume the virtual machines.

### Claim 13 (depends on 8)

The computer system of claim 8, the processor further operating to:
maintain virtual machine caches while the virtual machines are suspended.

### Claim 14 (depends on 8)

The computer system of claim 8, wherein the computer system is a resource on a distributed computing environment, and wherein the updated host operating system is loaded from the distributed computing environment.

### Claim 15

A computer program product for implementing a method for updating a host operating system, the computer program product comprising one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by one or more processors of a computer system, cause the computer system to perform the method comprising:
receiving an updated host operating system;
suspending all virtual machines running on the computer system;
recording an allocation map and state for each of the virtual machines;
transferring execution from the active host operating system to a loader;
reading a kernel of updated host operating system into RAM via the loader;
loading the allocation map and state for each of the virtual machines; and
resuming operation of the virtual machines by the updated host operating system.

### Claim 16 (depends on 15)

The computer program product of claim 15, the method further comprising:
leaving the virtual machines resident in RAM when the virtual machines are suspended.

### Claim 17 (depends on 15)

The computer program product of claim 15, the method further comprising:
recording the allocation map and state for the virtual machines to RAM or to local storage.

### Claim 18 (depends on 15)

The computer program product of claim 15, wherein transferring execution from the active host operating system to the loader further comprises:
shutting down the active host operating system.

### Claim 19 (depends on 15)

The computer program product of claim 15, the method further comprising:
transferring execution from the active host operating system to the loader as part of the active host operating system shut down, wherein the loader executes in place of rebooting the computer system.

### Claim 20 (depends on 15)

The computer program product of claim 15, wherein loading the allocation map and state for each of the virtual machines further comprises:
loading instructions to resume the virtual machines.
