1.下载CRIU 压缩包 criu-3.15.tar.bz2
2.tar -xvf criu-3.15.tar.bz2
3.cd criu-3.15
4.安装protobuf
确认安装automake ,autoconf ,libtool
sudo apt-get install automake libtool autoconf curl make g++ unzip
下载安装包protobuf-cpp-3.5.1.tar.gz
解压:tar -xvf protobuf-cpp-3.5.1.tar.gz
cd protobuf-3.5.1
sudo apt-get install cmake
./configure
make
make check
sudo make install
5.安装protobuf-c
下载安装包:protobuf-c-1.3.3.tar.gz 或者
解压:tar -xvf protobuf-c-1.2.1.tar.gz
进入文件夹:cd protobuf-c-1.2.1
在执行configure之前,必须先安装pkg-config:
sudo apt-get install -y pkg-config
sudo apt-get install protobuf-compiler
sudo apt-get install libprotobuf-dev
执行
./configure
执行
export LD_LIBRARY_PATH=/usr/local/lib
执行
make
执行
sudo make install
6.以下命令均在criu-3.15文件夹执行
安装libnet-dev
sudo apt-get install libnet-dev
安装libnl-3-dev
sudo apt-get install libnl-3-dev
安装libcap-dev
sudo apt-get install libcap-dev
安装 asciidoc
sudo apt-get install asciidoc
7.安装相关依赖
sudo apt-get install protobuf-c-compiler
sudo apt-get install python-protobuf
8.执行
make
9.安装git
sudo apt-get install git
10.初始化git(在criu-3.15文件夹执行)
git init
11.执行 (安装最后一步)
sudo make install
12.测试,执行
sudo criu check
如果输出Looks Good!就是成功了
相关使用方法:
1、先执行一个程序: ./test &
2、查看该程序正在运行的程序号
3、创建一个存储目录imgdir,checkpoint暂停
暂停执行:criu dump -D imgdir -j -t 程序号
ps -ef | grep test
(查看一个名为 test 程序的进程号)
4、checkpoint恢复
恢复执行:criu restore --restore-detached -D imgdir -j
命令说明:
dump命令:由实验中可以看到,当设置进程1597的checkpoint后,再查找该进程,发现进程不存在,即进程已经退出。查看快照文件目录,生成很多img文件,这些文件主要用于恢复应用。
-D(等价于–images-dir):选项指定应用的快照文件保存目录
-j(等价于–shell-job):表示该应用是一个通过shell启动的作业
-t:指定需要checkpoint的应用pid
当对应用设置checkpoint后,应用会自动退出,如果希望应用继续执行,需指定-R或–leave-running选项(见实验2)。
restore命令:由实验中可以看到,恢复后的程序从设置checkpoint的时间点继续运行,程序在输出3时被kill掉,恢复后继续输出4,恢复后查找进程1597,发现进程使用原来的进程号继续运行