如何将容器从 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 中的配置。