[Devel] [TRD] NFS migration - update 1
Stanislav Kinsburskiy
skinsbursky at virtuozzo.com
Mon Oct 31 05:51:11 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.36.1.vz7.19.1
criu-2.1.0.31-1.vz7
spfs-0.08.0-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 NFS version 3 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)
5. Known issues
Most of NFS restore is done by SPFS (and not by CRIU).
Currently, SPFS doesn't support:
1) Remote locks are not supported. Local locks are supported for NFSv3
_only_ (NFS versions 4 and later don't support local locks at all).
2) Overmounted NFS mount is not supported.
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