先決條件
exsi到openstack的遷移,分為兩種,一種是靜態遷移,另一種是在線遷移。
靜態遷移(offline migration)也叫做常規遷移,離線遷移。在遷移之前將虛擬機暫停,同時拷貝虛擬機鏡像和狀態到目的主機。相比較於在線遷移(online migration),其缺點就是靜態遷移方式的過程需要顯式的停止虛擬機的運行。
在線遷移的過程僅有非常短暫的停機時間,保證遷移過程中虛擬機服務的持續可用;靜態遷移的優點是兼容性強,不需要VMM的同意API接口,可以借助第三方工具輔助遷移。由於目前VMM的開發沒有統一的標准,不同的虛擬化廠商,尤其是閉源的廠商開發的VMM各成一套,靜態遷移是解決不同類型虛擬機之間遷移的有效辦法。我們分別演示使用手動方式將VMware虛擬機遷移到KVM和使用自動化遷移工具virt-v2v方式來遷移。
遷移前軟件包的安裝
yum install -y qemu-kvm
yum install -y libvirt
yum install -y virt-manager
yum install -y virt-v2v
使用virt-v2v工具自動遷移
如果虛機是ESXi種的虛機,那么我們可以使用virt-v2v的工具直接進行自動遷移。virt-v2v工具可以將其他hypervisor平台上的虛擬機遷移到KVM上。它可以讀取Xen,Hyper-v,VMware平台上的虛擬機,將它們遷移到由libvirt管理的KVM,openstack或者RHEV環境中。本節只針對ESCi上如何將虛機遷移到KVM中,往openstack和RHEV上遷移只需要轉換鏡像和導入即可不做贅述。
KVM存儲池配置過程
mkdir -p /data/vmfs
virsh pool-define-as vmdisk --type dir --target /data/vmfs
virsh pool-build vmdisk
virsh pool-autostart vmdisk
virsh pool-start vmdisk
創建ESXi認證文件
vim /root/.netrc
machine YourESXiServerIPAddress login root password YourESXiServerIPAddress
chmod 0600 ~/.netrc
開始遷移
開始遷移前先測試看是否能夠連接上ESXi主機
virsh -c esx://10.1.80.112/?no_verify=1 list --all
如果能夠看到運行在這個ESXi上的主機說明連接沒有問題。
開始遷移
virt-v2v-copy-to-local -ic esx://root@10.1.80.112/?no_verify=1 測試機1
使用virt-v2v-copy-to-local命令即可把對應的VM遷移到本地,其中需要輸入兩次密碼,
兩次的密碼均為esxi宿主機的登錄密碼,遷移完成后會在當前目錄生成一個xml文件和disk1磁盤文件
注意:
1、測試機1表示為虛擬機的名字
2、遷移之前需要把虛擬機關機
格式轉換
遷移完成后,就需要把磁盤文件的格式轉換成OpenStack能夠識別的格式
virt-v2v -i libvirtxml 測試機1.xml -o
local
-os
/img
-of raw
#測試機1.xml為剛才遷移時生成的xml文件 #-os為轉換格式后存放的路徑 #-of為指定轉換的格式為raw
上傳鏡像並啟動測試
openstack image create "cs" \ --file 測試機1-sda \ --disk-format qcow2 --container-format bare \ --public