You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CRIU supports the concept of pre-copy migration. Instead of creating a
complete checkpoint of a process it is possible to only write the memory
of the process to disk while the process keeps on running. The first
memory only checkpoint can then be transferred to the migration
destination. During the transfer time it is possible take a second
checkpoint which will only write the memory pages to disk that have
changed since the previous checkpoint. This way it can be possible that
the second checkpoint is much smaller while the process keeps on running
which also means that the amount of data which needs to be transferred
to the migration destination might be smaller and thus the migration
downtime can be reduced. This only makes sense if the number of memory
pages which are changing is rather small. There is no limit on the
number pre-copy iterations.
This commit takes the interface as implemented in runc and implements it
for crun. Podman already uses the pre-dump as implemented by runc.
This commit also makes sure that the underlying software stack supports
the pre-dump mechanism. CRIU uses the kernel's dirty page tracking and
it is not available on all architectures (aarch64 does not implement it)
or might not be enabled in the kernel. If the user wants to use pre-dump
on a system without dirty page tracking crun will fail early and inform
the user.
This crun pre-dump implementation relies on libcriu interfaces which are
not yet part of the latest release (3.16.1). So at least 3.16.2 or 3.17
is required to use pre-dump in combination with crun.
Signed-off-by: Adrian Reber <areber@redhat.com>
0 commit comments