virt-v2v是将外部的虚拟化平台上的虚拟机转化到可以运行的KVM平台上。它可以读取在VMware、Xen运行Hyper-V和其他虚拟机管理程序上的Windows和Linux的虚拟机,并将其转换为KVM的libvirt,OpenStack等几种方式。需在KVM环境下进行迁移操作
0x01 环境准备
所有操作需要在KVM环境下进行,安装如下包即可
$ yum install -y qemu-kvm libvirt virt-manager virt-v2v
0x02 查询宿主机中的VM
迁移前可以先列出宿主机中的所有VM,命令格式为:
$ virsh -c esx: //root@esxi.example.com?no_verify=1 list --all
## esxi.example.com 为宿主机的ip或者URL
0x03 迁移VM
使用virt-v2v-copy-to-local命令即可把对应的VM迁移到本地,其中需要输入两次密码,两次的密码均为esxi宿主机的登录密码,迁移完成后会在当前目录生成一个xml文件和disk1磁盘文件
$ virt-v2v-copy-to-local-ic esx://root@esxi.example.com?no_verify=1 guest
# esxi.example.com 为宿主机的ip或者URL
# guest为迁移的VM名称
0x04 格式转换
迁移完成后,就需要把磁盘文件的格式转换成OpenStack能够识别的格式
$ virt-v2v -i libvirtxml guest.xml -o local-os /var/tmp -of raw
# guest.xml为刚才迁移时生成的xml文件
# -os为转换格式后存放的路径
# -of为指定转换的格式为raw
最后,就会在/var/tmp下生成一个raw格式的OpenStack镜像,上传到OpenStack环境中即可使用。