IP Library Granted Patent US 10,824,466
Granted Patent B2
US 10,824,466 · App. 16/142,002 · Granted Nov 3, 2020

Container migration

Inventors: Joel Kelly Nider (Zichron Yaakov, IL); Michael Rapoport (Haifa, IL)
Assignee: International Business Machines Corporation
G06F9/4856H04L67/10
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 10,824,466
App. No.
16/142,002
Granted
Nov 3, 2020
Kind
B2
Abstract

In some examples, a system for container migration can include a processor to detect a remote direct memory access (RDMA) enabled network interface controller that supports an on-demand paging feature within the system and within the target device. The processor can also detect a container to be migrated to the target device, the container comprising one or more processes being executed by the system. Additionally, the processor can implement migration procedures on the system and detect, via a kernel component of an operating system, a process identifier of each of the one or more processes to be migrated, wherein the operating system is stored in memory of the system. Furthermore, the processor can modify the system to transmit page fault data for each of the one or more processes migrated to the target device.

Claims (49)

1. A system for transmitting containers to a target device comprising:

a remote direct memory access (RDMA) enabled network interface controller (NIC) that supports an on-demand paging feature; and

a processor to:

detect a container to be migrated to the target device, the container comprising one or more processes being executed by the system;

implement migration procedures on the system, wherein the migration procedures comprise migrating a virtual address space of each of the one or more processes from the source machine to the target machine;

detect, via a kernel component of an operating system, a process identifier of each of the one or more processes to be migrated, wherein the operating system is stored in memory of the system; and

modify the system to transmit page fault data for the one or more processes migrated to the target device, wherein modifying the system comprises initiating a transmission protocol and registering a memory region comprising the virtual address space of each of the one or more processes to be migrated to the target device;

wherein the RDMA enabled NIC comprises memory that stores a page table for each of the one or more processes;

wherein the RDMA enabled NIC is to receive an RDMA request from the target device in response to a page fault on the target device, the RDMA request comprising the process identifier of the process that generated the page fault and one or more virtual addresses associated with the page fault; and

wherein, in response to the RDMA request, the RDMA enabled NIC is to translate the one or more virtual addresses to corresponding physical addresses using the page table corresponding to the received process identifier, access contents of the corresponding physical addresses, and send the contents to the target machine as an RDMA response.

2. The system of claim 1 , wherein the migration procedures comprise:

suspending the one or more processes of the container;

determining the target device is to receive the page fault data corresponding to migration of the one or more processes; and

transferring context data comprising a runtime stack, register values corresponding to the one or more processes, and a list of open files.

3. The system of claim 1 , wherein the transmission protocol comprises an Ethernet protocol or an Infiniband protocol.

4. The system of claim 3 , wherein the transmission protocol comprises a RDMA queue pair indicating a reliable connection and a connected type.

5. The system of claim 1 , wherein the processor is to exclude a range of memory addresses from the virtual address space, the range of memory addresses corresponding to invalid memory addresses or previously transmitted memory addresses.

6. The system of claim 1 , wherein the system is a node in a supercomputer, a server providing a remote service, a desktop computer device, or a mobile device.

7. A system for receiving containers comprising:

a processor to:

detect a remote direct memory access (RDMA) enabled network interface controller that supports an on-demand paging feature within the system and within a source device;

register a process identifier for one or more processes of a container migrated from the source device to the system;

receive a migration of a virtual address space of each of the one or more processes from the source machine to the system;

resume execution of the one or more processes of the container on the system;

detect a memory page fault during execution of the one or more processes;

send a message to the source device to retrieve missing data corresponding to the memory page fault and simultaneously map an empty memory page to a virtual address of the one or more processes that generated the memory page fault, wherein the message comprises the process identifier of the process that generated the memory page fault and one or more virtual addresses associated with the memory page fault;

retrieve, via the RDMA enabled network interface controller, the missing data from the source device corresponding to the memory page fault, wherein the source device translates the one or more virtual addresses associated with the memory page fault to physical addresses of the source device; and

execute the one or more processes based on the missing data from the source device.

8. The system of claim 7 , wherein the processor is to modify an operating system to include a page fault mechanism that generates a notification of the memory page fault.

9. The system of claim 7 , wherein the processor is to register the empty memory page.

10. The system of claim 7 , wherein the processor is to mark the memory page fault as addressed in response to receiving the missing data from the source device.

11. The system of claim 7 , wherein the processor is to initiate a transmission protocol to receive the missing data associated with the one or more processes from the source device.

12. The system of claim 11 , wherein the processor is to determine a transmission connection corresponding to the transmission protocol and the process identifier for the one or more processes that generated the memory page fault.

13. The system of claim 7 , wherein the system is a node in a supercomputer, a server providing a remote service, a desktop computer device, or a mobile device.

14. A method for receiving containers comprising:

detecting a remote direct memory access (RDMA) enabled network interface controller that supports an on-demand paging feature within a system and within a source device;

registering a process identifier for one or more processes of a container migrated from the source device to the system;

receiving a migration of a virtual address space of each of the one or more processes from the source machine to the system;

resuming execution of the one or more processes of the container on the system;

detecting a memory page fault during execution of the one or more processes;

sending a message to the source device to retrieve missing data corresponding to the memory page fault and simultaneously map an empty memory page to a virtual address of the one or more processes that generated the memory page fault, wherein the message comprises the process identifier of the process that generated the memory page fault and one or more virtual addresses associated with the memory page fault;

retrieving, via the RDMA enabled network interface controller, the missing data from the source device corresponding to the memory page fault, wherein the source device translates the one or more virtual addresses associated with the memory page fault to physical addresses of the source device; and

executing the one or more processes based on the missing data from the source device.

15. The method of claim 14 , comprising modifying an operating system to include a page fault mechanism that generates a notification of the memory page fault.

16. The method of claim 14 , comprising registering the empty memory page.

17. The method of claim 14 , comprising marking the memory page fault as addressed in response to receiving the missing data from the source device.

18. The method of claim 14 , comprising initiating a transmission protocol to receive the missing data associated with the one or more processes from the source device.

19. The method of claim 18 , comprising determining a transmission connection corresponding to the transmission protocol and the process identifier for the one or more processes that generated the memory page fault.

20. The method of claim 14 , wherein the system is a node in a supercomputer, a server providing a remote service, a desktop computer device, or a mobile device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2018
From: NIDER, JOEL KELLY; RAPOPORT, MICHAEL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046969/0301 →
Continuity (1)
Related Publication 20200097323A1 · Mar 26, 2020