資源描述:
《kvm虛擬機(jī)在物理主機(jī)之間遷移的實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、V2V虛擬機(jī)遷移的介紹V2V虛擬機(jī)的遷移是指在VMM(VirtualMachineMonitor)上運(yùn)行的虛擬機(jī)系統(tǒng),能夠被轉(zhuǎn)移到其他物理主機(jī)上的VMM上運(yùn)行。VMM對(duì)硬件資源進(jìn)行抽象和隔離,屏蔽了底層硬件細(xì)節(jié)。而遷移技術(shù)的出現(xiàn),使得操作系統(tǒng)能在不同的主機(jī)之間動(dòng)態(tài)的轉(zhuǎn)移,進(jìn)一步解除軟,硬件資源之間的相關(guān)性。本系列的第一篇文章“虛擬機(jī)遷移技術(shù)漫談''中,介紹了V2V遷移的三種方式,本文將更加詳細(xì)的說明三種方式的不同和實(shí)現(xiàn)方法。V2V遷移方式的分類靜態(tài)遷移靜態(tài)遷移:也叫做常規(guī)遷移、離線遷移(OfflineMigration)。就是在虛擬機(jī)關(guān)機(jī)或暫停的情況下從一臺(tái)物理機(jī)遷移到另一臺(tái)物理機(jī)。
2、因?yàn)樘摂M機(jī)的文件系統(tǒng)建立在虛擬機(jī)鏡像上面,所以在虛擬機(jī)關(guān)機(jī)的情況下,只需要簡(jiǎn)單的遷移虛擬機(jī)鏡像和相應(yīng)的配置文件到另外一臺(tái)物理主機(jī)上;如果需要保存虛擬機(jī)遷移Z前的狀態(tài),在遷移Z前將虛擬機(jī)暫停,然后拷貝狀態(tài)至目的主機(jī),最后在目的主機(jī)重建虛擬機(jī)狀態(tài),恢復(fù)執(zhí)行。這種方式的遷移過程需要顯式的停止虛擬機(jī)的運(yùn)行。從用戶角度看,有明確的一段停機(jī)時(shí)間,虛擬機(jī)上的服務(wù)不可用。這種遷移方式簡(jiǎn)單易行,適用于對(duì)服務(wù)可用性要求不嚴(yán)格的場(chǎng)合。共享存儲(chǔ)的動(dòng)態(tài)遷移動(dòng)態(tài)遷移(LiveMigration):也叫在線遷移(OnlineMigration)o就是在保證虛擬機(jī)上服務(wù)正常運(yùn)行的同時(shí),將一個(gè)虛擬機(jī)系統(tǒng)從一個(gè)物理主機(jī)
3、移動(dòng)到另一個(gè)物理主機(jī)的過程。該過程不會(huì)對(duì)最終用戶造成明顯的影響,從而使得管理員能夠在不影響用戶正常使用的情況下,対物理服務(wù)器進(jìn)行離線維修或者升級(jí)。與靜態(tài)遷移不同的是,為了保證遷移過程中虛擬機(jī)服務(wù)的可用,遷移過程僅有非常短暫的停機(jī)時(shí)間。遷移的前面階段,服務(wù)在源主機(jī)的虛擬機(jī)上運(yùn)行,當(dāng)遷移進(jìn)行到一定階段,目的主機(jī)已經(jīng)具備了運(yùn)行虛擬機(jī)系統(tǒng)的必須資源,經(jīng)過一個(gè)非常短暫的切換,源主機(jī)將控制權(quán)轉(zhuǎn)移到目的主機(jī),虛擬機(jī)系統(tǒng)在日的主機(jī)上繼續(xù)運(yùn)行。對(duì)于虛擬機(jī)服務(wù)本身而言,由于切換的時(shí)間非常短暫,用戶感覺不到服務(wù)的中斷,因而遷移過程對(duì)用戶是透明的。動(dòng)態(tài)遷移適用于對(duì)虛擬機(jī)服務(wù)可用性要求很高的場(chǎng)合。目前主流的動(dòng)
4、態(tài)遷移工具,VMware的VMotion,Citrix的XenMotion,他們都依賴于物理機(jī)之間釆用SAN(storageareanetwork)或NAS(network-attachedstorage)之類的集中式共亭外存設(shè)備,因而在遷移吋只需要進(jìn)行虛擬機(jī)系統(tǒng)內(nèi)存執(zhí)行狀態(tài)的遷移,從而獲得較好的遷移性能。圖1.共享存儲(chǔ)的動(dòng)態(tài)遷移示意圖Intranw如圖1中所示的動(dòng)態(tài)遷移,為了縮短遷移時(shí)I'可和服務(wù)中斷時(shí)間,源主機(jī)和目的主機(jī)共享了SAN存儲(chǔ)。這樣,動(dòng)態(tài)遷移只需要考慮虛擬機(jī)系統(tǒng)內(nèi)存執(zhí)行狀態(tài)的遷移,從而獲得較好的性能。本地存儲(chǔ)的動(dòng)態(tài)遷移動(dòng)態(tài)遷移基于共享存儲(chǔ)設(shè)備,為的是加速遷移的過程,盡量
5、減少宕機(jī)時(shí)間。但是在某些情況下需要進(jìn)行基于本地存儲(chǔ)的虛擬機(jī)的動(dòng)態(tài)遷移,這就需要存儲(chǔ)塊動(dòng)態(tài)遷移技術(shù),簡(jiǎn)稱塊遷移。?比如某些服務(wù)器沒有使用SAN存儲(chǔ),而且遷移的頻率很小,虛擬機(jī)上的服務(wù)對(duì)遷移時(shí)間的要求不嚴(yán)格,則可以使用存儲(chǔ)塊動(dòng)態(tài)遷移技術(shù);另一方面,SAN存儲(chǔ)的價(jià)格比較高,盡管SAN存儲(chǔ)能夠提高遷移性能和系統(tǒng)的穩(wěn)定性,對(duì)于屮小企業(yè)僅僅為了加快遷移速度而配置昂貴的SAN存儲(chǔ),性價(jià)比不高。?在集中式共亨外部存儲(chǔ)的環(huán)境下,基于共亨存儲(chǔ)的動(dòng)態(tài)遷移技術(shù)無疑能夠工作得很好。但是,考慮到目前一些計(jì)算機(jī)集群并沒有采用共享式外存,而是各自獨(dú)立擁有本地外存的物理主機(jī)構(gòu)成?;诠蚕泶鎯?chǔ)的遷移技術(shù)在這種場(chǎng)合下受到
6、限制,虛擬機(jī)遷移到目的主機(jī)后,不能訪問其原有的外存設(shè)備,或者需要源主機(jī)為其外存訪問提供支持。為了拓寬動(dòng)態(tài)遷移技術(shù)的應(yīng)用范圍,有必要實(shí)現(xiàn)一個(gè)包括虛擬機(jī)外存遷移在內(nèi)的全系統(tǒng)動(dòng)態(tài)遷移方案。使得在采用分散式本地存儲(chǔ)的計(jì)算機(jī)集群環(huán)境下,仍然能夠利用遷移技術(shù)轉(zhuǎn)移虛擬機(jī)環(huán)境,并且保證遷移過程中虛擬機(jī)系統(tǒng)服務(wù)的可用性。圖2.本地存儲(chǔ)的動(dòng)態(tài)遷移示意圖Intranet相比較基于共亨存儲(chǔ)的動(dòng)態(tài)遷移,數(shù)據(jù)塊動(dòng)態(tài)遷移的需要同吋遷移虛擬機(jī)磁盤鏡像和虛擬機(jī)系統(tǒng)內(nèi)存狀態(tài),延長(zhǎng)了遷移時(shí)間,在遷移性能上打了折扣。KVM虛擬機(jī)的管理工具準(zhǔn)確來說,KVM僅僅是Linux內(nèi)核的一個(gè)模塊。管理和創(chuàng)建完整的KVM虛擬機(jī),需要更多
7、的輔助工具。?QEMU-KVM:在Linux系統(tǒng)中,首先我們可以用modprobe系統(tǒng)工具去加載KVM模塊,如果用RPM安裝KVM軟件包,系統(tǒng)會(huì)在啟動(dòng)時(shí)自動(dòng)加載模塊。加載了模塊后,才能進(jìn)一步通過其他工具創(chuàng)建虛擬機(jī)。但僅有KVM模塊是遠(yuǎn)遠(yuǎn)不夠的,因?yàn)橛脩魺o法直接控制內(nèi)核模塊去做事情,還必須有一個(gè)用戶空I'可的工具。關(guān)于用戶空I'可的工具,KVM的開發(fā)者選擇了已經(jīng)成型的開源虛擬化軟件QEMU。QEMU是一個(gè)強(qiáng)大的虛擬化軟件,它可以虛擬不同的CPU構(gòu)架。比如說在