跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 虚拟化指南 / 使用 LXC 管理虚拟机 / 从 LXC 迁移到 libvirt-lxc
适用范围 SUSE Linux Enterprise Server 15 SP2

35 从 LXC 迁移到 libvirt-lxc

SUSE Linux Enterprise Server 12 开始,LXC 已集成到 libvirt 库中。相比将 LXC 作为单独的解决方案使用,此决策可带来多项优势 — 例如,与其他虚拟化解决方案保持统一,或者在使用的内核方面获得独立性。本章将会说明需要执行哪些步骤来迁移可与 libvirt 库搭配使用的现有 LXC 环境。

35.1 主机迁移

迁移本身包括两个阶段。首先需要迁移主机,接着需迁移 LXC 容器。然后便可在 libvirt 环境中将原始容器作为 VM Guest 运行。

过程 35.1︰ 主机迁移
  1. 使用官方 DVD 媒体将主机升级到 SUSE Linux Enterprise Server 15

  2. 升级后,安装 libvirt-daemon-lxclibvirt-daemon-config-network 软件包。

  3. 基于现有的容器 lxc_container 创建 libvirt XML 配置 lxc_container.xml

    tux > sudo virt-lxc-convert /etc/lxc/lxc_container/config > lxc_container.xml
  4. 检查主机上的网络配置是否与容器配置文件中的配置相同,并根据需要予以修复。

  5. 检查 lxc_container.xml 文件中是否存在任何异常或缺少的配置。请注意,某些 LXC 配置选项无法映射到 libvirt 配置。尽管转换通常应该会正常完成,但仍请查看第 34.4 节 “libvirt LXC 驱动程序与 LXC 之间的差异”了解更多细节。

  6. 根据创建的 XML 定义在 libvirt 中创建容器:

    tux > sudo virsh -c lxc:/// define lxc_container.xml

35.2 容器迁移

迁移主机后,libvirt 中的 LXC 容器将无法引导。您需要将此容器也迁移到 SUSE Linux Enterprise Server 15 才能使一切正常运行。

过程 35.2︰ 容器迁移
  1. 缺少 baseproduct 文件(zypper 一直在指出此问题)。创建相关的符号链接:

    root # ROOTFS=/var/lib/lxc/lxc_container/rootfs
    root # ln -s $ROOTFS/etc/products.d/SUSE_SLES.prod $ROOTFS/etc/products.d/baseproduct
  2. 添加 DVD 储存库。请注意,您需要将 DVD 设备替换为挂接到容器的相应设备:

    root # zypper --root $ROOTFS ar \
    cd:///?devices=/dev/dvd SLES15-0
  3. 禁用或去除以前的储存库:

    root # zypper --root $ROOTFS lr
      | Alias                       | Name                         | Enabled | Refresh
    --+-----------------------------+------------------------------+---------+--------
    1 | SLES12                      | SLES12                       | Yes     | No
    2 | SUSE-[...]-Server-12-SP3 38 | SUSE-[...]-Server-12-SP3 138 | Yes     | No
    
    root # zypper --root $ROOTFS rr 2
  4. 禁用或去除以前的储存库:

    root # zypper --root $ROOTFS lr
      | Alias                       | Name                         | Enabled | Refresh
    --+-----------------------------+------------------------------+---------+--------
    1 | openSUSE 42.3 Main          | openSUSE 42.3 Main           | Yes     | No
    2 | openSUSE 42.3 Update        | openSUSE 42.3 Update         | Yes     | No
    
    root # zypper --root $ROOTFS rr 2
  5. 升级容器:

    root # zypper --root $ROOTFS dup
  6. 安装极简模式,以确保安装所需的所有组件:

    root # zypper --root $ROOTFS in -t pattern Minimal

35.3 启动容器

完成主机和容器迁移后,便能够启动容器:

root # virsh -c lxc:/// start lxc_container

如果您需要通过控制台查看容器生成的日志记录消息,请运行:

root # virsh -c lxc:/// console lxc_container