如何在LXC / LXD中执行预拷贝内存迁移,以便我可以从一个主机到另一个主机进行实时迁移

时间:2016-05-07 12:40:42

标签: migration containers lxc lxd

如何在LXC / LXD中执行预拷贝内存迁移,以便我可以从一个主机到另一个主机进行实时迁移?如何在CRIU中设置预迁移?

1 个答案:

答案 0 :(得分:1)

Pre-copy memory migrationLive migration with CRUI

Live Migration of Linux Containers between hosts (there is migration script)LXC and CRUI

  

您应该已经构建并安装了最新版本(> = 1.3.1)   CRIU。

     

LXC上游已开始整合检查点/恢复支持   lxc-checkpoint工具。此功能已在最近   发布的LXC --- LXC 1.1.0版本,可以安装LXC 1.1.0或   您可以通过以下方式查看Ubuntu上的开发版本:

sudo add-apt-repository ppa:ubuntu-lxc/daily
sudo apt-get update
sudo apt-get install lxc

并将以下行(如上所述)添加到LXC容器配置:

cat | sudo tee -a /var/lib/lxc/u1/config << EOF
# hax for criu
lxc.console = none
lxc.tty = 0
lxc.cgroup.devices.deny = c 5:1 rwm
EOF

检查容器:

lxc-checkpoint -s -D /tmp/checkpoint -n u1

此时,容器的状态存储在/ tmp / checkpoint中,文件系统位于/ var / lib / lxc / u1 / rootfs中。您可以通过执行以下操作来恢复容器:

lxc-checkpoint -r -D /tmp/checkpoint -n u1

PS: 您可以为流程执行实时迁移:

<强>转储 执行您即将迁移的任务并将其转储到某个位置,要求criu在转储后将它们置于停止状态:

criu dump --tree <pid> --images-dir <path-to-existing-directory> --leave-stopped

如果您使用的目录,您放置图像的目录可以驻留在共享文件系统上。在这种情况下,您可以跳过“复制”步骤并继续“还原”。

复制 将图像复制到目标节点:

scp -r <path-to-images-dir> <dst>:/<path-to-images>

<强>恢复 转到目标节点并从其上的图像还原应用程序:

criu restore --tree <pid> --images-dir <path-to-images>