1. 08 Jun, 2015 7 commits
  2. 04 Jun, 2015 1 commit
  3. 02 Jun, 2015 5 commits
  4. 01 Jun, 2015 1 commit
    • Pavel Emelyanov's avatar
      criu: Version 1.6 · 908bb092
      Pavel Emelyanov authored
      So, we've got quite a lot of new stuff this release :) The biggest
      code-merge was POWER arch port. Another big thing that has happened
      was criu integration with libcontainer. And a tiny change that will
      become big next release -- the "criu show" command is going to be
      thrown away in 3 monthes, the CRIT tool should be used instead.
      Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
      908bb092
  5. 29 May, 2015 6 commits
  6. 28 May, 2015 1 commit
  7. 19 May, 2015 5 commits
  8. 14 May, 2015 7 commits
  9. 12 May, 2015 6 commits
    • Ruslan Kuprieiev's avatar
      criu: systemd: allow enabling criu service · b197dbda
      Ruslan Kuprieiev authored
      Currently it is not possible to enable criu service after "make install",
      as it has no [Install] section in criu.service file.
      Signed-off-by: 's avatarRuslan Kuprieiev <kupruser@gmail.com>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
      b197dbda
    • Cyrill Gorcunov's avatar
      Subject: net: Don't fail on missing icmp entries · 53bbea73
      Cyrill Gorcunov authored
      icmp entries are missing on 3.10 kernel
      (which is PCS7 default one) so we should
      simply skip them on dump and restore.
      Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
      53bbea73
    • Cyrill Gorcunov's avatar
      sysctl: Make CTL_READ nonfatal · 121e0b90
      Cyrill Gorcunov authored
      Some entries might be missing and that should not cause
      CRIU to stop dumping when we know the entries are safe
      to unuse.
      Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
      121e0b90
    • Cyrill Gorcunov's avatar
      docs: Rework the manual, v2 · a1b2b10b
      Cyrill Gorcunov authored
      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: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
      a1b2b10b
    • Andrew Vagin's avatar
      test/rpc: write all files into the build/ directory · 07816f65
      Andrew Vagin authored
      Reported-by: Mr Jenkins
      Signed-off-by: 's avatarAndrew Vagin <avagin@openvz.org>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
      07816f65
    • Ruslan Kuprieiev's avatar
      criu: crit-install: use $PREFIX with --prefix instead of $DESTDIR · 616ad569
      Ruslan Kuprieiev authored
      Reported-by: Hui Kang hkang.sunysb@gmail.com
      Signed-off-by: 's avatarRuslan Kuprieiev <kupruser@gmail.com>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
      616ad569
  10. 08 May, 2015 1 commit