如何将容器从 LXC 迁移到 Incus

Incus 提供了一个工具(lxc-to-incus),您可以使用它将 LXC 容器导入到您的 Incus 服务器中。LXC 容器必须存在于与 Incus 服务器相同的机器上。

该工具会分析 LXC 容器并将它们的数据和配置迁移到新的 Incus 容器中。

注意

或者,您可以在 LXC 容器内使用 incus-migrate 工具将其迁移到 Incus(请参阅 如何将物理或虚拟机导入 Incus 实例)。但是,此工具不会迁移任何 LXC 容器配置。

获取工具

如果该工具未随您的 Incus 安装一起提供,您可以自己构建它。确保您已安装 goGo),并使用以下命令获取该工具

go install github.com/lxc/incus/cmd/lxc-to-incus@latest

准备您的 LXC 容器

您可以一次迁移一个容器,也可以一次迁移所有 LXC 容器。

注意

迁移的容器使用与原始容器相同的名称。您不能迁移名称已作为 Incus 中的实例名称存在的容器。

因此,在开始迁移过程之前,请重命名可能导致名称冲突的任何 LXC 容器。

在开始迁移过程之前,请停止要迁移的 LXC 容器。

开始迁移过程

运行 sudo lxc-to-incus [flags] 以迁移容器。

例如,要迁移所有容器

sudo lxc-to-incus --all

要仅迁移 lxc1 容器

sudo lxc-to-incus --containers lxc1

要迁移两个容器(lxc1lxc2)并在 Incus 中使用 my-storage 存储池

sudo lxc-to-incus --containers lxc1,lxc2 --storage my-storage

要测试所有容器的迁移而无需实际运行它

sudo lxc-to-incus --all --dry-run

要迁移所有容器,但将 rsync 带宽限制为 5000 KB/s

sudo lxc-to-incus --all --rsync-args --bwlimit=5000

运行 sudo lxc-to-incus --help 以检查所有可用标志。

注意

如果收到错误消息,指出不支持 linux64 架构,请将工具更新到最新版本或将 LXC 容器配置中的架构从 linux64 更改为 amd64x86_64

检查配置

该工具会分析 LXC 配置和容器(或容器)的配置,并尽可能多地迁移配置。您将看到类似于以下内容的输出

user@host:~$ sudo lxc-to-incus --containers lxc1
解析 LXC 配置检查 不支持的 LXC 配置 检查 现有 容器检查 容器 是否 迁移验证 是否 启用了 不完整 AppArmor 支持验证 是否 启用了 挂载 最小 /dev验证 容器 根文件系统处理 网络 配置处理 存储 配置处理 环境 配置处理 容器 启动 配置处理 容器 apparmor 配置处理 容器 seccomp 配置处理 容器 SELinux 配置处理 容器 功能 配置处理 容器 架构 配置创建 容器传输 容器: lxc1: ...容器 'lxc1' 创建成功

迁移过程完成后,您可以在启动已迁移的 Incus 容器之前,检查并(如有必要)更新 Incus 中的配置。