0

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

4

1 回答 1

1

使用 CRUI进行实时迁移的预复制内存迁移

在主机之间实时迁移 Linux 容器(有迁移脚本)LXC 和 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

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

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

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

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

criu restore --tree <pid> --images-dir <path-to-images>
于 2016-05-13T10:33:53.317 回答