[Devel] [TRD] NFS migration
Stanislav Kinsburskiy
skinsbursky at virtuozzo.com
Fri May 27 03:09:01 PDT 2016
1. Feature
NFS mount point migration via CRIU
https://jira.sw.ru/browse/PSBM-26967
2. Description
CRIU now supports NFS file system migration (all versions).
CRIU itself does mount of SPFS file system (fuse based) instead of NFS
and starts SPFS manager program.
SPFS-manager does NFS remount and replaces SPFS by NFS on a running
container.
3. Products
Virtuozzo 7
Packages versions (or later):
vzkernel-3.10.0-327.18.2.vz7.14.5
criu-2.1.0.31-1.vz7
spfs-0.03.2-1.vz7
libvzctl-7.0.217
4. Testing
4.1 Basics
** Install criu, libvzctl and spfs packages
** Create a container
** Enable NFS support in container (see man vzctl)
** Install NFS package inside the container (nfs-utils in case of
rpm-based distribution)
** Mount NFS share within container
** Suspend and resume container.
** Wait till all SPFS-related processes exited ("spfs" and
"spfs-manager").
** Check, that NFS mount point is restored.
4.2 Process, using NFS
** Mount NFS share
** Start some program, using NFS files (criu has zdtm test suite for
such purpose)
** Suspend and restore container
** Wait till all SPFS-related processes exited ("spfs" and
"spfs-manager").
** Check, that processes, using NFS, are running correctly (in case
of zdtm test suite, stop the test and check result)
4.3. Multiple suspend/resume
** Mount NFS share
** Start some program, using NFS files (criu has zdtm test suite for
such purpose)
** Do suspend and restore of a container multiple times
** Wait till all SPFS-related processes exited ("spfs" and
"spfs-manager").
** Check, that processes, using NFS, are running correctly (in case
of zdtm test suite, stop the test and check result)
4.4. Multiple different NFS shares
** Mount NFS share A
** Mount NFS share B
** Start some program, using NFS A files (criu has zdtm test suite
for such purpose)
** Start some program, using NFS B files (criu has zdtm test suite
for such purpose)
** Do suspend and restore of a container
** Wait till all SPFS-related processes exited ("spfs" and
"spfs-manager").
** Check, that processes, using NFS, are running correctly (in case
of zdtm test suite, stop the test and check result)
4.5. Multiple equal NFS shares
** Mount NFS share A
** Bind-mount NFS A to some other directory (NFS B) inside the container
** Start some program, using NFS A files (criu has zdtm test suite
for such purpose)
** Start some program, using NFS B files (criu has zdtm test suite
for such purpose)
** Do suspend and restore of a container
** Wait till all SPFS-related processes exited ("spfs" and
"spfs-manager").
** Check, that processes, using NFS, are running correctly (in case
of zdtm test suite, stop the test and check result)
** Check, that NFS A and NFS B have equal super block (device id)
4.6. Processes, using NFS
** Mount NFS share
** Start all the programs supported by SPFS (see below), using NFS
files (criu has zdtm test suite for such purpose)
** Suspend and restore container
** Wait till all SPFS-related processes exited ("spfs" and
"spfs-manager").
** Check, that processes, using NFS, are running correctly (in case
of zdtm test suite, stop the test and check result)
4.7. MIgrate different NFS versions of NFS (v3, v4, v4.1) without locks
support
** Mount NFS share
** Start all the programs supported by SPFS (see below), using NFS
files (criu has zdtm test suite for such purpose)
** Suspend and restore container
** Wait till all SPFS-related processes exited ("spfs" and
"spfs-manager").
** Check, that processes, using NFS, are running correctly (in case
of zdtm test suite, stop the test and check result)
** Repeat with different version
4.8. Migrate different NFS versions of NFS (v3, v4, v4.1) with locks support
** Mount NFS share
** Start all the programs supported by SPFS (see below), using NFS
files (criu has zdtm test suite for such purpose)
** Suspend and restore container
** Wait till all SPFS-related processes exited ("spfs" and
"spfs-manager").
** Check, that processes, using NFS, are running correctly (in case
of zdtm test suite, stop the test and check result)
** Repeat with different version
5. Known issues
Most of NFS restore is done by SPFS (and not by CRIU).
Currently, SPFS doesn't support:
1) Fifo migration (will be restored without content)
2) Unix socket migration (will be restored without content)
3) Unlinked files (will be restored, but files won't be unlinked)
6. What was checked by developer
From 4.1 to 4.5.
7. Feature owners
skinsbursky at virtuozzo.com
More information about the Devel
mailing list