遷移VMware虛擬機(jī)到KVM_第1頁
遷移VMware虛擬機(jī)到KVM_第2頁
遷移VMware虛擬機(jī)到KVM_第3頁
遷移VMware虛擬機(jī)到KVM_第4頁
遷移VMware虛擬機(jī)到KVM_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余23頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、遷移VMware虛擬機(jī)到KVM日期:2011-11-14瀏覽次數(shù):1344出處:舊M簡介:目前x86平臺上最流行的虛擬化軟件是VMware公司的系列產(chǎn)品,而基于開源技術(shù)的KVM虛擬化軟件也得到了廣泛的應(yīng)用。本文是虛擬化遷移技術(shù)系列文章的第三部分,詳細(xì)介紹了如何使用virt-v2v開源工具或者手動方法遷移創(chuàng)建在VMware軟件上的Window及Linux虛擬機(jī)到基于KVM的虛擬機(jī),并且從功能上比較了虛擬機(jī)系統(tǒng)遷移前后的變化,最后總結(jié)了VMware虛擬機(jī)到KVM遷移的不足和注意事項(xiàng)。前言隨著虛擬化技術(shù)的不斷發(fā)展,虛擬機(jī)的應(yīng)用也越來越廣泛。日常應(yīng)用中可能出現(xiàn)資源不足,系統(tǒng)管理調(diào)整或者系統(tǒng)備份等原因,

2、希望將某一虛擬機(jī)從原來物理主機(jī)遷移到另一個(gè)物理主機(jī)上,即V2V(Virtual-to-Virtual)遷移。虛擬機(jī)的遷移需要物理主機(jī)上VMM(VirtualMachineMonitor)的支持。相同類型VMM之間,使用相同的API接口,通常具有強(qiáng)大的遷移能力。例如本系列第二篇文章介紹的KVM虛擬機(jī)之間的遷移,它支持三種遷移方式:離線遷移、在線共享存儲遷移和在線塊遷移。而不同的VMM之間,由于虛擬化實(shí)現(xiàn)技術(shù)的不同、開發(fā)廠商的不同、API接口的不同,使虛擬機(jī)遷移困難重重。本文分別介紹如何靜態(tài)遷移VMwareESX/ESXi、VMwareWorkstation及VMwarePlayer上的虛擬機(jī)到K

3、VM主機(jī)。VMware虛擬機(jī)遷移到KVM的方式虛擬機(jī)V2V(Virtual-to-Virtual)遷移是在虛擬機(jī)之間移動操作系統(tǒng)和數(shù)據(jù),照顧主機(jī)級別的差異和處理不同的虛擬硬件。V2V的遷移方法有兩種,靜態(tài)遷移和在線遷移。靜態(tài)遷移(offlinemigration)也叫做常規(guī)遷移、離線遷移。在遷移之前將虛擬機(jī)暫停,同時(shí)拷貝虛擬機(jī)鏡像和狀態(tài)到目的主機(jī)。相比較于在線遷移(onlinemigration),其缺點(diǎn)是靜態(tài)遷移方式的過程需要顯式的停止虛擬機(jī)的運(yùn)行,而在線遷移的過程僅有非常短暫的停機(jī)時(shí)間,保證遷移過程中虛擬機(jī)服務(wù)的持續(xù)可用;優(yōu)點(diǎn)是兼容性強(qiáng),不需要VMM的有統(tǒng)一的API接口,可以借助第三方工具

4、輔助遷移。由于目前VMM的開發(fā)沒有統(tǒng)一的標(biāo)準(zhǔn),不同的虛擬化廠商,尤其是閉源的商業(yè)廠商開發(fā)的VMM各成一套,靜態(tài)遷移是解決不同類型虛擬機(jī)之間遷移的有效辦法。本文采用V2V靜態(tài)遷移的方法實(shí)現(xiàn)VMware虛擬機(jī)到KVM的遷移,同時(shí)介紹開源遷移工具virt-v2v的使用。VMware虛擬化產(chǎn)品及虛擬機(jī)文件VMware產(chǎn)品簡介VMware是全球虛擬化解決方案的領(lǐng)導(dǎo)廠商,提供了一套虛擬機(jī)解決方案,按產(chǎn)品特點(diǎn)可分為如下四類。VMwareESX/ESXi:這個(gè)產(chǎn)品不需要安裝任何操作系統(tǒng),它本身就是一個(gè)用來管理硬件資源的特殊的操作系統(tǒng),所有的虛擬機(jī)都安裝在它的上面。ESXServer帶有遠(yuǎn)程web管理和客戶端管

5、理功能。VMwareServer、Workstation和Fusion:與ESX相比,這三個(gè)產(chǎn)品都是要安裝在操作系統(tǒng)上的。Server和Workstation運(yùn)行在Windows和Linux上,F(xiàn)usion運(yùn)行在蘋果的MacOS上。VMwareVMotion:是VMware開發(fā)出的一項(xiàng)獨(dú)特技術(shù),它將服務(wù)器、存儲和網(wǎng)絡(luò)設(shè)備完全虛擬化,使得正在運(yùn)行的整個(gè)虛擬機(jī)能夠在瞬間從一臺服務(wù)器移到另一臺服務(wù)器上。VirtualCenter>Importer、Convertor、P2VPlayer:這些是為了配合VMware虛擬引擎,主要是為了配合ESX開發(fā)的管理軟件和工具,這些工具中很多是免費(fèi)的。本文主

6、要遷移創(chuàng)建在VMwareESX/ESXi、VMwareWorkstation和VMwarePlayer上的虛擬機(jī)到KVM主機(jī)上,遷移后的虛擬機(jī)可以被開源的libvirt軟件管理。VMware虛擬機(jī)文件介紹成功遷移虛擬機(jī)的一個(gè)重要的驗(yàn)證標(biāo)準(zhǔn)就是文件的正確性和完整性。下圖中列出與VMware虛擬機(jī)相關(guān)的文件,但是遷移VMware虛擬機(jī)到KVM并不需要用到所有的文件。IVMware虛擬機(jī)的文件主要包括.nvram文件,.vmx文件,vmdk文件,.vswp文件,.vmss文件,.vmsd文件,.vmsn文件,.log文件,.vmxf文件。與遷移相關(guān)的最主要的是.vmx文件和.vmdk文件。 .vmx

7、文件:包括虛擬機(jī)所有配置信息與硬件設(shè)置。不管你對虛擬機(jī)的設(shè)置做了何種編輯,所有的信息都會以文本形式保存在這個(gè)文件里。如特殊硬件配置(例如RAM大小,網(wǎng)絡(luò)接口信息,硬盤驅(qū)動信息,串行與并行信息),高級能源與資源配置、VMware工具選項(xiàng)及能源管理選項(xiàng)。遷移虛擬機(jī)時(shí),需要更改這個(gè)文件的格式到KVM支持的xml文件,并且重新確認(rèn)文件信息的有效性。 .vmdk文件:包含虛擬磁盤的信息。虛擬機(jī)的文件系統(tǒng)就建立在.vmdk文件上。遷移時(shí)需要拷貝這個(gè)文件到KVM主機(jī),并且轉(zhuǎn)換成能夠被libvirt識別的文件格式。以下的虛擬機(jī)文件有些只在虛擬機(jī)處于的某種狀態(tài)時(shí)出現(xiàn),遷移過程中不會用到。例如當(dāng)虛擬機(jī)開啟時(shí)出現(xiàn).

8、vswp文件,當(dāng)虛擬機(jī)暫停時(shí)出現(xiàn).vmss文件。 .nvram文件:包括虛擬機(jī)啟動過程一部分的PhoenixBIOS。它類似于擁有BIOS芯片的物理服務(wù)器,能夠設(shè)置硬件配置選項(xiàng)。如果刪除的話,在虛擬機(jī)啟動時(shí)會自動地重新創(chuàng)建。 .vswpfile:這些文件的大小等于分配給虛擬機(jī)的內(nèi)存大小,再減去任何內(nèi)存預(yù)留(默認(rèn)是0)。這些文件通常創(chuàng)建在虛擬機(jī)里,但是只有當(dāng)ESX主機(jī)耗盡所有物理內(nèi)存時(shí)才使用。當(dāng)虛擬機(jī)關(guān)閉或暫停時(shí),這些文件將刪除。 .vmss文件:這個(gè)文件用于虛擬機(jī)暫停時(shí),保存虛擬機(jī)的存儲內(nèi)容,以便在重新開始時(shí)繼續(xù)運(yùn)行。 .vmsd文件:這個(gè)文件與快照一起使用,用于存儲元數(shù)據(jù)和其他活動在虛擬機(jī)里

9、的每個(gè)快照的信息。這個(gè)文本文件在創(chuàng)建快照之前的初始大小是0字節(jié),并在每次創(chuàng)建或刪除快照時(shí)更新信息。 .vmsn文件:這個(gè)文件與快照一起使用,用于存儲虛擬機(jī)在進(jìn)行快照時(shí)的狀態(tài)。每在虛擬機(jī)上創(chuàng)建一個(gè)快照就會生成一個(gè).vmsn文件,在刪除快照時(shí),文件自動刪除。 .log文件:這些文件創(chuàng)建來用于存儲虛擬機(jī)的日志信息,并常常用于故障檢查。在虛擬機(jī)目錄里,有大量的這樣的文件。當(dāng)前的日志文件通常命名為vmware.log。 .vmxf文件:這是一個(gè)附加配置文件,不用于ESX,用于與Workstation兼容的目的。這個(gè)文件是文本格式,Workstation用來聚合虛擬機(jī)(VMteaming),將多個(gè)虛擬機(jī)分

10、配成一組,作為一個(gè)單一對象開啟或關(guān)閉、暫?;蚧謴?fù)它們?;仨撌譾irt-v2V遷移VMwareESX虛擬機(jī)從RHEL6(RedHatEnterpriseLinux6)開始,RHEL發(fā)行版中包含了RedHat公司開發(fā)的virt-v2V工具。它是由perl語言編寫的腳本,可以自動化的將創(chuàng)建在Xen,KVM和VMwareESX上的虛擬機(jī)拷貝到virt-v2V的主機(jī),并且自動的更改配置,使之能夠被libvirt進(jìn)行管理。目前,virt-v2V支持靜態(tài)遷移下歹U虛擬機(jī):RHEL4、RHEL5,RHEL6,WindowsXP,WindowsVista,Windows7,WindowsServer2003和W

11、indowsServer2008。圖2.virt-v2V遷移VMware/Xen/KVM虛擬機(jī)示意圖本節(jié)中,將分別介紹如何使用機(jī)到KVM主機(jī)。遷移前的環(huán)境設(shè)置本文的KVM主機(jī)安裝最新的virt-v2v工具遷移VmwareESXi上的RHEL6.1操作系統(tǒng)(發(fā)布于2011年持KVM虛擬機(jī)的軟件qemu-kvm、libvirt、virt-manager和virt-v2VRHEL虛擬機(jī)和Windows7虛擬5月19日)。這樣,最基本的支工具都在發(fā)行版中安裝了。清單1.支持KVM虛擬機(jī)的軟件包rootlocalhost#rpm-qaqemu-kvmqemu-kvm--2.160.el6

12、.x86_64rootlocalhost#rpm-qalibvirtlibvirt-0.8.7-18.el6,x86_64rootlocalhost#rpm-qavirt-managervirt-manager-0.8.6-4.el6.noarchrootlocalhost#rpm-qavirt-v2vvirt-v2v-0.7.1-3.el6.x86_64為了使virt-v2V工具能夠自動化的遷移VMwareESX虛擬機(jī),盡量減少手動干預(yù),還需要在KVM主機(jī)上做一些設(shè)置。1 .安裝支持Windows虛擬機(jī)遷移的軟件。對于Windows虛擬機(jī)的遷移需要安裝libguestfs-winsuppor

13、t包來支持NTFS文件系統(tǒng)和virtio-win包來支持Windowspara-virtualized存儲和網(wǎng)絡(luò)設(shè)備驅(qū)動。清單2.安裝Windows虛擬機(jī)遷移的支持包rootvictory4v2v#rpm-ivhlibguestfs-winsupport-1.0-7.el6.x86_64.rpmvirtio-win-1.2.0-1.el6.noarch.rpmPreparing.#100%1:virtio-win#50%2:libguestfs-winsupport#100%2 .創(chuàng)建KVM主機(jī)存儲域virt-v2V在遷移虛擬機(jī)的過程中,需要拷貝被遷移虛擬機(jī)到KVM主機(jī)預(yù)先定義的存儲池中。存儲

14、池可以用libvirt工具創(chuàng)建。最簡單的方法就是使用virt-manager來創(chuàng)建新的存儲池。本文中創(chuàng)建了一個(gè)文件目錄類型的存儲池,位置在KVM主機(jī)系統(tǒng)的/home/images/migration目錄。圖3.使用virt-manager創(chuàng)建本地存儲域3 .創(chuàng)建KVM主機(jī)網(wǎng)絡(luò)接口虛擬機(jī)在遷移之后將連接KVM主機(jī)網(wǎng)絡(luò),因此主機(jī)必須有一個(gè)與之相匹配的網(wǎng)絡(luò)接口,比如說網(wǎng)橋。Linux系統(tǒng)上有很多工具可以創(chuàng)建網(wǎng)橋,其中RHEL6.1發(fā)行版上的virt-manager已經(jīng)支持創(chuàng)建和管理網(wǎng)橋。本文創(chuàng)建了網(wǎng)橋br0,并且綁定在eth0的接口上,具體配置如下圖。I圖4.使用virt-manager創(chuàng)建網(wǎng)橋4

15、.創(chuàng)建配置文件virt-v2v.conf在virt-v2v.conf文件中設(shè)置virt-v2V遷移的規(guī)則,包括網(wǎng)絡(luò)接口遷移后的映射,遷移的方式,存儲的位置,輸出的格式等等。這些規(guī)則也能以命令行參數(shù)的方式輸入,如-network,-o,-os,-of等。virt-v2v遷移VMware虛擬機(jī)的步驟在KVM主機(jī)上完成上節(jié)的準(zhǔn)備工作后,可以正式開始遷移VMwareESX上的虛擬機(jī)了。下面是遷移的具體步驟:1 .如果虛擬機(jī)上安裝了VMwareTools,必須先卸載它。因?yàn)镵VM的虛擬機(jī)不支持VMwareTools里面的虛擬驅(qū)動。2 .在VMwareESX上停止等待遷移的虛擬機(jī),因?yàn)関irt-v2V只支

16、持靜態(tài)遷移。3 .為自動登錄VMwareESX服務(wù)器創(chuàng)建.netrc文件。VMwareESX服務(wù)器的連接需要授權(quán),virt-v2V支持密碼方式的授權(quán)連接,可以從$HOME/.netrc文件中讀取密碼并自動登錄。如果主機(jī)系統(tǒng)沒有這個(gè)文件,就手動創(chuàng)建它。并且.netrc文件需要0600權(quán)限,使virt-v2V工具可以正確讀取它。清單rc文件的格式loginrootpasswordxxxxxx4 .使用virt-v2V命令進(jìn)行遷移。VMwareESX服務(wù)器采用HTTPS連接方式,連接時(shí)需要配置SSL證書。本文通過添加?noverify=1'至UVMware服務(wù)器的URI連接中,來關(guān)閉證書檢查

17、。清單4.virt-v2V遷移命令及參數(shù)virt-v2V-icesx:/-是ESX服務(wù)器主機(jī)名或IPAddresspool-本地主機(jī)存儲池,用來保存鏡像brname-本地主機(jī)網(wǎng)橋名字,用來連接遷移后的虛擬機(jī)網(wǎng)絡(luò)vm-name-虛擬機(jī)的名字5 .遷移成功后,虛擬機(jī)出現(xiàn)在virt-manager管理的虛擬機(jī)列表中。通過virt-manager工具啟動虛擬機(jī)。6 .檢查遷移后的虛擬機(jī)的設(shè)備驅(qū)動。如果需要,重新安裝虛擬設(shè)備驅(qū)動。7 .驗(yàn)證遷移后的虛擬機(jī)的配置和系統(tǒng)是否和遷移之前一致。二virt-v2v遷移實(shí)例:Linux虛擬機(jī)RHEL5.5本例將遷移創(chuàng)建在VMWareESXi服務(wù)器上的RHEL5.5虛

18、擬機(jī)到KVM主機(jī)上,并使遷移后的虛擬機(jī)被libvirt管理。本例的環(huán)境中,VMwareESXi服務(wù)器和KVM主機(jī)通過網(wǎng)絡(luò)連接,虛擬機(jī)鏡像被各自的存儲管理。圖5,virt-v2v遷移RHEL5虛擬機(jī)的環(huán)境下面就開始正式的遷移:1 .在VMwareESXi上檢測RHEL5.5虛擬機(jī),如果安裝了VMwareTools,先卸載它。2 .在VMwareESXi上關(guān)閉RHEL5.5虛擬機(jī)。3 .在KVM主機(jī)上創(chuàng)建或修改$HOME/.netrc文件,添加VMwareESXi服務(wù)器的用戶名和密碼。清單5.修改.netrc文件rootlocalhosthome#cat/.netrcmachine9.123.99

19、.913loginrootpasswordxxxxxxrootlocalhosthome#chmod0600/.netrc4,開始遷移虛擬機(jī)。KVM的存儲是遷移前準(zhǔn)備好的存儲域migration,文件格式采用libvirt支持的qcow2,網(wǎng)絡(luò)連接方式與VMware虛擬機(jī)相同,采用網(wǎng)橋。清單6.遷移RHEL5.5虛擬機(jī)rootlocalhost#virt-v2V-icesx:/9.123.99,193/?no_verify=1- osmigration-ofqcow2-bridgebr0RHEL5.5UsingCPUmodel"cpu64-rhel6"RHEL5.5_RHE

20、L5,5:100%=D0h22m52sUsingCPUmodel"cpu64-rhel6"virt-v2v:RHEL5.5configuredwithvirtiodrivers參數(shù)說明- osmigration:遷移虛擬機(jī)的鏡像文件到主機(jī)上的存儲池- ofqcow2:轉(zhuǎn)換遷移后虛擬機(jī)的文件格式- -bridgebr0:設(shè)置遷移后虛擬機(jī)的網(wǎng)絡(luò)映射到網(wǎng)橋br0RHEL5.5:VmwareESXi上虛擬機(jī)的名字,遷移后保持名字一致5.在KVM主機(jī)上啟動virt-manager軟件,就會發(fā)現(xiàn)遷移后的虛擬機(jī)已經(jīng)被libvirt管理了。圖6.virt-manager管理遷移后的RHEL

21、5.5虛擬機(jī)6.深入比較遷移前在VMwareESXi上的虛擬機(jī)和遷移后在KVM上的虛擬機(jī)。表1.RHEL5.5虛擬機(jī)遷移前后在VMwareESXi和KVM上的比較RHEL5.5VMwareESXiKVM/Libvirt結(jié)論CPUsIntelXeon5160x2QEMUvCPU數(shù)量一致,類型和轉(zhuǎn)化為虛擬CPU,主頻和支持的flags(cpu64-rhel6)化Memory1384M1384M數(shù)量一致HardDisk18GB,18GB大小一致,總線接口和文件系統(tǒng)轉(zhuǎn)換為適合libvirt的類型LSILogicSCSIvirtioSCSIVMDKqcow2CDROMIDEIDE類型一致NetworkM

22、ACMACMac相同,網(wǎng)卡類型和連接方式轉(zhuǎn)換為適合libvirt的類型Adaptor00:0c:29:a9:7b:8300:0c:29:a9:7b:83Type:e1000Type:virtiovSwitch0bridgebr0DHCPDHCPVideoCardVmwareSVGAModel:Cirrus轉(zhuǎn)換為libvirt支持的類型4MVideoRAM9MRAM系統(tǒng)用戶root/admin001root/admin001一致磁盤分區(qū)VolGroup00VolGroup00邏輯卷一致,物理盤符有變化。/dev/sda/dev/vda從表中的比較看出,RHEL5.5從VMwareESXi服務(wù)器遷

23、移到KVM主機(jī)上后,由于Hypervisor的不同,硬件發(fā)生了很大的變化。但是virt-v2V工具很好的解決的這個(gè)問題,使用virtio虛擬設(shè)備驅(qū)動使RHEL5.5系統(tǒng)遷移后能夠流暢的運(yùn)行。除了RHEL5,virt-v2v還支持RHEL4及RHEL6版本的遷移。virt-v2V遷移實(shí)例:Windows虛擬機(jī)WinXP,Win7本例中將介紹如何使用virt-v2V工具遷移創(chuàng)建在VMwareESXi上的Windows虛擬機(jī),包括WindowsXPSP332bit中文版和Windows7Professional32bit中文版。本節(jié)的環(huán)境中,KVM主機(jī)上安裝了virt-v2V及相應(yīng)的支持包libgu

24、estfs-winsupport和virtio-win。VMwareESXi服務(wù)器和KVM主機(jī)通過網(wǎng)絡(luò)連接,虛擬機(jī)鏡像被各自的存儲管理。圖7.virt-v2V遷移Windows虛擬機(jī)的環(huán)境下面是正式的遷移步驟:1 .在VMwareESXi上檢測WinXP和Win7虛擬機(jī),如果安裝了VMwareTools,先卸載它。2 .在VMwareESXi上關(guān)閉WinXP和Win7虛擬機(jī)。3 .在KVM主機(jī)上創(chuàng)建或修改$HOME/.netrc文件,添加VMwareESXi服務(wù)器的用戶名和密碼。4 .開始遷移虛擬機(jī)。KVM的存儲是遷移前準(zhǔn)備好的存儲域migration,文件格式采用libvirt支持的qcow

25、2,網(wǎng)絡(luò)連接方式與VMware虛擬機(jī)相同,采用網(wǎng)橋。清單7.遷移WinXP虛擬機(jī)rootlocalhost#virt-v2V-icesx:/93/?no_verify=1-osmigration-ofqcow2-bridgebr0WinXPUsingCPUmodel"cpu64-rhel6"WinXP_WinXP:100%=D0h11m13sUsingCPUmodel"cpu64-rhel6"virt-v2v:WARNING:Thereisnovirtionetdriveravailableinthedirectoryspecifie

26、dforthisversionofWindows.Theguestwillbeconfiguredwithartl8139networkadapter,butnodriverwillbeinstalledforit.Ifthertl8139driverisnotalreadyinstalledintheguest,youmustinstallitmanuallyafterconversion.virt-v2v:WinXPconfiguredwithvirtiostorageonly.清單8.遷移Win7虛擬機(jī)rootlocalhost#virt-v2v-icesx:/9.123.99,193/

27、?no_verify=1-osmigration-ofqcow2-bridgebr0Win7UsingCPUmodel"cpu64-rhel6"Win7_Win7:100%=D0h35m41sUsingCPUmodel"cpu64-rhel6"virt-v2v:Win7configuredwithvirtiodriversrootlocalhost#5 .遷移完成后,在KVM主機(jī)上啟動virt-manager軟件,會發(fā)現(xiàn)遷移后的Windows虛擬機(jī)已經(jīng)被libvirt管理了。6 .在KVM上啟動虛擬機(jī)后,由于更新了一些虛擬硬件設(shè)備,可能需要重新安裝驅(qū)動程

28、序和重啟系統(tǒng)。7 .深入比較遷移前在VMwareESXi上的虛擬機(jī)和遷移后在KVM上的虛擬機(jī),表2.WinXP虛擬機(jī)遷移前后在VMwareESXi和KVM上的比較WinXPVMwareESXiKVM/Libvirt結(jié)論CPUsIntelXeon5160IntelPentiumII處理器數(shù)量一致,類型和轉(zhuǎn)化為虛擬CPU,主頻和支持的變化flagsMemory1256M1256M數(shù)量一致HardDisk8GB,VmwareVirtualIDEVMDK8GBVirtioSCSIqcow2大小一致,總線接口和文件系統(tǒng)轉(zhuǎn)換為適合libvirt的類型CDROMVMwareIDEIDE類型一致Network

29、AdaptorMAC00:0c:29:83:86:d7Type:PCNETvSwitch0DHCPMAC00:0c:29:83:86:d7Type:rtl8139bridgebr0DHCPMac相同,網(wǎng)卡類型和連接方式轉(zhuǎn)換為適合libvirt的類型VideoCardVmwareSVGA4MVideoRAMModel:Cirrus9MRAM轉(zhuǎn)換為libvirt支持的類型系統(tǒng)Administrator/admin001Administrator/admin001一致磁盤分區(qū)C:C:一致D:D:表3,Win7虛擬機(jī)遷移前后在VMwareESXi和KVM上的比較Win7VMwareESXiKVM/Li

30、bvirt結(jié)論CPUsIntelXeon5160x2X86family6x2數(shù)量一致,類型和轉(zhuǎn)化為虛擬CPU,主頻和支持的flags變化Memory1024M1024M數(shù)量一致HardDisk24GB,24GB大小一致,總線接口和文件系統(tǒng)轉(zhuǎn)換為適合libvirt的類型LSILogicSCSIVirtioSCSIVMDKqcow2CDROMVMwareIDEIDE類型一致NetworkMAC00:0c:29:64:de:6aMAC00:0c:29:64:de:6aMac相同,網(wǎng)卡類型和連接方式轉(zhuǎn)換為適合libvirt的類型AdaptorType:e1000Type:virtiovSwitch0b

31、ridgebr0DHCPDHCPVideoCardVmwareSVGAModel:Cirrus轉(zhuǎn)換為libvirt支持的類型8MVideoRAM9MRAM系統(tǒng)Administrator/admin001Administrator/admin001一致磁盤分區(qū)C:C:一致D:D:從表中的比較看出,Windows虛擬機(jī)從VMwareESXi服務(wù)器遷移到KVM主機(jī)上后,由于Hypervisor的不同,硬件發(fā)生了很大的變化。Virt-v2V工具盡量在KVM虛擬機(jī)上使用Virtio虛擬設(shè)備加速系統(tǒng)的IO設(shè)備。WinXP虛擬機(jī)的遷移后,使用了磁盤的virtio驅(qū)動而網(wǎng)絡(luò)設(shè)備使用默認(rèn)的rtl8139。Win

32、7虛擬機(jī)的遷移后磁盤和網(wǎng)絡(luò)全部使用virtio的驅(qū)動。Virt-v2v還支WindowsVista,Win2003,Win2008虛擬機(jī)從VMwareESX/ESXi上的遷移,步驟和WinXP,Win7虛擬機(jī)類似。virt-v2V遷移小結(jié)virt-v2v工具自動化的解決了VMwareESX/ESXi服務(wù)器上的RHEL虛擬機(jī)和Windows虛擬機(jī)遷移到KVM主機(jī)的問題。而且在遷移的過程中盡量的使用virtio驅(qū)動提高IO設(shè)備的性能。但是,virt-2v2工具也有一些局限性。比如只支持虛擬機(jī)關(guān)機(jī)情況下的靜態(tài)遷移;只支持RHEL虛擬機(jī)和Windows虛擬機(jī)的遷移;不支持VMware虛擬機(jī)快照的遷移。

33、對于創(chuàng)建在VMwareWorkstation/Player上的虛擬機(jī),目前virt-v2V還不支持自動遷移。但是我們可以用手動遷移的方法完成到KVM主機(jī)的遷移。請看下節(jié):手動遷移VMwareWorkstation/Player上的虛擬機(jī)到KVM。手動遷移VMwareWorkstation/Player上的虛擬機(jī)到KVM從物理機(jī)的文件系統(tǒng)看,VMware虛擬機(jī)是由一組文件組成。這些文件可能集中存儲在存儲服務(wù)器上,如VMwareESX/ESXi,也可能存儲在本地,如VMwareWorkstation/Player。關(guān)閉虛擬機(jī)的情況下,這些文件內(nèi)容不會改變。所以我們可以用手動遷移的方法,拷貝這些文件

34、到KVM主機(jī)并且轉(zhuǎn)換這些文件的格式或內(nèi)容,使libvirt能夠管理和識別。這樣就完成了VMware虛擬機(jī)的手動遷移。手動遷移的準(zhǔn)備工作在VMware虛擬機(jī)眾多的文件中,最重要的是虛擬機(jī)鏡像文件.vmdk和系統(tǒng)配置文件.xml。所以手動遷移就是要分別處理這兩種文件。 合并分散的vmdk鏡像文件。在VMwareWorkstation上創(chuàng)建虛擬機(jī)的時(shí)候,可以選擇存儲虛擬磁盤為一個(gè)文件或多個(gè)文件。但是libvirt不能管理多個(gè)文件組成的磁盤鏡像,所以需要在遷移前合并這些文件為一個(gè)單獨(dú)的文件。VMwareWorkstation自帶了離線的磁盤管理工具vmware-vdiskmanager.exe來合并v

35、mdk文件。圖8.多個(gè)文件存儲的VMware虛擬機(jī) qemu-img轉(zhuǎn)換vmdk的文件格式。KVM主機(jī)上安裝qemu-img包,可以察看并轉(zhuǎn)換vmdk文件到raw/qcow2文件格式。 創(chuàng)建xml文件。VMware的系統(tǒng)配置文件是vmx,必須轉(zhuǎn)換成libvirt能夠識別的xml格式。一種方法是根據(jù)VMware虛擬機(jī)的硬件信息,手動創(chuàng)建一個(gè)新的xml文件;另一種方法是利用工具輔助轉(zhuǎn)換vmx文件。比如virt-goodies/vmware2libvirt工具,可以從下面link下載安裝virt-goodies:下面我們以VMwareWorkstations上的SUSELinuxEnterprise

36、Server11SP1虛擬機(jī)和VMwarePlayer上的Windows2008R2虛擬機(jī)為例,詳細(xì)介紹遷移到KVM主機(jī)的步驟。手動遷移VMwareWorkstation上的SLES11SP1虛擬機(jī)VMwareWorkstation軟件安裝在一個(gè)WindowsXP系統(tǒng)上,然后創(chuàng)建SLES11SP1虛擬機(jī)。虛擬機(jī)的文件都存儲在本地。KVM主機(jī)通過網(wǎng)絡(luò)連接到WindowXP系統(tǒng)。圖9.手動遷移SLES11SP1虛擬機(jī)的環(huán)境Network.上檢查SLES11SP1虛擬機(jī),如果安裝了卸載它。vmdk文件中,所以需要在遷移前合并他遷移的過程如下:1.登錄宿主機(jī)WindowsXP系統(tǒng),在VMwareWor

37、kstationVMwareTools,以root用戶運(yùn)行vmware-uninstall-tools.pl2.關(guān)閉SLES11SP1虛擬機(jī)。3 .檢查虛擬機(jī)的鏡像文件。本例中,虛擬機(jī)的鏡像存儲在多個(gè)們。I合并多個(gè)vmdk文件圖10.用vmware-vdiskmanager.exet:lkjCMfnehl.!;wmlSttlinsr&xAdiriliiit;trftt«p,1BH3LC6714551EMyDucumentuvftyUwtiifll£SP1VolumeinJ廿忤CTrnr;no1晶力01.UqluneNiLnbci'68U&-RKBDP

38、irectoi*fllC:<DccnnerttzAnnSottmXflnanj?;trjitor»iBhJlC67J?i5GlExJlvtsU:lUfIMnnk'inct由Pl.7/1W/20(1.lak7/tSy*2Btl什;UJT皿177ntzatail7/l«/2tT£l132:?333ijPM口方一t(9D*2H占-口邑&&6d2*?14VBnJjHaa.If9ca2iflitJJ.“4H27I唯-47ed學(xué)HchH7Fld1干九心6代通3.3一7Z1S2B117/lSlftlll7/i8Z28iiTzieaoii7/1HZ2

39、0117/1820117zlflz20i17/lfiz2BL17/18PL17/lMzatkLl7/l«z20l1iHHHHHrlHHHrlHHHHHHnrlr1t1HlEr<PFnrFPPFFFFPFPPPPFFPFPii1lut1llixllnils1111N33?*33*33MMN*3yMNJ?0b=M4二二««二=1:=二一:£53333333333333333.3333Mu甘nHs;UMRqtiBM留eq!s豺Ijefi474.日2sL2纜32T.&HM329f6RV!327.日日百JZ74E>8©327.6803

40、27.&RH彳27.白討國327680327,68066.53G名,百84892(D1B>總才總?,&JZG3227Lautonsrtr,fautoInst.iwtrSLEUllSri上財(cái)Hl.orulliSISitSPt-!iRO2.unrtl<KhFSIIJ?P1-sO03.”ndl(SLEllEPl-iKH4.undkSLESllSri-cUldb.vndkSi.ESllPl-£«06.undhSLPS1fSPl-037.un4kSKESAl$Fl-?«9ervmJtlsS3,fMISPLstiE.unilkSLEE11KP1-C

41、O10.umlkSLfcJlSPl-BljunnkSLESil&PlwmriSLESllSPl.vndHSLES1ISPIIcKELESItSPIndSLES11&P1.mxSLLUllSPl."unM.Lck3LES11EP1川mkFviiHjre_16«(hy±embvtesf'c<iCBncuniLi;GmlSettSfidnini5l;rcktni*EH-JlCG?14r>51EhvDfrcwncntgLiti«s>-SL"ES1±SFl>"C:SPi-ttg?'

42、;nFilv:;、UM:rdrtiFUHiMftUui-kstri(»riuft17+re-vJ;*;kridHnrexc1*-rSIESLISPI,vrHlk一Fl$LE£tl客產(chǎn)1-帛力i】v.wzdk3RSAtinydi,tk*SLES11SFL-eingl.unnlk*Conuei,t:1君gdonf:XE'-fcuet1.d;=kcenucroIonsuccessFu1.4 .拷貝合并后的vmdk文件到KVM主機(jī)上。本例中,拷貝文件SLES11SP1-single.vmdk至IKVM主機(jī)的/home/images/migration目錄下。并且使用qemu

43、-img工具將vmdk文件轉(zhuǎn)換成qcow2格式的文件。可以看出,轉(zhuǎn)換后鏡像文件SLES11SP1-single.img的實(shí)際大小3.9G和最大范圍20G沒有改變,僅僅是文件系統(tǒng)類型變化了。清單9.轉(zhuǎn)換vmdk文件到qcow2格式rootlocalhostmigration#qemu-imginfoSLES11SP1-single.vmdkimage:SLES11SP1-single.vmdkfileformat:vmdkvirtualsize:20G(21474836480bytes)disksize:3.9Grootlocalhostmigration#qemu-imgconvert-fvm

44、dk-Oqcow2SLES11SP1-single.vmdkSLES11SP1-single.imgrootlocalhostmigration#qemu-imginfoSLES11SP1-single.imgimage:SLES11SP1-single.imgfileformat:qcow2virtualsize:20G(21474836480bytes)disksize:3.9Gcluster_size:655365 .轉(zhuǎn)換vmx文件。本例介紹第一種方法,即手動創(chuàng)建vmx文件。首先要找出SLES11SP1虛擬機(jī)全部虛擬設(shè)備信息,這些信息可以從VMwareWorkstation的管理界面和虛

45、擬機(jī)系統(tǒng)的系統(tǒng)信息獲得;然后在KVM主機(jī)上的virt-manager中,以第4步轉(zhuǎn)換完成的鏡像文件SLES11SP1-single.img為基礎(chǔ)創(chuàng)建一個(gè)虛擬機(jī);最后添加與VMware相同或類似的硬件,并且盡量保證數(shù)量、類型和配置的一致,包括CPU和MEM數(shù)量、系統(tǒng)構(gòu)架、網(wǎng)絡(luò)類型、MAC地址等。圖11.VMwareWorkstation上查看虛擬機(jī)的硬件信息VirtualMachineSttin整:Hsdwjfeotfcn?Dei«Sumwrytaory鞋較W5S676SM3ZriHaidDiskfSI)20Gfc'Qsm(陽由op附童版MSAdapter白血苗beet也由de

46、beclNATDiskfileiESHSPLdk©U5&ControFerP七sentliSoundcardAirtodat«ctQoisplayAufeodeteetCapacityCurrent而:3JGBSystcJrlFrfte:GUMaxtmuii5口e;£0田DiskInformIonD&k即misruotprTloc虱cdforthis卜寸dciskHarddi5k匚onhen由日電storedrimutjplefiles.Advanced.-圖12.手動配置KVM虛擬機(jī)SLCSL13P1VlrtuiJMachineFitevirtu

47、alMKhine整ewSendKey/Ovw廊virtualDMtPerformamceprocessMemoryB-DOtCkptKMIS-Tsrg-etdeviceil&CDisk1Wohjpath:由。小目?m組&ymiyrailon/SLKUSPl-sIriglE.imgStorage弓E20jDOG0Fadmljc口Shireable:IDECDROM101Floppy1的NC.5B:I6J3'Mouse逑口加1時(shí)內(nèi)u|fSoundas337O&Sensill露.陋已l(J6t>rPO(?Z明S3CentreIlerIDE|ControilerF

48、loppyAdvancedofitions3匚hemodeDisk口3noneDECtTip;souircv1referstoinfermotionSnh&mthe卜國OS,J'white'target"refersIgimfcrmmtroTi5eenfrqintheguet05AddHArd方力,中Bemcwept6 .設(shè)置完成后,自動創(chuàng)建KVM虛擬機(jī)的配置文件/etc/libvirt/qemu/SLES11SP1.xml,并且virt-manager可以管理這個(gè)SLES虛擬機(jī)了。在libvirt上啟動虛擬機(jī),手動配置虛擬機(jī)系統(tǒng)以適應(yīng)新的硬件。7,深入比較遷

49、移前在VMwareWorkstation上的虛擬機(jī)和遷移后在KVM上的虛擬機(jī)。表4,SLES11SP1虛擬機(jī)遷移前后在VMwareWorkstation和KVM上的比較SLES11SP1VMwareWorkstationKVM/Libvirt結(jié)論CPUsIntelCore2x2QEMUvCPUx2數(shù)量一致,化類型和轉(zhuǎn)化為虛擬CPU,主頻和支持的flagsMemory768M768M數(shù)量一致HardDisk20GBLSILogicSCSIVMDK20GBIDEqcow2大小一致,總線接口和文件系統(tǒng)轉(zhuǎn)換為適合libvirt的類型CDROMIDEIDE類型一致Floppy類型一致USBControl

50、lerUSB2.0PhysicalUSBdevicelibvirt對USB的支持較弱NetworkAdaptorMAC00:0c:29:68:16:33Type:PCNetNATVirtualDHCPMAC00:0c:29:a9:7b:83Type:VirtioNATVirtualDHCPMac相同,網(wǎng)卡類型和連接方式轉(zhuǎn)換為適合libvirt的類型VideoCardVmwareSVGAModel:Cirrus9MRAM轉(zhuǎn)換為libvirt支持的類型AudiodeviceES1371ES1370轉(zhuǎn)換為libvirt支持的類型系統(tǒng)用戶root/admin001root/admin001一致磁盤分區(qū)

51、/dev/sda1/dev/sda2/dev/sda1/dev/sda2物理盤符及系統(tǒng)分區(qū)一致和使用virt-v2v自動化遷移工具相比,手動遷移增加了很多工作和不確定性。在本系列文章第一篇列舉了"Linux系統(tǒng)在虛擬機(jī)遷移中的技術(shù)難點(diǎn)”,此處正好驗(yàn)證了手動遷移中需要注意的問題。比如在本例中,有以下兩個(gè)問題:如何選擇磁盤總線類型。virt-v2v工具自動選擇virtio磁盤驅(qū)動來提高KVM虛擬機(jī)的性能,但是在本例中,SLES虛擬機(jī)不能直接使用virtio磁盤驅(qū)動。因?yàn)镾LES系統(tǒng)的磁盤分區(qū)名在/etc/fstab被硬編碼為/dev/sda,而virtio磁盤分區(qū)名為/dev/vda,直

52、接使用virtio磁盤驅(qū)動會導(dǎo)致系統(tǒng)找不到分區(qū)而無法啟動的錯(cuò)誤。所以本例為KVM虛擬機(jī)選擇了性能較差的IDE磁盤類型。Xwindow需要重新配置。SLES虛擬機(jī)不能自動處理顯示設(shè)備的變化,所以需要手動運(yùn)行SaX2重新配置Xwindow并重新啟動gdm。實(shí)際上,手動把SLES虛擬機(jī)里面關(guān)于磁盤分區(qū)的硬編碼全部改成UUID后,就可以使用高性能的virtio磁盤驅(qū)動。具體操作方法將在本系列文章的第五部分介紹。手動遷移VMwarePlayer上的Win2008R2虛擬機(jī)VMwarePlayer軟件安裝在Linux系統(tǒng)上,然后創(chuàng)建了Windows2008R2虛擬機(jī)。虛擬機(jī)的文件都存儲在本地。KVM主機(jī)通

53、過網(wǎng)絡(luò)連接到VMwarePlayer的主機(jī)系統(tǒng)。圖13.手動遷移Win2008R2虛擬機(jī)的環(huán)境設(shè)置Linux.VMwarePlayer遷移的過程如下:1 .登錄宿主機(jī)Linux系統(tǒng),在VMwarePlayer上檢查Win2008R2虛擬機(jī),如果安裝了VMwareTools,必須先卸載它。2 .關(guān)閉Win2008R2虛擬機(jī),因?yàn)槭謩舆w移必須保持虛擬機(jī)文件的一致性。3 .檢查虛擬機(jī)的鏡像文件。如果虛擬機(jī)的鏡像存儲在多個(gè)vmdk文件中,需要在遷移前合并。本例的VMware虛擬機(jī)存儲在單獨(dú)的vmdk文件中,所以略過此步。4 .拷貝vmdk文件到KVM主機(jī)上。本例中,拷貝Win2008R2.vmdk文件到KVM主機(jī)的/home/images/migration目錄下。并且使用qemu-img工具將vmdk文件轉(zhuǎn)換成qcow2格式的文件。可以看出,轉(zhuǎn)換后鏡像文件Win2008R2.img的實(shí)際大小6.4G和最大范圍20G沒有改變,僅僅是文件系統(tǒng)類型變化了。清單10.轉(zhuǎn)換vmdk文件到qcow2格式rootlocalhostmigration#qemu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論