如何将容器从 LXC 迁移到 Incus¶
Incus 提供了一个工具(lxc-to-incus),您可以使用它将 LXC 容器导入到您的 Incus 服务器中。LXC 容器必须存在于与 Incus 服务器相同的机器上。
该工具会分析 LXC 容器并将它们的数据和配置迁移到新的 Incus 容器中。
注意
或者,您可以在 LXC 容器内使用 incus-migrate 工具将其迁移到 Incus(请参阅 如何将物理或虚拟机导入 Incus 实例)。但是,此工具不会迁移任何 LXC 容器配置。
获取工具¶
如果该工具未随您的 Incus 安装一起提供,您可以自己构建它。确保您已安装 go(Go),并使用以下命令获取该工具
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
要迁移两个容器(lxc1 和 lxc2)并在 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 更改为 amd64 或 x86_64。
检查配置¶
该工具会分析 LXC 配置和容器(或容器)的配置,并尽可能多地迁移配置。您将看到类似于以下内容的输出
user@host:~$ sudo lxc-to-incus --containers lxc1解析 LXC 配置检查 不支持的 LXC 配置 键检查 现有 容器检查 容器 是否 已 迁移验证 是否 启用了 不完整 AppArmor 支持验证 是否 启用了 挂载 最小 /dev验证 容器 根文件系统处理 网络 配置处理 存储 配置处理 环境 配置处理 容器 启动 配置处理 容器 apparmor 配置处理 容器 seccomp 配置处理 容器 SELinux 配置处理 容器 功能 配置处理 容器 架构 配置创建 容器传输 容器: lxc1: ...容器 'lxc1' 创建成功迁移过程完成后,您可以在启动已迁移的 Incus 容器之前,检查并(如有必要)更新 Incus 中的配置。