Live migration

From CRIU
Revision as of 15:08, 14 March 2013 by Xemul (talk | contribs) (Initial article)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The crtools utility can be used to perform live migration of apps or containers. This page is a sort of HOWTO describing this.

In order to live-migrate an application or a container you should make sure, that files, that are/can be accessed by processes you're migrating are available on both nodes -- source and destination. This can be achieved by using either shared file-system such as NFS, GlusterFS or CEPH, or by using rsync to copy files from one box to another. Further in this article we assume, that the file-system is the same on both sides.

So, in order to live migrate tasks you should do these steps:

step 1
Take tasks you're about to migrate and dump them into some place, asking crtools to leave them in stopped state after dump:
# crtools dump --tree <pid> --images-dir <path-to-existing-directory> --leave-stopped

The directory you put images to can reside on the shared file-system if you're using one. In this case you can proceed to step 3.

step 2
Copy images to destination node
# scp -r <path-to-images-dir> <dst-node>/<path-to-images>
step 3
Go to the destination node and restore the apps from images on it
# crtools restore --tree <pid> --images-dir <path-to-images>
step 4
If everything went OK you can return on the source node and kill stopped tasks on it.