Checkpoint/Restore in Userspace(CRIU)的安装与使用(CentOS 7.2)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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环境检查
技术分享
 
创建一个无限循环脚本文件
技术分享
 
[[email protected] ~]# chmod 755 test.sh
[[email protected] ~]# ./test.sh
 
创建一个新的终端,获得test.sh的pid,“pgrep -f test.sh”
 
[[email protected] ~]# criu dump -t $PID --images-dir chkpoint --shell-job
技术分享
 
[[email protected] ~]# 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
技术分享
 
[[email protected] ~]# criu dump -t 23025 --images-dir /tmp/doc01/
技术分享
 
原因是当前CRIU并不完善(如不支持seccomp、不支持外部终端、挂载的文件系统可读等),Docker容器对宿主机的应用(例如“/bin/bash”等)有依赖,而CRIU不能对非Docker容器进程树中的进程设置检查点,从而导致Checkpoint/Restore失败。

以上是关于Checkpoint/Restore in Userspace(CRIU)的安装与使用(CentOS 7.2)的主要内容,如果未能解决你的问题,请参考以下文章

Address localhost:1099 is already in use(IDEA启动Tomcat报错1099 is already in use)

USE “schema_name” in PostgreSQL

OGG-01224 Address already in use

Address already in use: bind解决办法

[Jade] Use Mixins in Pug

use resource file in jar