Brussels / 3 & 4 February 2018


Optimized container live-migration

Incremental live-migration of LXD system containers with CRIU

LXD has supported container migration between hosts for a long time. Recently we have not just implemented optimized transfers of container storage for non-live migration and live migration but also optimized transfers of the container's memory state for the live migration case. This talk will give an overview how live and non-live migration works and what was done to tweak performance.

The LXD daemon supports container migration. It supports non-live migration in which case the container's filesystem will be transferred in an optimized way. In addition to non-live migration LXD has been supporting live migration of containers. This means that volatile process information associated with a given container is migrated in addition to the filesystem. Part of this volatile information is the container's memory state at a given point in time. A container can either be live-migrated by dumping the memory state to disk once and transferring it or by performing a series of memory dumps that aim to minimize the delta between each consecutive dump in order to guarantee an optimized and more reliable way of transferring the container's memory state. This is achieved by making use of CRIU's pre-dump features. This talk will outline the steps that were taken to optimize filesystem and memory transfer when migrating container's between hosts.


Photo of Christian Brauner Christian Brauner
Adrian Reber