Cloudpods 虚机跨集群迁移

本文介绍如何将纳管的 Clodpods 虚机转换为本地的 KVM 虚机,实现跨集群迁移的功能。

假设你有集群 A 和 集群 B,需要将集群 B 的虚机迁移到集群 A 中。

跨集群迁移的原理介绍

跨集群迁移的实现方式是通过集群 A 纳管集群 B, 获取集群 B 中虚拟机的配置信息; 然后在集群 A 中创建与集群 B 相同配置的虚机, 在集群 A 上远程挂载集群 B 虚机的硬盘作为集群 A 虚机的 backing_file。 然后启动集群 A 中的虚机, 并开始同步 backing_file。

简要的说就是在集群 A 中创建相同配置的虚机,然后同步磁盘。 需要注意的是:

  1. 磁盘远程挂载通过 host-image 服务来实现的,所以需要 A 集群的宿主机访问 B 集群的宿主机的 host-image 服务网络畅通。
  2. A 集群中是创建相同配置的机器,但是 ip 子网不一定是两个集群完全相同,所以执行跨集群迁移操作的时候可以指定 ip 子网,否则走自动调度。
  3. 主要同步的配置信息有 CPU, 内存,磁盘等信息,集群 B 虚机绑定的安全组,密钥等信息不会同步到 A 集群的虚机中,需要手动绑定。
  4. 执行跨集群迁移的虚机在迁移完成之前请勿开机。

纳管 Cloudpods 集群

首先需要使用集群 A 纳管集群 B。如何纳管 Cloudpods 集群参考:新建Cloudpods云账号

查看纳管集群虚机

$ climc server-list --hypervisor cloudpods
+--------------------------------------+------------+--------------+-----------+------------+-----------+--------------------------------------+-----------------------------+------------+---------+-----------+
|                  ID                  |    Name    | Billing_type |  Status   | vcpu_count | vmem_size |              Secgrp_id               |         Created_at          | Hypervisor | os_type | is_system |
+--------------------------------------+------------+--------------+-----------+------------+-----------+--------------------------------------+-----------------------------+------------+---------+-----------+
| c5edef26-05a3-4429-83d8-80cf4418ba9d | xyz-test-1 | postpaid     | running   | 2          | 2048      | default                              | 2023-10-10T14:42:55.000000Z | cloudpods  | Linux   | false     |
| 3fce2326-ba4f-42cd-863f-d284d9e1f046 | centos7    | postpaid     | running   | 1          | 1024      | c6c1714f-eb15-4eaa-83d3-d48f83c897ef | 2023-10-08T10:16:38.000000Z | cloudpods  | Linux   | false     |
+--------------------------------------+------------+--------------+-----------+------------+-----------+--------------------------------------+-----------------------------+------------+---------+-----------+

转换成 KVM 虚机(跨集群迁移)

跨集群迁移也叫转换 Hypervisor,由 hypervisor cloudpods 转换成 hypervisor kvm。

climc server-convert-to-kvm c5edef26-05a3-4429-83d8-80cf4418ba9d

转换完成后 B 集群的虚机将被设置成 converted 状态。