将 VMware 虚拟机迁移至 IBM Cloud 虚拟服务器,并实现网络实时迁移
通过 virt-v2v 和 Transit Gateway 连接,利用网络流式传输磁盘数据,将 VMware 虚拟机(VM)迁移到 IBM Cloud VPC 虚拟服务器。
架构组件
实时网络传输迁移的架构组件包括
| 架构组件 | 描述 |
|---|---|
| Transit Gateway | 将 VMware 环境(Classic、NSX 或 VCFaaS )连接到 VPC。 这将提供源虚拟机(在 VMware 中)与工作虚拟服务器实例(在 VPC 中)进行通信所需的第 3 层路由。 |
| 工人虚拟服务器实例 | 与方法 2 类似,但这里纯粹是一个接收器--在网络端口上监听传入的磁盘数据。 |
| 实时 ISO |
可启动 ISO,提供
|
| 启动源选项 |
|
实时网络传输迁移过程概述
以下步骤介绍了使用实时网络传输进行迁移的过程。
-
规定 Transit Gateway
- 在 Transit Gateway 中创建 IBM Cloud
- 将其连接到 VMware 环境:
- 经典:直接连接经典账户
- NSX:连接 NSX 边缘的 GRE 隧道
- VCFaaS: VCFaaS 边缘的 GRE 隧道
- 在 VMware 网络和 VPC 子网之间配置路由选择
- 首次迁移前彻底测试连接性
-
在 VPC 中配置工人虚拟服务器实例
- Ubuntu 或资源充足的 RHEL
- 使用短暂虚拟服务器实例技术创建目标卷(方法 2 步骤 2-4)
- 将目标卷附加到工作站
- 安装 netcat:
apt-get install netcat或yum install nc
-
准备传输源 VM
- 中将实时 ISO 附加到虚拟机 vCenter/VCFaaS
- 配置虚拟机启动顺序,使其首先从 CD/ISO 启动
- 注意当前的 IP 配置,以便在实时环境中进行网络设置
-
从 ISO 启动源虚拟机
- 重启虚拟机,使其进入实时环境
- 可以访问虚拟机的磁盘,但操作系统没有运行(相当于清洁关机)
-
在实时环境中配置网络
- 确定网络接口名称(可能有所不同:eth0、ens192 等)
- 配置 IP 和路由:
ip addr add 10.50.200.3/26 dev ens192 ip route add 0.0.0.0/0 via 10.50.200.1 ping 192.168.100.5 # Test connectivity to worker virtual server instance -
发起转移
- 在 Worker 虚拟服务器实例上(先启动监听器):
# Listen for incoming data, decompress, write to volume nc -l 192.168.100.5 8080 | gunzip | dd of=/dev/vdb bs=16M status=progress- 在源虚拟机上(在实时 ISO 中):
# Read disk, compress, send to worker dd if=/dev/sda bs=16M | gzip | nc -N -v 192.168.100.5 8080- 监测双方的进展情况
- 传输时间取决于磁盘大小和网络带宽
- 压缩后,操作系统磁盘的性能通常可提高 2-4x
-
对其他磁盘重复
-
对于多磁盘虚拟机,对每个磁盘重复此操作:
# Worker (disk 2) nc -l 192.168.100.5 8080 | gunzip | dd of=/dev/vdc bs=16M status=progress # Source (disk 2) dd if=/dev/sdb bs=16M | gzip | nc -N -v 192.168.100.5 8080
-
-
移交后处理
- 验证转账:
fdisk -l /dev/vdbon worker - 可选择使用 virt-v2v 进行转换:
virt-v2v-in-place -i disk /dev/vdb - 刷新缓冲区:
blockdev --flushbufs /dev/vdb
- 验证转账:
-
从卷创建虚拟服务器实例
- 将卷从工作站中分离出来
- 使用现有启动卷创建最终虚拟服务器实例(与方法 2 第 8 步相同)
-
关闭源虚拟机
- 验证虚拟服务器实例启动成功后,关闭源虚拟机
- 可选择在 VMware 中创建快照作为回滚点
设计优势
下表介绍了实时网络传输迁移的设计优势。
| 设计优势 | 描述 |
|---|---|
| 无导出开销 | 消除整个导出步骤--无需花费时间导出 VMDK,无需导出存储,无需将导出内容传输到 VPC。 |
| 高效的网络利用率 | 带压缩功能的直接流媒体可充分利用可用带宽。 |
| 并行迁移能力 | 配置多个 Worker 虚拟服务器实例,并同时迁移多个虚拟机,仅受网络带宽和 Worker 资源的限制。 |
| 最大的灵活性 | 易于与 virt-v2v 转换集成,同时支持 VCFaaS 和 vCenter,,可与任何虚拟机配合使用,无论磁盘数量多少。 |
| 磁盘清理状态 | 从 ISO 启动可确保源操作系统不在运行,从而提供干净、一致的磁盘状态(类似于冷快照)。 |
设计约束与限制
下表描述了实时网络传输迁移的约束和限制。
| 限制或约束 | 描述 |
|---|---|
| Transit Gateway 要求 | 需要对设置和测试 Transit Gateway 连接进行前期投资。 |
| 可启动 ISO 镜像的制作 |
|
| 对网络带宽的依赖性 | 传输速度受环境间网络带宽的限制。 监测并制定相应计划。 |
| 手动网络配置 | 对于每个源虚拟机,您都需要在实时 ISO 环境中配置网络(可以编写脚本)。 |
| 不适用于热迁移 | 这是一种冷迁移方法--源虚拟机在传输过程中处于离线状态。 |
virt-p2v 整合
virt-p2v 集成更加自动化,但需要使用 RHEL/ Ubuntu 混合组件构建 libguestfs。
Red Hat virt-p2v ISO 就是专为这种使用情况而设计的。 它规定
- 选择要传输磁盘的图形界面
- 内置网络连接至
virt-v2v接收器 - 自动驱动程序注入和操作系统准备
virt-p2v 整合过程
- 从 virt-p2v ISO 引导源虚拟机
- 配置网络并连接到在服务器模式下运行 virt-v2v 的 Worker 虚拟服务器实例
- virt-p2v 传输磁盘和 virt-v2v 自动转换磁盘
- 生成的卷可附加到虚拟服务器实例
实时网络传输迁移非常适合大规模迁移(10 台以上虚拟机)、导出开销过高的情况,以及具备建立 Transit Gateway 和实时 ISO 环境的专业知识的情况。 初始设置成本较高,但每个虚拟机的迁移效率更高。