本文由guwenwu寫於2012年8月14日,轉載請註明出處
摘要:本文對virt-p2v工具的安裝和使用進行了闡述,併成功的使用virt-p2v工具將一臺物理機遷移到了Openstack中。
本文環境:host A: I10.28.170.93 8core 16GB 1TB Centos6.2 運行Openstack所有服務,虛擬軟件爲kvm
host B: VM 1Core 512M 8G Centos6.3
P2V 指遷移物理服務器上的操作系統及其上的應用軟件和數據到 VMM(Virtual Machine Monitor)管理的虛擬服務器中。這種遷移方式,主要是使用各種工具軟件,把物理服務器上的系統狀態和數據“鏡像”到 VMM 提供的虛擬機中,並且在虛擬機中“替換”物理服務器的存儲硬件與網卡驅動程序。只要在虛擬服務器中安裝好相應的驅動程序並且設置與原來服務器相同的地址(如 TCP/IP 地址等),在重啓虛擬機服務器後,虛擬服務器即可以替代物理服務器進行工作。
P2V遷移方法主要有以下幾種:
- 手動遷移,手工完成整個遷移過程,物理機需要關機,操作人員需要對物理機系統和虛擬機十分了解
- 半自動遷移,利用專業工具輔助進行P2V, 把某些手動環節進行自動化。比如將物理機的磁盤數據轉換成虛擬機格式,這一向是相當耗時的工作,你可以選擇專業的工具來完成這個步驟。
- 熱遷移,以上兩種遷移過程中都不可避免宕機,物理機處於不可用狀態。熱遷移可以在物理機運行的狀態下完成遷移。
本文所述的遷移方法和virt-p2v工具屬於半自動遷移。
二.virt-p2v簡介及安裝
2.1 下載virt-v2v和virt-p2v
virt-v2v和virt-p2v是Redhat開發的開源虛擬機遷移工具,Red Hat Enterprise Linux 6包含這個包,目前最新版本爲virt-v2v-v0.8.8.tar.gz virt-p2v也包含在包中。
2.2 在host A上安裝virt-p2v
下載安裝包後
tar -xzvf virt-v2v-v0.8.8.tar.gz
cd virt-v2v-v0.8.8
./autobuild.sh
或直接使用yum安裝
yum install virt-v2v
三.virt-p2v配置和使用
3.1 創建kvm的Storage pool
virsh pool-create-as kvm-storage-pool dir --target=/virhost
3.2 修改/etc/virt-v2v.conf
vi /etc/virt-v2v.conf
文件中的內容都被註釋了,將所有的註釋去掉!
並修改文件內容
<profile name="libvirt">
<method>libvirt</method>
<storage>default</storage>
<network type="default">
<network type="network" name="default"/>
</network>
</profile>
爲
<profile name="libvirt">
<method>libvirt</method>
<storage> kvm-storage-pool </storage>
<network type="default">
<network type="network" name="default"/>
</network>
</profile>
3.3 運行 virt-p2v-server
3.4 製作virt-p2v客戶端鏡像的usb啓動盤
掛載virt-p2v鏡像
mount -o loop /usr/share/virt-p2v/virt-p2v-0.8.6-5.20120502.1.el6.centos.iso /mnt
cd /mnt/LiveOS/
在host A上插一個U盤,設備名爲/dev/sdb,運行
./livecd-iso-to-disk /usr/share/virt-p2v/virt-p2v-0.8.6-5.20120502.1.el6.centos.iso /dev/sdb
將啓動鏡像寫入到U盤中。
3.5 利用U盤啓動host B(設置bios從usb啓動)
系統會自動識別網卡(僅限於有線網卡),如果接入的網絡有DHCP功能則可以自動獲取IP否則,自己設置網絡
輸入host A的Ip地址,和root用戶密碼,點擊Connect
Destination Profile一欄選擇libvirt ,輸入名字,點擊Convert
virt-p2v開始傳輸數據到host A上,並將磁盤轉換爲虛擬磁盤。
Transferring 完成後,有可能會報錯,但是對我們將實體機轉移到Openstack中已經沒有影響了。
回到host A上
cd /virhost
qemu-img convert -f raw -O qcow2 test-p2v-sda test-p2v-sda_qcow2
將虛擬磁盤轉換爲qcow2格式
glance add disk_format=qcow2 container_format=ovf name=winxp is_public=True< test-p2v-sda_qcow2
上傳鏡像,然後在Dashbord用這個鏡像生成Instance,P2V完成!