2013-05-01 20:21:50 -07:00
|
|
|
CRIU(8)
|
2013-05-01 20:21:47 -07:00
|
|
|
=======
|
2016-03-16 18:26:00 +03:00
|
|
|
include::footer.txt[]
|
2012-01-28 18:45:28 +04:00
|
|
|
|
|
|
|
NAME
|
|
|
|
----
|
2013-05-01 20:21:47 -07:00
|
|
|
criu - checkpoint/restore in userspace
|
2012-01-28 18:45:28 +04:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
|
2012-01-28 18:45:28 +04:00
|
|
|
SYNOPSIS
|
|
|
|
--------
|
2016-09-23 12:08:14 -07:00
|
|
|
*criu* 'command' ['option' ...]
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
|
2012-01-28 18:45:28 +04:00
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
-----------
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*criu* is a tool for checkpointing and restoring running applications.
|
2016-09-23 12:08:14 -07:00
|
|
|
It does this by saving their state as a collection of files (see the *dump*
|
|
|
|
command) and creating equivalent processes from those files (see the *restore*
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
command). The restore operation can be performed at a later time,
|
|
|
|
on a different system, or both.
|
2012-01-28 18:45:28 +04:00
|
|
|
|
2013-05-01 20:21:52 -07:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
OPTIONS
|
|
|
|
-------
|
2014-02-21 22:14:02 +04:00
|
|
|
|
2020-01-30 15:27:07 -08:00
|
|
|
Most of the long flags can be
|
|
|
|
prefixed with *no-* to negate the option (example: *--display-stats*
|
2017-04-05 17:01:29 +02:00
|
|
|
and *--no-display-stats*).
|
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
Common options
|
|
|
|
~~~~~~~~~~~~~~
|
2016-09-23 12:08:14 -07:00
|
|
|
Common options are applicable to any 'command'.
|
2013-05-01 20:21:52 -07:00
|
|
|
|
2017-06-20 15:14:08 +02:00
|
|
|
*-v*[*v*...], *--verbosity*::
|
2020-01-30 15:27:07 -08:00
|
|
|
Increase verbosity up from the default level. In case of short option,
|
|
|
|
multiple *v* can be used, each increasing verbosity by one.
|
2017-02-10 06:56:00 +03:00
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
**-v**__num__, **--verbosity=**__num__::
|
|
|
|
Set verbosity level to _num_. The higher the level, the more output
|
2017-02-10 06:56:00 +03:00
|
|
|
is produced.
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
+
|
|
|
|
The following levels are available:
|
2017-02-10 06:56:00 +03:00
|
|
|
* *-v0*
|
|
|
|
no output;
|
|
|
|
* *-v1*
|
|
|
|
only errors;
|
|
|
|
* *-v2*
|
|
|
|
above plus warnings (this is the default level);
|
|
|
|
* *-v3*
|
|
|
|
above plus information messages and timestamps;
|
|
|
|
* *-v4*
|
|
|
|
above plus lots of debug.
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
|
2017-06-20 15:14:11 +02:00
|
|
|
*--config* 'file'::
|
|
|
|
Pass a specific configuration file to criu.
|
|
|
|
|
|
|
|
*--no-default-config*::
|
2020-01-30 15:27:07 -08:00
|
|
|
Disable parsing of default configuration files.
|
2017-06-20 15:14:11 +02:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*--pidfile* 'file'::
|
|
|
|
Write root task, service or page-server pid into a 'file'.
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*-o*, *--log-file* 'file'::
|
2020-01-30 15:27:07 -08:00
|
|
|
Write logging messages to a 'file'.
|
2013-05-01 20:21:52 -07:00
|
|
|
|
2016-10-13 10:41:00 +03:00
|
|
|
*--display-stats*::
|
2020-01-30 15:27:07 -08:00
|
|
|
During dump, as well as during restore, *criu* collects some statistics,
|
|
|
|
like the time required to dump or restore the process, or the
|
2016-10-13 10:41:00 +03:00
|
|
|
number of pages dumped or restored. This information is always
|
2020-01-30 15:27:07 -08:00
|
|
|
saved to the *stats-dump* and *stats-restore* files, and can
|
|
|
|
be shown using *crit*(1). The option *--display-stats*
|
|
|
|
prints out this information on the console at the end
|
|
|
|
of a dump or restore operation.
|
2016-10-13 10:41:00 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*-D*, *--images-dir* 'path'::
|
|
|
|
Use 'path' as a base directory where to look for sets of image files.
|
2013-05-01 20:21:52 -07:00
|
|
|
|
2020-05-21 17:40:17 +00:00
|
|
|
*--stream*::
|
|
|
|
dump/restore images using criu-image-streamer.
|
|
|
|
See https://github.com/checkpoint-restore/criu-image-streamer for detailed
|
|
|
|
usage.
|
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*--prev-images-dir* 'path'::
|
|
|
|
Use 'path' as a parent directory where to look for sets of image files.
|
|
|
|
This option makes sense in case of incremental dumps.
|
2013-05-01 20:21:52 -07:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*-W*, *--work-dir* 'dir'::
|
|
|
|
Use directory 'dir' for putting logs, pidfiles and statistics. If not
|
|
|
|
specified, 'path' from *-D* option is taken.
|
2013-05-01 20:21:52 -07:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*--close* 'fd'::
|
|
|
|
Close file descriptor 'fd' before performing any actions.
|
2013-11-01 14:29:12 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*-L*, *--libdir* 'path'::
|
|
|
|
Path to plugins directory.
|
2014-02-21 22:14:01 +04:00
|
|
|
|
2020-02-18 19:45:08 +00:00
|
|
|
*--enable-fs* ['fs'[,'fs'...]]::
|
|
|
|
Specify a comma-separated list of filesystem names that should
|
|
|
|
be auto-detected. The value 'all' enables auto-detection for
|
|
|
|
all filesystems.
|
|
|
|
+
|
|
|
|
Note: This option is not safe, use at your own risk.
|
|
|
|
Auto-detecting a filesystem mount assumes that the mountpoint can
|
|
|
|
be restored with *mount(src, mountpoint, flags, options)*. When used,
|
|
|
|
*dump* is expected to always succeed if a mountpoint is to be
|
|
|
|
auto-detected, however *restore* may fail (or do something wrong)
|
|
|
|
if the assumption for restore logic is incorrect. This option is
|
2022-03-30 18:45:16 -07:00
|
|
|
not compatible with *--external* *dev*.
|
2020-02-18 19:45:08 +00:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*--action-script* 'script'::
|
|
|
|
Add an external action script to be executed at certain stages.
|
|
|
|
The environment variable *CRTOOLS_SCRIPT_ACTION* is available
|
|
|
|
to the script to find out which action is being executed, and
|
|
|
|
its value can be one of the following:
|
|
|
|
*pre-dump*:::
|
|
|
|
run prior to beginning a *dump*
|
2015-10-08 16:21:00 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*post-dump*:::
|
|
|
|
run upon *dump* completion
|
2014-10-01 18:56:41 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*pre-restore*:::
|
|
|
|
run prior to beginning a *restore*
|
2015-10-08 16:21:00 +03:00
|
|
|
|
2019-02-12 22:59:12 +00:00
|
|
|
*post-restore*:::
|
|
|
|
run upon *restore* completion
|
|
|
|
|
2017-01-18 12:02:05 +03:00
|
|
|
*pre-resume*:::
|
|
|
|
run when all processes and resources are
|
|
|
|
restored but tasks are stopped waiting for
|
|
|
|
final kick to run. Must not fail.
|
|
|
|
|
2019-02-12 22:59:12 +00:00
|
|
|
*post-resume*:::
|
|
|
|
called at the very end, when everything is
|
|
|
|
restored and processes were resumed
|
2014-10-01 18:56:41 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*network-lock*:::
|
|
|
|
run to lock network in a target network namespace
|
2012-01-28 18:45:28 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*network-unlock*:::
|
|
|
|
run to unlock network in a target network namespace
|
2012-01-28 18:45:28 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*setup-namespaces*:::
|
2019-02-12 22:59:12 +00:00
|
|
|
run once root task has just been created
|
2016-09-23 12:08:14 -07:00
|
|
|
with required namespaces. Note it is an early stage
|
2019-02-12 22:59:12 +00:00
|
|
|
of restore, when nothing is restored yet, except for
|
|
|
|
namespaces themselves
|
|
|
|
|
|
|
|
*post-setup-namespaces*:::
|
|
|
|
called after the namespaces are configured
|
|
|
|
|
|
|
|
*orphan-pts-master*:::
|
|
|
|
called after master pty is opened and unlocked. This
|
|
|
|
hook can be used only in the RPC mode, and the
|
|
|
|
notification message contains a file descriptor for
|
|
|
|
the master pty
|
2015-04-03 18:03:46 +03:00
|
|
|
|
2022-03-31 06:59:34 -07:00
|
|
|
*query-ext-files*:::
|
|
|
|
called after the process tree is stopped and network is locked.
|
|
|
|
This hook is used only in the RPC mode. The notification reply
|
|
|
|
contains file ids to be added to external file list (may be empty).
|
|
|
|
|
2021-05-03 14:14:28 +00:00
|
|
|
*--unprivileged*::
|
|
|
|
This option tells *criu* to accept the limitations when running
|
|
|
|
as non-root. Running as non-root requires *criu* at least to have
|
|
|
|
*CAP_SYS_ADMIN* or *CAP_CHECKPOINT_RESTORE*. For details about running
|
|
|
|
*criu* as non-root please consult the *NON-ROOT* section.
|
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*-V*, *--version*::
|
|
|
|
Print program version and exit.
|
2014-02-21 22:14:03 +04:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*-h*, *--help*::
|
2016-09-23 12:08:14 -07:00
|
|
|
Print some help and exit.
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
|
|
|
|
*pre-dump*
|
|
|
|
~~~~~~~~~~
|
2016-09-23 12:08:14 -07:00
|
|
|
Performs the pre-dump procedure, during which *criu* creates a snapshot of
|
|
|
|
memory changes since the previous *pre-dump*. Note that during this
|
|
|
|
*criu* also creates the fsnotify cache which speeds up the *restore*
|
|
|
|
procedure. *pre-dump* requires at least *-t* option (see *dump* below).
|
|
|
|
In addition, *page-server* options may be specified.
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
|
|
|
|
*--track-mem*::
|
|
|
|
Turn on memory changes tracker in the kernel. If the option is
|
|
|
|
not passed the memory tracker get turned on implicitly.
|
|
|
|
|
2019-10-03 19:39:18 +05:30
|
|
|
*--pre-dump-mode*='mode'::
|
|
|
|
There are two 'mode' to operate pre-dump algorithm. The 'splice' mode
|
|
|
|
is parasite based, whereas 'read' mode is based on process_vm_readv
|
|
|
|
syscall. The 'read' mode incurs reduced frozen time and reduced
|
|
|
|
memory pressure as compared to 'splice' mode. Default is 'splice' mode.
|
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*dump*
|
|
|
|
~~~~~~
|
2016-09-23 12:08:14 -07:00
|
|
|
Performs a checkpoint procedure.
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*-t*, *--tree* 'pid'::
|
|
|
|
Checkpoint the whole process tree starting from 'pid'.
|
2012-04-16 20:36:00 +04:00
|
|
|
|
2013-11-01 00:50:49 +04:00
|
|
|
*-R*, *--leave-running*::
|
2016-09-23 12:08:14 -07:00
|
|
|
Leave tasks in running state after checkpoint, instead of killing. This
|
|
|
|
option is pretty dangerous and should be used only if you understand
|
2013-11-01 00:50:49 +04:00
|
|
|
what you are doing.
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
+
|
2016-09-23 12:08:14 -07:00
|
|
|
Note if task is about to run after been checkpointed, it can modify
|
|
|
|
TCP connections, delete files and do other dangerous actions. Therefore,
|
|
|
|
*criu* can not guarantee that the next *restore* action will succeed.
|
|
|
|
Most likely if this option is used, at least the file system snapshot
|
|
|
|
must be made with the help of *post-dump* action script.
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
+
|
2016-09-23 12:08:14 -07:00
|
|
|
In other words, do not use it unless really needed.
|
2014-09-30 21:18:46 +04:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*-s*, *--leave-stopped*::
|
2016-09-23 12:08:14 -07:00
|
|
|
Leave tasks in stopped state after checkpoint, instead of killing.
|
2014-09-30 21:18:46 +04:00
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--external* __type__**[**__id__**]:**__value__::
|
2016-11-02 10:59:12 -07:00
|
|
|
Dump an instance of an external resource. The generic syntax is
|
|
|
|
'type' of resource, followed by resource 'id' (enclosed in literal
|
2019-01-17 08:43:31 +00:00
|
|
|
square brackets), and optional 'value' (prepended by a literal colon).
|
2016-11-02 10:59:12 -07:00
|
|
|
The following resource types are currently supported: *mnt*, *dev*,
|
|
|
|
*file*, *tty*, *unix*. Syntax depends on type.
|
|
|
|
Note to restore external resources, either *--external* or *--inherit-fd*
|
|
|
|
is used, depending on resource type.
|
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--external* **mnt[**__mountpoint__**]:**__name__::
|
2016-11-02 10:59:12 -07:00
|
|
|
Dump an external bind mount referenced by 'mountpoint', saving it
|
|
|
|
to image under the identifier 'name'.
|
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--external* **mnt[]:**__flags__::
|
2016-11-02 10:59:12 -07:00
|
|
|
Dump all external bind mounts, autodetecting those. Optional 'flags'
|
|
|
|
can contain *m* to also dump external master mounts, *s* to also
|
|
|
|
dump external shared mounts (default behavior is to abort dumping
|
2019-01-17 08:43:31 +00:00
|
|
|
if such mounts are found). If 'flags' are not provided, colon
|
2016-11-02 10:59:12 -07:00
|
|
|
is optional.
|
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--external* **dev[**__major__**/**__minor__**]:**__name__::
|
2016-11-02 10:59:12 -07:00
|
|
|
Allow to dump a mount namespace having a real block device mounted.
|
|
|
|
A block device is identified by its 'major' and 'minor' numbers,
|
|
|
|
and *criu* saves its information to image under the identifier 'name'.
|
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--external* **file[**__mnt_id__**:**__inode__**]**::
|
2016-11-02 10:59:12 -07:00
|
|
|
Dump an external file, i.e. an opened file that is can not be resolved
|
|
|
|
from the current mount namespace, which can not be dumped without using
|
|
|
|
this option. The file is identified by 'mnt_id' (a field obtained from
|
2020-01-30 15:30:57 -08:00
|
|
|
**/proc/**__pid__**/fdinfo/**__N__) and 'inode' (as returned by
|
|
|
|
*stat*(2)).
|
2016-11-02 10:59:12 -07:00
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--external* **tty[**__rdev__**:**__dev__**]**::
|
2016-11-02 10:59:12 -07:00
|
|
|
Dump an external TTY, identified by *st_rdev* and *st_dev* fields
|
|
|
|
returned by *stat*(2).
|
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--external* **unix[**__id__**]**::
|
2016-11-02 10:59:12 -07:00
|
|
|
Tell *criu* that one end of a pair of UNIX sockets (created by
|
2020-01-30 15:30:57 -08:00
|
|
|
*socketpair*(2)) with the given _id_ is OK to be disconnected.
|
2016-11-02 10:59:12 -07:00
|
|
|
|
2021-09-20 13:50:08 +01:00
|
|
|
*--external* **net[**__inode__**]:**__name__::
|
|
|
|
Mark a network namespace as external and do not include it in the
|
|
|
|
checkpoint. The label 'name' can be used with *--inherit-fd* during
|
|
|
|
restore to specify a file descriptor to a preconfigured network
|
|
|
|
namespace.
|
|
|
|
|
2020-05-05 16:19:50 +00:00
|
|
|
*--external* **pid[**__inode__**]:**__name__::
|
|
|
|
Mark a PID namespace as external. This can be later used to restore
|
|
|
|
a process into an existing PID namespace. The label 'name' can be
|
|
|
|
used to assign another PID namespace during restore with the help
|
|
|
|
of *--inherit-fd*.
|
|
|
|
|
2015-09-07 12:29:00 +03:00
|
|
|
*--freeze-cgroup*::
|
|
|
|
Use cgroup freezer to collect processes.
|
2014-09-30 21:18:46 +04:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*--manage-cgroups*::
|
|
|
|
Collect cgroups into the image thus they gonna be restored then.
|
2016-09-23 12:08:14 -07:00
|
|
|
Without this option, *criu* will not save cgroups configuration
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
associated with a task.
|
2014-01-31 13:05:44 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*--cgroup-props* 'spec'::
|
|
|
|
Specify controllers and their properties to be saved into the
|
|
|
|
image file. *criu* predefines specifications for common controllers,
|
2016-05-13 23:03:44 +03:00
|
|
|
but since the kernel can add new controllers and modify their
|
2016-09-23 12:08:14 -07:00
|
|
|
properties, there should be a way to specify ones matched the kernel.
|
2016-05-13 23:03:44 +03:00
|
|
|
+
|
2016-09-23 12:08:14 -07:00
|
|
|
'spec' argument describes the controller and properties specification in
|
|
|
|
a simplified YAML form:
|
2016-05-13 23:03:44 +03:00
|
|
|
+
|
|
|
|
----------
|
|
|
|
"c1":
|
|
|
|
- "strategy": "merge"
|
|
|
|
- "properties": ["a", "b"]
|
|
|
|
"c2":
|
|
|
|
- "strategy": "replace"
|
|
|
|
- "properties": ["c", "d"]
|
|
|
|
----------
|
|
|
|
+
|
2016-09-23 12:08:14 -07:00
|
|
|
where 'c1' and 'c2' are controllers names, and 'a', 'b', 'c', 'd' are
|
2016-05-13 23:03:44 +03:00
|
|
|
their properties.
|
|
|
|
+
|
2016-09-23 12:08:14 -07:00
|
|
|
Note the format: double quotes, spaces and new lines are required.
|
|
|
|
The 'strategy' specifies what to do if a controller specified already
|
|
|
|
exists as a built-in one: *criu* can either *merge* or *replace* such.
|
2016-05-13 23:03:44 +03:00
|
|
|
+
|
2016-09-23 12:08:14 -07:00
|
|
|
For example, the command line for the above example should look like this:
|
2016-05-13 23:03:44 +03:00
|
|
|
+
|
|
|
|
----------
|
|
|
|
--cgroup-props "\"c1\":\n - \"strategy\": \"merge\"\n - \"properties\": [\"a\", \"b\"]\n \"c2\":\n - \"strategy\": \"replace\"\n - \"properties\": [\"c\", \"d\"]"
|
|
|
|
----------
|
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*--cgroup-props-file* 'file'::
|
|
|
|
Same as *--cgroup-props*, except the specification is read from
|
|
|
|
the 'file'.
|
2016-05-13 23:03:44 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*--cgroup-dump-controller* 'name'::
|
|
|
|
Dump a controller with 'name' only, skipping anything else that was
|
|
|
|
discovered automatically (usually via */proc*). This option is
|
|
|
|
useful when one needs *criu* to skip some controllers.
|
2016-05-13 23:03:00 +03:00
|
|
|
|
2019-08-08 18:49:13 +02:00
|
|
|
*--cgroup-yard* 'path'::
|
|
|
|
Instead of trying to mount cgroups in CRIU, provide a path to a directory
|
|
|
|
with already created cgroup yard. Useful if you don't want to grant
|
|
|
|
CAP_SYS_ADMIN to CRIU. For every cgroup mount there should be exactly one
|
|
|
|
directory. If there is only one controller in this mount, the dir's name
|
|
|
|
should be just the name of the controller. If there are multiple controllers
|
|
|
|
comounted, the directory name should have them be separated by a comma.
|
|
|
|
+
|
|
|
|
For example, if */proc/cgroups* looks like this:
|
|
|
|
+
|
|
|
|
----------
|
|
|
|
#subsys_name hierarchy num_cgroups enabled
|
|
|
|
cpu 1 1 1
|
|
|
|
devices 2 2 1
|
|
|
|
freezer 2 2 1
|
|
|
|
----------
|
|
|
|
+
|
|
|
|
then you can create the cgroup yard by the following commands:
|
|
|
|
+
|
|
|
|
----------
|
|
|
|
mkdir private_yard
|
|
|
|
cd private_yard
|
|
|
|
mkdir cpu
|
|
|
|
mount -t cgroup -o cpu none cpu
|
|
|
|
mkdir devices,freezer
|
|
|
|
mount -t cgroup -o devices,freezer none devices,freezer
|
|
|
|
----------
|
2016-05-13 23:03:44 +03:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*--tcp-established*::
|
|
|
|
Checkpoint established TCP connections.
|
2012-01-28 18:45:28 +04:00
|
|
|
|
2020-09-20 20:54:13 +03:00
|
|
|
*--tcp-close*::
|
2021-10-04 20:38:34 +07:00
|
|
|
Don't dump the state of, or block, established tcp connections
|
|
|
|
(including the connection is once established but now closed).
|
2020-09-20 20:54:13 +03:00
|
|
|
This is useful when tcp connections are not going to be restored.
|
|
|
|
|
2016-06-20 23:15:00 +03:00
|
|
|
*--skip-in-flight*::
|
2016-09-23 12:08:14 -07:00
|
|
|
This option skips in-flight TCP connections. If any TCP connections
|
|
|
|
that are not yet completely established are found, *criu* ignores
|
|
|
|
these connections, rather than errors out.
|
2016-06-20 23:15:00 +03:00
|
|
|
The TCP stack on the client side is expected to handle the
|
|
|
|
re-connect gracefully.
|
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*--evasive-devices*::
|
|
|
|
Use any path to a device file if the original one is inaccessible.
|
|
|
|
|
|
|
|
*--page-server*::
|
2016-09-23 12:08:14 -07:00
|
|
|
Send pages to a page server (see the *page-server* command).
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
|
|
|
|
*--force-irmap*::
|
|
|
|
Force resolving names for inotify and fsnotify watches.
|
|
|
|
|
|
|
|
*--auto-dedup*::
|
2016-09-23 12:08:14 -07:00
|
|
|
Deduplicate "old" data in pages images of previous *dump*. This option
|
|
|
|
implies incremental *dump* mode (see the *pre-dump* command).
|
2012-07-23 07:08:48 +04:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*-l*, *--file-locks*::
|
|
|
|
Dump file locks. It is necessary to make sure that all file lock users
|
2016-06-20 23:15:00 +03:00
|
|
|
are taken into dump, so it is only safe to use this for enclosed containers
|
2016-09-23 12:08:14 -07:00
|
|
|
where locks are not held by any processes outside of dumped process tree.
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
|
|
|
|
*--link-remap*::
|
2016-09-23 12:08:14 -07:00
|
|
|
Allows to link unlinked files back, if possible (modifies filesystem
|
|
|
|
during *restore*).
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
|
2021-12-14 12:54:19 +00:00
|
|
|
*--timeout* 'number'::
|
|
|
|
Set a time limit in seconds for collecting tasks during the
|
|
|
|
dump operation. The timeout is 10 seconds by default.
|
|
|
|
|
2015-08-10 12:44:03 +03:00
|
|
|
*--ghost-limit* 'size'::
|
2016-09-23 12:08:14 -07:00
|
|
|
Set the maximum size of deleted file to be carried inside image.
|
|
|
|
By default, up to 1M file is allowed. Using this
|
|
|
|
option allows to not put big deleted files inside images. Argument
|
|
|
|
'size' may be postfixed with a *K*, *M* or *G*, which stands for kilo-,
|
|
|
|
mega, and gigabytes, accordingly.
|
2015-08-10 12:44:03 +03:00
|
|
|
|
2023-02-23 12:55:01 +00:00
|
|
|
*--ghost-fiemap*::
|
|
|
|
Enable an optimization based on fiemap ioctl that can reduce the
|
|
|
|
number of system calls used when checkpointing highly sparse ghost
|
|
|
|
files. This option is enabled by default, and it can be disabled
|
|
|
|
with *--no-ghost-fiemap*. An automatic fallback to SEEK_HOLE/SEEK_DATA
|
|
|
|
is used when fiemap is not supported.
|
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*-j*, *--shell-job*::
|
2016-09-23 12:08:14 -07:00
|
|
|
Allow one to dump shell jobs. This implies the restored task will
|
|
|
|
inherit session and process group ID from the *criu* itself.
|
|
|
|
This option also allows to migrate a single external tty connection,
|
|
|
|
to migrate applications like *top*. If used with *dump* command,
|
|
|
|
it must be specified with *restore* as well.
|
|
|
|
|
|
|
|
*--cpu-cap* ['cap'[,'cap'...]]::
|
|
|
|
Specify CPU capabilities to write to an image file. The argument is a
|
2018-08-30 14:00:23 +03:00
|
|
|
comma-separated list of:
|
|
|
|
+
|
|
|
|
- *none* to ignore capabilities at all; the image will not be produced
|
|
|
|
on dump, neither any check performed on restore;
|
|
|
|
- *fpu* to check if FPU module is compatible;
|
|
|
|
- *ins* to check if CPU supports all instructions required;
|
|
|
|
- *cpu* to check if CPU capabilities are exactly matching;
|
|
|
|
- *all* for all above set.
|
|
|
|
|
|
|
|
+
|
2018-08-30 14:00:27 +03:00
|
|
|
By default the option is set to *fpu* and *ins*.
|
2016-09-23 12:08:14 -07:00
|
|
|
|
|
|
|
*--cgroup-root* ['controller':]/'newroot'::
|
|
|
|
Change the root for the controller that will be dumped. By default, *criu*
|
2016-09-20 18:08:21 +00:00
|
|
|
simply dumps everything below where any of the tasks live. However, if a
|
|
|
|
container moves all of its tasks into a cgroup directory below the container
|
|
|
|
engine's default directory for tasks, permissions will not be preserved on
|
|
|
|
the upper directories with no tasks in them, which may cause problems.
|
|
|
|
|
2017-05-01 10:11:56 +03:00
|
|
|
*--lazy-pages*::
|
|
|
|
Perform the dump procedure without writing memory pages into the
|
|
|
|
image files and prepare to service page requests over the
|
|
|
|
network. When *dump* runs in this mode it presumes that
|
|
|
|
*lazy-pages* daemon will connect to it and fetch memory pages to
|
|
|
|
lazily inject them into the restored process address space. This
|
|
|
|
option is intended for post-copy (lazy) migration and should be
|
|
|
|
used in conjunction with *restore* with appropriate options.
|
|
|
|
|
2020-06-26 16:31:47 +05:30
|
|
|
*--file-validation* ['mode']::
|
|
|
|
Set the method to be used to validate open files. Validation is done
|
|
|
|
to ensure that the version of the file being restored is the same
|
|
|
|
version when it was dumped.
|
2022-01-26 14:14:38 -05:00
|
|
|
+
|
2020-06-26 16:31:47 +05:30
|
|
|
The 'mode' may be one of the following:
|
|
|
|
|
|
|
|
*filesize*:::
|
|
|
|
To explicitly use only the file size check all the time.
|
|
|
|
This is the fastest and least intensive check.
|
|
|
|
|
|
|
|
*buildid*:::
|
|
|
|
To validate ELF files with their build-ID. If the
|
|
|
|
build-ID cannot be obtained, 'chksm-first' method will be
|
|
|
|
used. This is the default if mode is unspecified.
|
|
|
|
|
2021-07-09 14:16:52 +02:00
|
|
|
*--network-lock* ['mode']::
|
|
|
|
Set the method to be used for network locking/unlocking. Locking is done
|
|
|
|
to ensure that tcp packets are dropped between dump and restore. This is
|
|
|
|
done to avoid the kernel sending RST when a packet arrives destined for
|
|
|
|
the dumped process.
|
|
|
|
+
|
|
|
|
The 'mode' may be one of the following:
|
|
|
|
|
|
|
|
*iptables*::: Use iptables rules to drop the packets.
|
|
|
|
This is the default if 'mode' is not specified.
|
|
|
|
|
|
|
|
*nftables*::: Use nftables rules to drop the packets.
|
|
|
|
|
2022-09-12 16:17:43 +02:00
|
|
|
*skip*::: Don't lock the network. If *--tcp-close* is not used, the network
|
|
|
|
must be locked externally to allow CRIU to dump TCP connections.
|
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*restore*
|
|
|
|
~~~~~~~~~
|
|
|
|
Restores previously checkpointed processes.
|
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--inherit-fd* **fd[**__N__**]:**__resource__::
|
2016-11-02 10:59:09 -07:00
|
|
|
Inherit a file descriptor. This option lets *criu* use an already opened
|
2016-11-03 08:40:00 +03:00
|
|
|
file descriptor 'N' for restoring a file identified by 'resource'.
|
2016-11-02 10:59:09 -07:00
|
|
|
This option can be used to restore an external resource dumped
|
2020-05-05 16:19:50 +00:00
|
|
|
with the help of *--external* *file*, *tty*, *pid* and *unix* options.
|
2016-11-02 10:59:09 -07:00
|
|
|
+
|
|
|
|
The 'resource' argument can be one of the following:
|
|
|
|
+
|
2020-01-30 15:30:57 -08:00
|
|
|
- **tty[**__rdev__**:**__dev__**]**
|
|
|
|
- **pipe[**__inode__**]**
|
|
|
|
- **socket[**__inode__*]*
|
|
|
|
- **file[**__mnt_id__**:**__inode__**]**
|
2016-11-02 10:59:09 -07:00
|
|
|
- 'path/to/file'
|
|
|
|
|
|
|
|
+
|
|
|
|
Note that square brackets used in this option arguments are literals and
|
|
|
|
usually need to be escaped from shell.
|
2012-01-28 18:45:28 +04:00
|
|
|
|
2013-05-01 20:21:53 -07:00
|
|
|
*-d*, *--restore-detached*::
|
2013-05-01 20:21:51 -07:00
|
|
|
Detach *criu* itself once restore is complete.
|
2012-01-29 00:39:57 +04:00
|
|
|
|
2016-10-18 18:51:00 +03:00
|
|
|
*-s*, *--leave-stopped*::
|
|
|
|
Leave tasks in stopped state after restore (rather than resuming
|
|
|
|
their execution).
|
|
|
|
|
2015-04-03 18:03:46 +03:00
|
|
|
*-S*, *--restore-sibling*::
|
2016-09-23 12:08:14 -07:00
|
|
|
Restore root task as a sibling (makes sense only with
|
|
|
|
*--restore-detached*).
|
2015-04-03 18:03:46 +03:00
|
|
|
|
2019-01-17 08:43:32 +00:00
|
|
|
*--log-pid*::
|
|
|
|
Write separate logging files per each pid.
|
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*-r*, *--root* 'path'::
|
|
|
|
Change the root filesystem to 'path' (when run in a mount namespace).
|
2019-11-03 20:35:18 +00:00
|
|
|
This option is required to restore a mount namespace. The directory
|
|
|
|
'path' must be a mount point and its parent must not be overmounted.
|
2012-01-29 00:39:57 +04:00
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--external* __type__**[**__id__**]:**__value__::
|
2016-11-02 10:59:12 -07:00
|
|
|
Restore an instance of an external resource. The generic syntax is
|
|
|
|
'type' of resource, followed by resource 'id' (enclosed in literal
|
2019-01-17 08:43:31 +00:00
|
|
|
square brackets), and optional 'value' (prepended by a literal colon).
|
2016-11-02 10:59:12 -07:00
|
|
|
The following resource types are currently supported: *mnt*, *dev*,
|
|
|
|
*veth*, *macvlan*. Syntax depends on type. Note to restore external
|
|
|
|
resources dealing with opened file descriptors (such as dumped with
|
|
|
|
the help of *--external* *file*, *tty*, and *unix* options), option
|
|
|
|
*--inherit-fd* should be used.
|
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--external* **mnt[**__name__**]:**__mountpoint__::
|
2016-11-02 10:59:12 -07:00
|
|
|
Restore an external bind mount referenced in the image by 'name',
|
|
|
|
bind-mounting it from the host 'mountpoint' to a proper mount point.
|
|
|
|
|
|
|
|
*--external mnt[]*::
|
|
|
|
Restore all external bind mounts (dumped with the help of
|
|
|
|
*--external mnt[]* auto-detection).
|
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--external* **dev[**__name__**]:**__/dev/path__::
|
2016-11-02 10:59:12 -07:00
|
|
|
Restore an external mount device, identified in the image by 'name',
|
|
|
|
using the existing block device '/dev/path'.
|
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--external* **veth[**__inner_dev__**]:**__outer_dev__**@**__bridge__::
|
2016-11-02 10:59:12 -07:00
|
|
|
Set the outer VETH device name (corresponding to 'inner_dev' being
|
2020-01-30 15:30:57 -08:00
|
|
|
restored) to 'outer_dev'. If optional **@**_bridge_ is specified,
|
2016-11-02 10:59:12 -07:00
|
|
|
'outer_dev' is added to that bridge. If the option is not used,
|
|
|
|
'outer_dev' will be autogenerated by the kernel.
|
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--external* **macvlan[**__inner_dev__**]:**__outer_dev__::
|
2016-11-02 10:59:12 -07:00
|
|
|
When restoring an image that have a MacVLAN device in it, this option
|
|
|
|
must be used to specify to which 'outer_dev' (an existing network device
|
|
|
|
in CRIU namespace) the restored 'inner_dev' should be bound to.
|
|
|
|
|
2021-05-31 08:17:16 +01:00
|
|
|
*-J*, *--join-ns* **NS**:{**PID**|**NS_FILE**}[,**EXTRA_OPTS**]::
|
|
|
|
Restore process tree inside an existing namespace. The namespace can
|
|
|
|
be specified in 'PID' or 'NS_FILE' path format (example:
|
|
|
|
*--join-ns net:12345* or *--join-ns net:/foo/bar*). Currently supported
|
|
|
|
values for **NS** are: *ipc*, *net*, *time*, *user*, and *uts*.
|
|
|
|
This option doesn't support joining a PID namespace, however, this is
|
|
|
|
possible using *--external* and *--inheritfd*. 'EXTRA_OPTS' is optional
|
|
|
|
and can be used to specify UID and GID for user namespace (e.g.,
|
|
|
|
*--join-ns user:PID,UID,GID*).
|
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*--manage-cgroups* ['mode']::
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
Restore cgroups configuration associated with a task from the image.
|
2016-09-23 12:08:14 -07:00
|
|
|
Controllers are always restored in an optimistic way -- if already present
|
|
|
|
in system, *criu* reuses it, otherwise it will be created.
|
2022-01-26 14:14:38 -05:00
|
|
|
+
|
2016-09-23 12:08:14 -07:00
|
|
|
The 'mode' may be one of the following:
|
|
|
|
|
|
|
|
*none*::: Do not restore cgroup properties but require cgroup to
|
2015-06-11 20:04:03 +03:00
|
|
|
pre-exist at the moment of *restore* procedure.
|
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*props*::: Restore cgroup properties and require cgroup to pre-exist.
|
2015-06-11 20:04:03 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*soft*::: Restore cgroup properties if only cgroup has been created
|
2016-06-20 23:15:00 +03:00
|
|
|
by *criu*, otherwise do not restore properties. This is the
|
2020-02-18 19:53:36 +00:00
|
|
|
default if mode is unspecified.
|
2015-06-11 20:04:03 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*full*::: Always restore all cgroups and their properties.
|
2015-06-11 20:04:03 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*strict*::: Restore all cgroups and their properties from the scratch,
|
2015-06-11 20:04:03 +03:00
|
|
|
requiring them to not present in the system.
|
2012-09-19 17:04:27 +04:00
|
|
|
|
2019-05-01 14:59:44 +01:00
|
|
|
*ignore*::: Don't deal with cgroups and pretend that they don't exist.
|
|
|
|
|
2019-08-08 18:49:13 +02:00
|
|
|
*--cgroup-yard* 'path'::
|
|
|
|
Instead of trying to mount cgroups in CRIU, provide a path to a directory
|
|
|
|
with already created cgroup yard. For more information look in the *dump*
|
|
|
|
section.
|
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*--cgroup-root* ['controller'*:*]/'newroot'::
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
Change the root cgroup the controller will be installed into. No controller
|
|
|
|
means that root is the default for all controllers not specified.
|
2012-09-19 17:04:27 +04:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*--tcp-established*::
|
|
|
|
Restore previously dumped established TCP connections. This implies that
|
|
|
|
the network has been locked between *dump* and *restore* phases so other
|
|
|
|
side of a connection simply notice a kind of lag.
|
2015-04-03 18:03:46 +03:00
|
|
|
|
2019-01-17 08:43:33 +00:00
|
|
|
*--tcp-close*::
|
|
|
|
Restore connected TCP sockets in closed state.
|
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--veth-pair* __IN__**=**__OUT__::
|
2012-09-19 17:04:27 +04:00
|
|
|
Correspondence between outside and inside names of veth devices.
|
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*-l*, *--file-locks*::
|
|
|
|
Restore file locks from the image.
|
2014-06-09 17:26:17 +04:00
|
|
|
|
2020-01-30 15:30:57 -08:00
|
|
|
*--lsm-profile* __type__**:**__name__::
|
|
|
|
Specify an LSM profile to be used during restore. The _type_ can be
|
2019-01-17 08:43:34 +00:00
|
|
|
either *apparmor* or *selinux*.
|
|
|
|
|
2021-06-08 17:22:03 +00:00
|
|
|
*--lsm-mount-context* 'context'::
|
|
|
|
Specify a new mount context to be used during restore.
|
|
|
|
+
|
|
|
|
This option will only replace existing mount context information
|
|
|
|
with the one specified with this option. Mounts without the
|
|
|
|
'context=' option will not be changed.
|
|
|
|
+
|
|
|
|
If a mountpoint has been checkpointed with an option like
|
|
|
|
|
|
|
|
context="system_u:object_r:container_file_t:s0:c82,c137"
|
|
|
|
+
|
|
|
|
it is possible to change this option using
|
|
|
|
|
|
|
|
--lsm-mount-context "system_u:object_r:container_file_t:s0:c204,c495"
|
|
|
|
+
|
|
|
|
which will result that the mountpoint will be restored
|
|
|
|
with the new 'context='.
|
|
|
|
+
|
|
|
|
This option is useful if using *selinux* and if the *selinux*
|
|
|
|
labels need to be changed on restore like if a container is
|
|
|
|
restored into an existing Pod.
|
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*--auto-dedup*::
|
|
|
|
As soon as a page is restored it get punched out from image.
|
2012-09-19 17:04:27 +04:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*-j*, *--shell-job*::
|
|
|
|
Restore shell jobs, in other words inherit session and process group
|
|
|
|
ID from the criu itself.
|
2012-01-28 18:45:28 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*--cpu-cap* ['cap'[,'cap'...]]::
|
|
|
|
Specify CPU capabilities to be present on the CPU the process is
|
|
|
|
restoring. To inverse a capability, prefix it with *^*. This option implies
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
that *--cpu-cap* has been passed on *dump* as well, except *fpu* option
|
2016-09-23 12:08:14 -07:00
|
|
|
case. The 'cap' argument can be the following (or a set of comma-separated
|
|
|
|
values):
|
2012-02-17 22:51:23 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*all*::: Require all capabilities. This is *default* mode if *--cpu-cap*
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
is passed without arguments. Most safe mode.
|
2012-07-23 07:08:48 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*cpu*::: Require the CPU to have all capabilities in image to match
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
runtime CPU.
|
2012-07-23 07:08:48 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*fpu*::: Require the CPU to have compatible FPU. For example the process
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
might be dumped with xsave capability but attempted to restore
|
|
|
|
without it present on target CPU. In such case we refuse to
|
2016-06-20 23:15:00 +03:00
|
|
|
proceed. This is *default* mode if *--cpu-cap* is not present
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
in command line. Note this argument might be passed even if
|
2016-06-20 23:15:00 +03:00
|
|
|
on the *dump* no *--cpu-cap* have been specified because FPU
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
frames are always encoded into images.
|
2012-07-23 07:08:48 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*ins*::: Require CPU compatibility on instructions level.
|
2012-10-18 19:47:17 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*none*::: Ignore capabilities. Most dangerous mode. The behaviour is
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
implementation dependent. Try to not use it until really
|
|
|
|
required.
|
|
|
|
+
|
2016-09-23 12:08:14 -07:00
|
|
|
For example, this option can be used in case *--cpu-cap=cpu* was used
|
|
|
|
during *dump*, and images are migrated to a less capable CPU and are
|
|
|
|
to be restored. By default, *criu* shows an error that CPU capabilities
|
|
|
|
are not adequate, but this can be suppressed by using *--cpu-cap=none*.
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
|
2016-12-01 09:43:00 +03:00
|
|
|
*--weak-sysctls*::
|
|
|
|
Silently skip restoring sysctls that are not available. This allows
|
|
|
|
to restore on an older kernel, or a kernel configured without some
|
|
|
|
options.
|
|
|
|
|
2017-05-01 10:11:56 +03:00
|
|
|
*--lazy-pages*::
|
|
|
|
Restore the processes without filling out the entire memory
|
|
|
|
contents. When this option is used, *restore* sets up the
|
2017-08-08 16:18:03 +03:00
|
|
|
infrastructure required to fill memory pages either on demand when
|
2017-05-01 10:11:56 +03:00
|
|
|
the process accesses them or in the background without stopping the
|
|
|
|
restored process.
|
|
|
|
This option requires running *lazy-pages* daemon.
|
|
|
|
|
2020-06-26 16:31:47 +05:30
|
|
|
*--file-validation* ['mode']::
|
|
|
|
Set the method to be used to validate open files. Validation is done
|
|
|
|
to ensure that the version of the file being restored is the same
|
|
|
|
version when it was dumped.
|
2022-01-26 14:14:38 -05:00
|
|
|
+
|
2020-06-26 16:31:47 +05:30
|
|
|
The 'mode' may be one of the following:
|
|
|
|
|
|
|
|
*filesize*:::
|
|
|
|
To explicitly use only the file size check all the time.
|
|
|
|
This is the fastest and least intensive check.
|
|
|
|
|
|
|
|
*buildid*:::
|
|
|
|
To validate ELF files with their build-ID. If the
|
|
|
|
build-ID cannot be obtained, 'chksm-first' method will be
|
|
|
|
used. This is the default if mode is unspecified.
|
|
|
|
|
2022-05-30 17:34:20 +00:00
|
|
|
*--skip-file-rwx-check*::
|
|
|
|
Skip checking file permissions (r/w/x for u/g/o) on restore.
|
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*check*
|
|
|
|
~~~~~~~
|
2016-09-23 12:08:14 -07:00
|
|
|
Checks whether the kernel supports the features needed by *criu* to
|
|
|
|
dump and restore a process tree.
|
2013-01-17 16:09:35 +08:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
There are three categories of kernel support, as described below. *criu
|
2016-03-17 00:38:00 +03:00
|
|
|
check* always checks Category 1 features unless *--feature* is specified
|
2016-09-23 12:08:14 -07:00
|
|
|
which only checks a specified feature.
|
2016-03-17 00:38:00 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*Category 1*::: Absolutely required. These are features like support for
|
2020-02-18 19:53:36 +00:00
|
|
|
*/proc/PID/map_files*, *NETLINK_SOCK_DIAG* socket
|
|
|
|
monitoring, */proc/sys/kernel/ns_last_pid* etc.
|
2016-03-17 00:38:00 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*Category 2*::: Required only for specific cases. These are features
|
2020-02-18 19:53:36 +00:00
|
|
|
like AIO remap, */dev/net/tun* and others that are only
|
|
|
|
required if a process being dumped or restored
|
|
|
|
is using those.
|
2016-03-17 00:38:00 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*Category 3*::: Experimental. These are features like *task-diag* that
|
2020-02-18 19:53:36 +00:00
|
|
|
are used for experimental purposes (mostly
|
|
|
|
during development).
|
2016-03-17 00:38:00 +03:00
|
|
|
|
|
|
|
If there are no errors or warnings, *criu* prints "Looks good." and its
|
2016-09-23 12:08:14 -07:00
|
|
|
exit code is 0.
|
2016-03-17 00:38:00 +03:00
|
|
|
|
|
|
|
A missing Category 1 feature causes *criu* to print "Does not look good."
|
2016-09-23 12:08:14 -07:00
|
|
|
and its exit code is non-zero.
|
2016-03-17 00:38:00 +03:00
|
|
|
|
|
|
|
Missing Category 2 and 3 features cause *criu* to print "Looks good but
|
2016-09-23 12:08:14 -07:00
|
|
|
..." and its exit code is be non-zero.
|
2016-03-17 00:38:00 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
Without any options, *criu check* checks Category 1 features. This
|
|
|
|
behavior can be changed by using the following options:
|
2016-03-17 00:38:00 +03:00
|
|
|
|
|
|
|
*--extra*::
|
|
|
|
Check kernel support for Category 2 features.
|
|
|
|
|
|
|
|
*--experimental*::
|
|
|
|
Check kernel support for Category 3 features.
|
|
|
|
|
|
|
|
*--all*::
|
|
|
|
Check kernel support for Category 1, 2, and 3 features.
|
2013-04-30 20:08:56 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*--feature* 'name'::
|
|
|
|
Check a specific feature. If 'name' is *list*, a list of valid
|
2016-03-17 00:38:00 +03:00
|
|
|
kernel feature names that can be checked will be printed.
|
2015-04-03 18:03:46 +03:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*page-server*
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
Launches *criu* in page server mode.
|
2015-04-03 18:03:46 +03:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*--daemon*::
|
|
|
|
Runs page server as a daemon (background process).
|
2013-04-30 20:08:55 +04:00
|
|
|
|
2019-02-22 18:55:15 +00:00
|
|
|
*--status-fd*::
|
|
|
|
Write \0 to the FD and close it once page-server is ready to handle
|
2017-01-24 01:57:41 +03:00
|
|
|
requests. The status-fd allows to not daemonize a process and get its
|
|
|
|
exit code at the end.
|
|
|
|
It isn't supposed to use --daemon and --status-fd together.
|
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*--address* 'address'::
|
2018-09-13 18:28:07 +01:00
|
|
|
Page server IP address or hostname.
|
2013-04-30 20:08:55 +04:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
*--port* 'number'::
|
2013-04-30 20:08:55 +04:00
|
|
|
Page server port number.
|
|
|
|
|
2018-06-28 16:10:48 +02:00
|
|
|
*--ps-socket* 'fd'::
|
|
|
|
Use provided file descriptor as socket for incoming connection.
|
|
|
|
In this case --address and --port are ignored.
|
|
|
|
Useful for intercepting page-server traffic e.g. to add encryption
|
|
|
|
or authentication.
|
|
|
|
|
2017-08-08 16:18:04 +03:00
|
|
|
*--lazy-pages*::
|
|
|
|
Serve local memory dump to a remote *lazy-pages* daemon. In this
|
|
|
|
mode the *page-server* reads local memory dump and allows the
|
2019-01-17 08:43:31 +00:00
|
|
|
remote *lazy-pages* daemon to request memory pages in random
|
2017-08-08 16:18:04 +03:00
|
|
|
order.
|
|
|
|
|
2019-03-31 12:05:22 +01:00
|
|
|
*--tls-cacert* 'file'::
|
|
|
|
Specifies the path to a trusted Certificate Authority (CA) certificate
|
|
|
|
file to be used for verification of a client or server certificate.
|
|
|
|
The 'file' must be in PEM format. When this option is used only the
|
|
|
|
specified CA is used for verification. Otherwise, the system's trusted CAs
|
|
|
|
and, if present, '/etc/pki/CA/cacert.pem' will be used.
|
|
|
|
|
|
|
|
*--tls-cacrl* 'file'::
|
|
|
|
Specifies a path to a Certificate Revocation List (CRL) 'file' which
|
|
|
|
contains a list of revoked certificates that should no longer be trusted.
|
|
|
|
The 'file' must be in PEM format. When this option is not specified, the
|
|
|
|
file, if present, '/etc/pki/CA/cacrl.pem' will be used.
|
|
|
|
|
|
|
|
*--tls-cert* 'file'::
|
|
|
|
Specifies a path to a file that contains a X.509 certificate to present
|
|
|
|
to the remote entity. The 'file' must be in PEM format. When this option
|
|
|
|
is not specified, the default location ('/etc/pki/criu/cert.pem') will be
|
|
|
|
used.
|
|
|
|
|
|
|
|
*--tls-key* 'file'::
|
|
|
|
Specifies a path to a file that contains TLS private key. The 'file' must
|
|
|
|
be in PEM format. When this option is not the default location
|
|
|
|
('/etc/pki/criu/private/key.pem') will be used.
|
|
|
|
|
|
|
|
*--tls*::
|
|
|
|
Use TLS to secure remote connections.
|
|
|
|
|
2017-05-01 10:11:56 +03:00
|
|
|
*lazy-pages*
|
|
|
|
~~~~~~~~~~~~
|
|
|
|
Launches *criu* in lazy-pages daemon mode.
|
|
|
|
|
|
|
|
The *lazy-pages* daemon is responsible for managing user-level demand
|
|
|
|
paging for the restored processes. It gets information required to
|
|
|
|
fill the process memory pages from the *restore* and from the
|
2019-01-17 08:43:31 +00:00
|
|
|
checkpoint directory. When a restored process access certain memory
|
2017-05-01 10:11:56 +03:00
|
|
|
page for the first time, the *lazy-pages* daemon injects its contents
|
|
|
|
into the process address space. The memory pages that are not yet
|
|
|
|
requested by the restored processes are injected in the background.
|
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*exec*
|
|
|
|
~~~~~~
|
2016-09-23 12:08:14 -07:00
|
|
|
Executes a system call inside a destination task\'s context. This functionality
|
2016-11-03 08:40:00 +03:00
|
|
|
is deprecated; please use *Compel* instead.
|
2015-04-03 18:03:46 +03:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
*service*
|
|
|
|
~~~~~~~~~
|
2016-09-23 12:08:14 -07:00
|
|
|
Launches *criu* in RPC daemon mode, where *criu* is listening for
|
|
|
|
RPC commands over socket to perform. This is convenient for a
|
|
|
|
case where daemon itself is running in a privileged (superuser) mode
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
but clients are not.
|
2015-04-03 18:03:46 +03:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
dedup
|
|
|
|
~~~~~
|
|
|
|
Starts pagemap data deduplication procedure, where *criu* scans over all
|
2016-06-20 23:15:00 +03:00
|
|
|
pagemap files and tries to minimize the number of pagemap entries by
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
obtaining the references from a parent pagemap image.
|
2015-04-03 18:03:46 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
cpuinfo dump
|
|
|
|
~~~~~~~~~~~~
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
Fetches current CPU features and write them into an image file.
|
2015-04-03 18:03:46 +03:00
|
|
|
|
2016-09-23 12:08:14 -07:00
|
|
|
cpuinfo check
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
Fetches current CPU features (i.e. CPU the *criu* is running on) and test if
|
|
|
|
they are compatible with the ones present in an image file.
|
2012-12-18 00:39:20 +03:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
|
2017-06-20 15:14:11 +02:00
|
|
|
CONFIGURATION FILES
|
|
|
|
-------------------
|
2018-08-02 13:33:28 +00:00
|
|
|
*Criu* supports usage of configuration files to avoid the need of writing every
|
2017-06-20 15:14:11 +02:00
|
|
|
option on command line, which is useful especially with repeated usage of
|
|
|
|
same options. A specific configuration file can be passed with
|
2018-08-02 13:33:28 +00:00
|
|
|
the "*--config* 'file'" option. If no file is passed, the default configuration
|
|
|
|
files '/etc/criu/default.conf' and '$HOME/.criu/default.conf' are parsed (if
|
|
|
|
present on the system). If the environment variable CRIU_CONFIG_FILE is set,
|
|
|
|
it will also be parsed.
|
|
|
|
|
2018-08-22 20:54:30 +01:00
|
|
|
The options passed to CRIU via CLI, RPC or configuration file are evaluated
|
2018-08-02 13:33:28 +00:00
|
|
|
in the following order:
|
|
|
|
|
|
|
|
- apply_config(/etc/criu/default.conf)
|
|
|
|
- apply_config($HOME/.criu/default.conf)
|
|
|
|
- apply_config(CRIU_CONFIG_FILE)
|
|
|
|
- apply_config(*--config* 'file')
|
|
|
|
- apply_config(CLI) or apply_config(RPC)
|
|
|
|
- apply_config(RPC configuration file) (only for RPC mode)
|
|
|
|
|
|
|
|
Default configuration file parsing can be deactivated
|
2017-06-20 15:14:11 +02:00
|
|
|
with "*--no-default-config*" if needed. Parsed configuration files are merged
|
|
|
|
with command line options, which allows overriding boolean options.
|
|
|
|
|
|
|
|
Configuration file syntax
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Comments are supported using \'#' sign. The rest of the line is ignored.
|
|
|
|
Options are the same as command line options without the \'--' prefix, use
|
|
|
|
one option per line (with corresponding argument if applicable, divided by
|
|
|
|
whitespaces). If needed, the argument can be provided in double quotes (this
|
|
|
|
should be needed only if the argument contains whitespaces). In case this type
|
|
|
|
of argument contains a literal double quote as well, it can be escaped using
|
|
|
|
the \'\' sign. Usage of commands is disallowed and all other escape sequences
|
|
|
|
are interpreted literally.
|
|
|
|
|
|
|
|
Example of configuration file to illustrate syntax:
|
|
|
|
---------------
|
|
|
|
$ cat ~/.criu/default.conf
|
|
|
|
tcp-established
|
|
|
|
work-dir "/home/USERNAME/criu/my \"work\" directory"
|
|
|
|
#this is a comment
|
|
|
|
no-restore-sibling # this is another comment
|
|
|
|
---------------
|
|
|
|
|
2018-08-02 13:33:28 +00:00
|
|
|
Configuration files in RPC mode
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Not only does *criu* evaluate configuration files in CLI mode, it also
|
|
|
|
evaluates configuration files in RPC mode. Just as in CLI mode the
|
|
|
|
configuration file values are evaluated first. This means that any option
|
|
|
|
set via RPC will overwrite the configuration file setting. The user can
|
|
|
|
thus change *criu*'s default behavior but it is not possible to change
|
|
|
|
settings which are explicitly set by the RPC client.
|
|
|
|
|
|
|
|
The RPC client can, however, specify an additional configuration file
|
|
|
|
which will be evaluated after the RPC options (see above for option evaluation
|
|
|
|
order). The RPC client can specify this additional configuration file
|
|
|
|
via "req.opts.config_file = '/path/to/file'". The values from this
|
|
|
|
configuration file will overwrite all other configuration file settings
|
|
|
|
or RPC options. *This can lead to undesired behavior of criu and
|
|
|
|
should only be used carefully.*
|
|
|
|
|
2021-05-03 14:14:28 +00:00
|
|
|
NON-ROOT
|
|
|
|
--------
|
|
|
|
*criu* can be used as non-root with either the *CAP_SYS_ADMIN* capability
|
|
|
|
or with the *CAP_CHECKPOINT_RESTORE* capability introduces in Linux kernel 5.9.
|
|
|
|
*CAP_CHECKPOINT_RESTORE* is the minimum that is required.
|
|
|
|
|
|
|
|
*criu* also needs either *CAP_SYS_PTRACE* or a value of 0 in
|
|
|
|
*/proc/sys/kernel/yama/ptrace_scope* (see *ptrace*(2)) to be able to interrupt
|
|
|
|
the process for dumping.
|
|
|
|
|
|
|
|
Running *criu* as non-root has many limitations and depending on the process
|
|
|
|
to checkpoint and restore it may not be possible.
|
|
|
|
|
|
|
|
In addition to *CAP_CHECKPOINT_RESTORE* it is possible to give *criu* additional
|
|
|
|
capabilities to enable additional features in non-root mode.
|
|
|
|
|
|
|
|
Currently *criu* can benefit from the following additional capabilities:
|
|
|
|
|
|
|
|
- *CAP_NET_ADMIN*
|
|
|
|
- *CAP_SYS_CHROOT*
|
|
|
|
- *CAP_SETUID*
|
|
|
|
- *CAP_SYS_RESOURCE*
|
|
|
|
|
2022-12-16 08:55:55 -08:00
|
|
|
Note that for some operations, having a capability in a namespace other than
|
|
|
|
the init namespace (i.e. the default/root namespace) is not sufficient. For
|
|
|
|
example, in order to read symlinks in proc/[pid]/map_files CRIU requires
|
|
|
|
CAP_CHECKPOINT_RESTORE in the init namespace; having CAP_CHECKPOINT_RESTORE
|
|
|
|
while running in another user namespace (e.g. in a container) does not allow
|
|
|
|
CRIU to read symlinks in /proc/[pid]/map_files.
|
|
|
|
|
|
|
|
Without access to /proc/[pid]/map_files checkpointing/restoring processes
|
|
|
|
that have mapped deleted files may not be possible.
|
|
|
|
|
2021-05-03 14:14:28 +00:00
|
|
|
Independent of the capabilities it is always necessary to use "*--unprivileged*" to
|
|
|
|
accept *criu*'s limitation in non-root mode.
|
|
|
|
|
2012-07-23 07:09:39 +04:00
|
|
|
EXAMPLES
|
|
|
|
--------
|
2013-05-01 20:21:59 -07:00
|
|
|
To checkpoint a program with pid of *1234* and write all image files into
|
|
|
|
directory *checkpoint*:
|
2012-07-23 07:09:39 +04:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
----------
|
2013-05-01 20:21:47 -07:00
|
|
|
criu dump -D checkpoint -t 1234
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
----------
|
2012-07-23 07:09:39 +04:00
|
|
|
|
2013-05-01 20:21:59 -07:00
|
|
|
To restore this program detaching criu itself:
|
2012-07-23 07:09:39 +04:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
----------
|
2015-03-19 13:18:13 +03:00
|
|
|
criu restore -d -D checkpoint
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
----------
|
2012-12-18 00:39:20 +03:00
|
|
|
|
|
|
|
|
2012-01-28 18:45:28 +04:00
|
|
|
AUTHOR
|
|
|
|
------
|
2016-09-23 12:08:14 -07:00
|
|
|
The CRIU team.
|
2012-01-28 18:45:28 +04:00
|
|
|
|
docs: Rework the manual, v2
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
v2:
- update description
- use </> for commands
- various formatting and text nitpicks
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu <command> [options]
|
| DESCRIPTION
| criu is a tool for checkpointing and restoring running applications. It
| does this by saving their state as a collection of files (see the dump
| command) and creating equivalent processes from those files (see the
| restore command). The restore operation can be performed at a later
| time, on a different system, or both.
|
| OPTIONS
| The options are depending on the <command> criu run with.
|
| Common options
| Common options are applied to any <command>.
|
| -v[<num>|v...]
| Set logging level to <num>. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used.
|
| The following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile <file>
| Write root task, service or page-server pid into a <file>.
|
| -o, --log-file <file>
| Write logging messages to <file>.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir <path>
| Use path <path> as a base directory where to look for dump files
| set.
|
| --prev-images-dir <path>
| Use path <path> as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir <dir>
| Use directory <dir> for putting logs, pidfiles and statistics. If
| not specified, <path> from -D option is taken.
|
| --close <fd>
| Close file with descriptor <fd> before any actions.
|
| -L, --libdir <path>
| Path to a plugins directory.
|
| --action-script <SCRIPT>
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print a commands list and exit. The commands list is very short one
| just for overview and does not match this manual.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree <pid>
| Checkpoint the whole process tree starting from <pid>.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing.
|
| If task is about to run after been checkpointed it can modify TCP
| connections, delete files and do other dangerous actions. So that
| criu itself can not guarantee that the next restore action will not
| fail. Most likely if a user starts criu with this option passed at
| least the file system snapshot must be done with help of post-dump
| script.
|
| In other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces <ns>[,<ns>...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu will not save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is a mountpoint inside
| container and corresponding <VAL> is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as "top" and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,<cap>]
| Specify cap CPU capability to be written into an image file.
| Basically if <cap> is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image will not be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[<num>]:<existing>
| Inherit file descriptors. This allows to treat file descriptor
| <num> as being already opened via <existing> one and instead of
| trying to open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root <path>
| Change the root filesystem to <path> (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [<controller>:]/<newroot>
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair <IN>=<OUT>
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map <KEY>:<VAL>
| Setup mapping for external mounts. <KEY> is the value from the
| image (<VAL> from dump) and the <VAL> is the path on host that will
| be bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map <KEY>:<VAL>
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [<cap>,<cap>]
| Specify <cap> CPU capability to be present on the CPU the process
| is restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU.
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins. Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required.
|
| One possible need of using this option is when --cpu-cap=cpu
| has been passed on dump then images are migrated to a less
| capable processor and one need to restore this application, by
| default criu will refuse to proceed without relaxing capability
| with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature <name>
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The <name> may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address <address>
| Page server IP address.
|
| --port <number>
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/06/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-24 17:53:30 +03:00
|
|
|
|
2013-05-01 20:21:49 -07:00
|
|
|
COPYRIGHT
|
|
|
|
---------
|
2016-09-23 12:08:14 -07:00
|
|
|
Copyright \(C) 2011-2016, Parallels Holdings, Inc.
|