zoukankan      html  css  js  c++  java
  • Checkpoint/Restore in Userspace(CRIU)的安装与使用(CentOS 7.2)

    参考网址:Installation - CRIU

    CRIU安装:

    获取CRIU的源代码

    git clone https://github.com/xemul/criu
    

    或者

    wget http://download.openvz.org/criu/criu-x.x.tar.bz2
    tar -xvf criu-x.x.tar.bz2
    

    安装编译依赖软件

    yum install gcc make -y
    yum install glibc-devel.i686 protobuf protobuf-c protobuf-c-devel protobuf-compiler protobuf-devel protobuf-python libaio-devel libcap-devel libnl3-devel -y
    

    在CRIU代码根目录下,执行编译命令 make

    安装依赖软件

    yum install asciidoc xmlto -y
    

    在CRIU代码根目录下,运行安装命令 make install

    CRIU使用:

    命令格式:
       criu dump -D chkpoint -t pid
     
    CRIU环境检查
     
    创建一个无限循环脚本文件
     
    [root@de69 ~]# chmod 755 test.sh
    [root@de69 ~]# ./test.sh
     
    创建一个新的终端,获得test.sh的pid,“pgrep -f test.sh”
     
    [root@de69 ~]# criu dump -t $PID --images-dir chkpoint --shell-job
     
    [root@de69 ~]# criu restore -t 23267 --images-dir chkpoint/ --shell-job
    运行命令之后test.sh恢复正常运行。
     
    在使用CRIU对docker容器进行操作时出现以下提示错误
    Error (criu/namespaces.c:403): Can't dump nested pid namespace for 23025
    Error (criu/namespaces.c:607): Can't make pidns id
    Error (criu/cr-dump.c:1625): Dumping FAILED.
     
    pid=23025
     
    [root@de69 ~]# criu dump -t 23025 --images-dir /tmp/doc01/
     
    原因是当前CRIU并不完善(如不支持seccomp、不支持外部终端、挂载的文件系统可读等),Docker容器对宿主机的应用(例如“/bin/bash”等)有依赖,而CRIU不能对非Docker容器进程树中的进程设置检查点,从而导致Checkpoint/Restore失败。
  • 相关阅读:
    自动轮播
    哈夫曼树的应用-金条划分
    计算两个日期相差的天数
    数据结构之算术表达式
    动态规划-矩阵最短路径
    动态规划-换钱最少货币数
    字母数字密码破解
    荷兰国旗问题
    集合并集
    进制数位幸运数
  • 原文地址:https://www.cnblogs.com/yujinyu/p/6095156.html
Copyright © 2011-2022 走看看