由于V2V迁移功能的限制,部分云主机可能无法通过平台功能达成迁移,怎么使用开源工具迁移其他虚拟化平台的云主机到ZStack云平台?
云平台环境:ZStack企业版4.2.X
存储环境:本地存储
云主机操作系统:Centos7.6
网络环境:公有网络
无法通过V2V功能迁移云主机。
1、准备工作:
从其他虚拟化平台导出对应的虚拟机文件。
假如是XEN平台或者是VirtualBox平台,
--导出的是OVF格式的文件,会自动分成多个文件,按照步骤上传vmdk文件即可,
--导出的是OVA格式的文件,会合并成一个压缩包,XXX.ova,上传到ZStack镜像服务器后,先解压缩获取vmdk镜像文件,再按照以下步骤执行。
tar -zxf xxx.ova
假如是Hyper-v平台,导出的是vhdx格式的文件,在转换时把格式对应修改为vhdx即可。
假如是VMware平台,导出的是vmdk格式的文件,可以直接按照以下步骤执行。
2、以VMware为例,首先云主机关机后,导出云主机文件。

(图1 导出云主机)
xxx.vmkd即磁盘文件,在本例中,磁盘文件为4u4c-1.vmdk

(图2 磁盘文件)
3、使用工具将4u4c-1.vmdk上传到ZStack环境的镜像服务器上。镜像服务器的地址可以在资源中心-->硬件设施-->镜像服务器处可以看到。Ceph类型的镜像服务器将镜像上传至任一监控节点所在物理机即可。

(图3 上传镜像至镜像服务器)
4、通过qemu-img convert命令将vmdk格式的文件转化为ZStack平台可以直接使用的qcow2格式的文件。如图所示是vmdk格式的文件,执行下面的命令。
qemu-img convert -p -f vmdk -O qcow2 4u4c-1.vmdk 4u4c-1.qcow2
假如是别的格式,可以参考文末附录1,对应进行替换。

(图4 转换镜像格式)
5、通过URL的方式将转化完成的qcow2文件镜像上传到ZStack平台上。在资源中心-->云资源池-->镜像处可添加镜像。镜像格式选qcow2,镜像路径为file://{镜像文件的绝对路径},本例中,镜像文件位于镜像服务器的/root/4u4c-1.qcow2,则上传镜像时填写的镜像路径为file:///root/4u4c-1.qcow2。

(图5 上传镜像)

(图6 镜像上传完成)
6、使用上传好的镜像创建云主机,并开机验证系统内数据文件的准确性。

(图7 使用上传的镜像创建云主机)
附录1:
qemu-img的使用语法:
qemu-img convert -f <原格式> -O <目标格式> <原文件路径> <目标文件路径>
文章中是vmdk格式转化为qcow2格式,执行命令,
qemu-img convert -p -f vmdk -O qcow2 4u4c-1.vmdk 4u4c-1.qcow2
假如是vhdx格式的文件,转化为qcow2格式,执行命令,
qemu-img convert -p -f vhdx -O qcow2 4u4c-1.vhdx 4u4c-1.qcow2
假如是别的格式的,只需要将对应格式进行替换即可。