# US 10,503,492 B2 · Live kernel updating using progressive checkpointing and network tunnels

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

- Number: US 10,503,492 B2
- Document ID: US10503492B2
- Status: Granted
- Kind: B2
- Application number: 15/813,631
- Filed: 2017-11-15
- Published: 2019-05-16
- Granted: 2019-12-10
- Earliest claimed: 2017-11-15
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Frederic Barrat; Dwip N. Banerjee; David Z. Dai; Khalid Filali-Adib
- Web page: https://patentgrep.com/patent/US10503492B2

## CPC

- G06F 8/656: while running
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/4856: {resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence)}
- G06F 9/4868: {with creation or replication}
- H04L 12/4633: {Interconnection of networks using encapsulation techniques, e.g. tunneling}
- H04L 12/4641: {Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272)}
- H04L 45/28: using route fault recovery
- H04L 49/9005: using dynamic buffer space allocation
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- H04L 67/62: Establishing a time schedule for servicing the requests
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Technical solutions are described for performing a live update of an operating system. An example method includes cloning an original root volume group associated with an operating system instance executing in a first logical partition to generate a cloned root volume group for booting a second logical partition. The method further includes applying the update to the cloned root volume group, and booting the second logical partition. The method further includes migrating an application instance, from the original root volume group to the second logical partition. The migration includes creating a network tunnel between the first and second logical partitions, and restarting the application instance on the second logical partition. The migration further includes forwarding data directed to the application instance on the first logical partition to the application instance on the second logical partition, and assigning a network address of the first logical partition to the second logical partition.

## Claims

### Claim 1

A computer-implemented method for performing a live update of an operating system in a data processing system comprising a processor and a memory, the method comprising:
receiving an update to the operating system;
cloning an original root volume group associated with an operating system instance executing in a first logical partition of the data processing system to generate a cloned root volume group for booting a second logical partition of the data processing system;
applying the update to the cloned root volume group to generate an updated and cloned root volume group;
booting the second logical partition of the data processing system using the updated and cloned root volume group;
selecting an application instance, from a plurality of application instances executing on the original root volume group from the first logical partition, to be migrated to the second logical partition;
migrating the application instance, the migration comprising:
creating a network tunnel between the first logical partition and the second logical partition;
creating an entry in a live-kernel update transfer table (LTT) mapping the network tunnel;
restarting the application instance on the second logical partition;
forwarding data directed to the application instance on the first logical partition to the application instance on the second logical partition; and
assigning a network address of the first logical partition to the second logical partition in response to a number of entries in the LTT exceeding a predetermined threshold.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the network tunnel maps a first port associated with the application instance on the first logical partition and the network address of the first logical partition with a second port associated with the application instance on the second logical partition and a network address of the second logical partition.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the application instance is a first application instance, and the method further comprises:
in response to receiving data directed to a second application instance on the first logical partition, forwarding the received data to the second application instance on the first logical partition.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the migration further comprises:
copying an application state of the application instance to the second logical partition prior to creating the network tunnel; and
creating the network tunnel mapping the application instance from the first logical partition to the application instance from the second logical partition further comprises forwarding incremental changes to the application state to the second logical partition.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the application instance is selected for migration based on a priority value assigned to the application instance.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, wherein the priority value is assigned to the application instance based on a quality of service (Qos) agreement associated with the application instance.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the application instance is selected for migration based on a dependency of another application instance on the application instance.

### Claim 8

A system comprising:
a memory; and
a processor coupled with the memory, the processor configured to perform a live update of an operating system in a data processing system, the live update comprising:
receiving an update to the operating system;
cloning an original root volume group associated with an operating system instance executing in a first logical partition of the data processing system to generate a cloned root volume group for booting a second logical partition of the data processing system;
applying the update to the cloned root volume group to generate an updated and cloned root volume group;
booting the second logical partition of the data processing system using the updated and cloned root volume group;
selecting an application instance, from a plurality of application instances executing on the original root volume group from the first logical partition, to be migrated to the second logical partition;
migrating the application instance, the migration comprising:
creating a network tunnel between the first logical partition and the second logical partition;
creating an entry in a live-kernel update transfer table (LTT) mapping the network tunnel;
restarting the application instance on the second logical partition;
forwarding data directed to the application instance on the first logical partition to the application instance on the second logical partition; and
assigning a network address of the first logical partition to the second logical partition in response to a number of entries in the LTT exceeding a predetermined threshold.

### Claim 9 (depends on 8)

The system of claim 8, wherein the network tunnel maps a first port associated with the application instance on the first logical partition and the network address of the first logical partition with a second port associated with the application instance on the second logical partition and a network address of the second logical partition.

### Claim 10 (depends on 8)

The system of claim 8, wherein the live update further comprises:
copying an application state of the application instance to the second logical partition prior to creating the network tunnel; and
creating the network tunnel mapping the application instance from the first logical partition to the application instance from the second logical partition further comprises forwarding incremental changes to the application state to the second logical partition.

### Claim 11 (depends on 8)

The system of claim 8, wherein the application instance is selected for migration based on a priority value assigned to the application instance.

### Claim 12 (depends on 8)

The system of claim 8, wherein the application instance is selected for migration based on a dependency of another application instance on the application instance.

### Claim 13

A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processing circuit to cause the processing circuit to perform a live update of an operating system in a data processing system, the live update comprising:
receiving an update to the operating system;
cloning an original root volume group associated with an operating system instance executing in a first logical partition of the data processing system to generate a cloned root volume group for booting a second logical partition of the data processing system;
applying the update to the cloned root volume group to generate an updated and cloned root volume group;
booting the second logical partition of the data processing system using the updated and cloned root volume group;
selecting an application instance, from a plurality of application instances executing on the original root volume group from the first logical partition, to be migrated to the second logical partition;
migrating the application instance, the migration comprising:
creating a network tunnel between the first logical partition and the second logical partition;
restarting the application instance on the second logical partition; and
forwarding data directed to the application instance on the first logical partition to the application instance on the second logical partition;
assigning a network address of the first logical partition to the second logical partition; and
creating an entry in a live-kernel update transfer table (LTT) mapping the network tunnel, and wherein the network address of the first logical partition is assigned to the second logical partition in response to a number of entries in the LTT exceeding a predetermined threshold.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein the network tunnel maps a first port associated with the application instance on the first logical partition and the network address of the first logical partition with a second port associated with the application instance on the second logical partition and a network address of the second logical partition.

### Claim 15 (depends on 13)

The computer program product of claim 13, wherein the live update further comprises:
copying an application state of the application instance to the second logical partition prior to creating the network tunnel; and
creating the network tunnel mapping the application instance from the first logical partition to the application instance from the second logical partition further comprises forwarding incremental changes to the application state to the second logical partition.
