【问题标题】:how to perform precopy memory migration in LXC /LXD so that I can perform live migration from one host to another如何在 LXC / LXD 中执行预拷贝内存迁移,以便我可以执行从一台主机到另一台主机的实时迁移
【发布时间】:2016-05-07 12:40:41
【问题描述】:

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

【问题讨论】:

    标签: migration containers lxc lxd


    【解决方案1】:

    Pre-copy memory migration 对应于Live migration with CRUI

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

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

    LXC 上游已经开始集成检查点/恢复支持,通过 lxc-检查点工具。该功能已在最近 发布版本的 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多