Difference between revisions of "Lazy migration"

From CRIU
Jump to navigation Jump to search
Line 27: Line 27:
  
 
Note, that <code>lazy-pages</code> and <code>restore</code> must be run in the same working directory, or <code>--work-dir</code> option should be explicitly set.
 
Note, that <code>lazy-pages</code> and <code>restore</code> must be run in the same working directory, or <code>--work-dir</code> option should be explicitly set.
 +
 +
=== Video ===
 +
 +
To view an example video of using a lazy-pages, please go to https://asciinema.org/a/146427.
  
 
== See also ==
 
== See also ==

Revision as of 23:43, 7 November 2017

Overview

Lazy, or post-copy memory migration, allows to minimize application downtime. Unlike pre-copy memory migration, lazy migration does not copy the task's memory, but rather keeps the memory pages at the source node. Only the minimal task state required to start the application is copied to the destination node and the task is resumed there. When the task accesses missing memory pages, criu processes the page faults, transfers the required page from the source node and injects it into the running task address space.

Using Lazy Migration

Dump

The dump action should be invoked with --lazy-pages option. In addition, --address and --port options may be used to select IP address and port that will be serving the page requests

[src]# criu dump --tree <pid> --images-dir <dir> --lazy-pages --address <src> --port <port>

Copy images

Copy the images onto the destination node:

[src]# scp -r <dir> <dst-node>/<dir>

The images do not contain the massive bulk of the memory dump, they are relatively small and the copy won't take long.

Lazy-pages Daemon

The lazy-pages daemon is responsible for handling the task's page faults and injecting the memory pages into the task's address space. The --page-server option should be set so that lazy-pages daemon will connect to the src node. The --address and --port options should be used to define the IP address and port of the dump side.

[dst]# criu lazy-pages --page-server --address <src> --port <port>

Restore

The restore should be run with --lazy-pages option

[dst]# criu restore --images-dir <dir> --lazy-pages

Note, that lazy-pages and restore must be run in the same working directory, or --work-dir option should be explicitly set.

Video

To view an example video of using a lazy-pages, please go to https://asciinema.org/a/146427.

See also