virt-v2v是將外部的虛擬化平臺(tái)上的虛擬機(jī)轉(zhuǎn)化到可以運(yùn)行的KVM平臺(tái)上。它可以讀取在VMware、Xen運(yùn)行Hyper-V和其他虛擬機(jī)管理程序上的Windows和Linux的虛擬機(jī),并將其轉(zhuǎn)換為KVM的libvirt,OpenStack等幾種方式。需在KVM環(huán)境下進(jìn)行遷移操作
0x01 環(huán)境準(zhǔn)備
所有操作需要在KVM環(huán)境下進(jìn)行,安裝如下包即可
$ yum install -y qemu-kvm libvirt virt-manager virt-v2v
0x02 查詢(xún)宿主機(jī)中的VM
遷移前可以先列出宿主機(jī)中的所有VM,命令格式為:
$ virsh -c esx: //root@esxi.example.com?no_verify=1 list --all
## esxi.example.com 為宿主機(jī)的ip或者URL

0x03 遷移VM
使用virt-v2v-copy-to-local命令即可把對(duì)應(yīng)的VM遷移到本地,其中需要輸入兩次密碼,兩次的密碼均為esxi宿主機(jī)的登錄密碼,遷移完成后會(huì)在當(dāng)前目錄生成一個(gè)xml文件和disk1磁盤(pán)文件
$ virt-v2v-copy-to-local-ic esx://root@esxi.example.com?no_verify=1 guest
# esxi.example.com 為宿主機(jī)的ip或者URL
# guest為遷移的VM名稱(chēng)

0x04 格式轉(zhuǎn)換
遷移完成后,就需要把磁盤(pán)文件的格式轉(zhuǎn)換成OpenStack能夠識(shí)別的格式
$ virt-v2v -i libvirtxml guest.xml -o local-os /var/tmp -of raw
# guest.xml為剛才遷移時(shí)生成的xml文件
# -os為轉(zhuǎn)換格式后存放的路徑
# -of為指定轉(zhuǎn)換的格式為raw

最后,就會(huì)在/var/tmp下生成一個(gè)raw格式的OpenStack鏡像,上傳到OpenStack環(huán)境中即可使用。