虛擬化學(xué)習(xí)筆記-虛擬機(jī)遷移的分類及原理

物理機(jī)到虛擬機(jī)的遷移(Physical-to-Virtual)

P2V 指遷移物理服務(wù)器上的操作系統(tǒng)及其上的應(yīng)用軟件和數(shù)據(jù)到 VMM(Virtual Machine Monitor)管理的虛擬服務(wù)器中。這種遷移方式,主要是使用各種工具軟件,把物理服務(wù)器上的系統(tǒng)狀態(tài)和數(shù)據(jù)“鏡像”到 VMM 提供的虛擬機(jī)中,并且在虛擬機(jī)中“替換”物理服務(wù)器的存儲(chǔ)硬件與網(wǎng)卡驅(qū)動(dòng)程序。只要在虛擬服務(wù)器中安裝好相應(yīng)的驅(qū)動(dòng)程序并且設(shè)置與原來(lái)服務(wù)器相同的地址(如 TCP/IP 地址等),在重啟虛擬機(jī)服務(wù)器后,虛擬服務(wù)器即可以替代物理服務(wù)器進(jìn)行工作。

P2V 遷移方法

手動(dòng)遷移:

手動(dòng)完成所有遷移操作,需要對(duì)物理機(jī)系統(tǒng)和虛擬機(jī)環(huán)境非常了解。關(guān)閉原有的物理機(jī)上的服務(wù)和操作系統(tǒng),并且從其他媒質(zhì)上啟動(dòng)一個(gè)新的系統(tǒng)。比如從 LiveCD 上啟動(dòng)一個(gè)新的光盤系統(tǒng)。大部分的發(fā)行版都會(huì)帶有 LiveCD。把物理機(jī)系統(tǒng)的磁盤做成虛擬機(jī)鏡像文件,如有多個(gè)磁盤則需要做多個(gè)鏡像,并且拷貝鏡像到虛擬主機(jī)上。為虛擬機(jī)創(chuàng)建虛擬設(shè)備,加載鏡像文件啟動(dòng)虛擬機(jī),調(diào)整系統(tǒng)設(shè)置,并開啟服務(wù)。

半自動(dòng)遷移:

利用專業(yè)工具輔助 P2V 的遷移,把某些手動(dòng)環(huán)節(jié)進(jìn)行自動(dòng)化。比如將物理機(jī)的磁盤數(shù)據(jù)轉(zhuǎn)換成虛擬機(jī)格式,這一向是相當(dāng)耗時(shí)的工作,你可以選擇專業(yè)的工具來(lái)完成這個(gè)步驟。這里有大量的工具可以使用,如 RedHat 的開源工具 virt-p2v,Microsoft Virtual Server Migration Toolkit 等。

P2V 熱遷移:

遷移中避免宕機(jī) 。大部分 P2V 工具也有一個(gè)很大的限制:在整個(gè)遷移過(guò)程中,物理機(jī)不可用。在運(yùn)行關(guān)鍵任務(wù)的環(huán)境或有 SLA(服務(wù)水平協(xié)議)的地方,這種工具不可選。幸運(yùn)的是隨著 P2V 技術(shù)的發(fā)展,VMware vCenter Converter 和 Microsoft Hyper-V 已經(jīng)能夠提供熱遷移功能,避免宕機(jī)。目前,P2V 熱遷移僅在 Windows 物理服務(wù)器可用,未來(lái)將添加對(duì) Linux 的支持。

虛擬機(jī)到虛擬機(jī)的遷移(Virtual-to-Virtual)

V2V 遷移是在虛擬機(jī)之間移動(dòng)操作系統(tǒng)和數(shù)據(jù),照顧主機(jī)級(jí)別的差異和處理不同的虛擬硬件。虛擬機(jī)從一個(gè)物理機(jī)上的 VMM 遷移到另一個(gè)物理機(jī)的 VMM,這兩個(gè) VMM 的類型可以相同,也可以不同。如 VMware 遷移到 KVM, KVM 遷移到 KVM。可以通過(guò)多種方式將虛擬機(jī)從一個(gè) VM Host 系統(tǒng)移動(dòng)到另一個(gè) VM Host 系統(tǒng)。

V2V 離線遷移

離線遷移(offline migration):

也叫做常規(guī)遷移、靜態(tài)遷移。在遷移之前將虛擬機(jī)暫停,如果共享存儲(chǔ),則只拷貝系統(tǒng)狀態(tài)至目的主機(jī),最后在目的主機(jī)重建虛擬機(jī)狀態(tài),恢復(fù)執(zhí)行。如果使用本地存儲(chǔ),則需要同時(shí)拷貝虛擬機(jī)鏡像和狀態(tài)到目的主機(jī)。到這種方式的遷移過(guò)程需要顯示的停止虛擬機(jī)的運(yùn)行。從用戶角度看,有明確的一段服務(wù)不可用的時(shí)間。這種遷移方式簡(jiǎn)單易行,適用于對(duì)服務(wù)可用性要求不嚴(yán)格的場(chǎng)合。

V2V 在線遷移

在線遷移(online migration):

又稱為實(shí)時(shí)遷移 (live migration)。是指在保證虛擬機(jī)上服務(wù)正常運(yùn)行的同時(shí),虛擬機(jī)在不同的物理主機(jī)之間進(jìn)行遷移,其邏輯步驟與離線遷移幾乎完全一致。不同的是,為了保證遷移過(guò)程中虛擬機(jī)服務(wù)的可用,遷移過(guò)程僅有非常短暫的停機(jī)時(shí)間。遷移的前面階段,服務(wù)在源主機(jī)運(yùn)行,當(dāng)遷移進(jìn)行到一定階段,目的主機(jī)已經(jīng)具備了運(yùn)行系統(tǒng)的必須資源,經(jīng)過(guò)一個(gè)非常短暫的切換,源主機(jī)將控制權(quán)轉(zhuǎn)移到目的主機(jī),服務(wù)在目的主機(jī)上繼續(xù)運(yùn)行。對(duì)于服務(wù)本身而言,由于切換的時(shí)間非常短暫,用戶感覺(jué)不到服務(wù)的中斷,因而遷移過(guò)程對(duì)用戶是透明的。在線遷移適用于對(duì)服務(wù)可用性要求很高的場(chǎng)景。
目前主流的在線遷移工具,如 VMware 的 VMotion,XEN 的 xenMotion,都要求物理機(jī)之間采用 SAN(storage area network), NAS(network-attached storage)之類的集中式共享外存設(shè)備,因而在遷移時(shí)只需要考慮操作系統(tǒng)內(nèi)存執(zhí)行狀態(tài)的遷移,從而獲得較好的遷移性能。
另外,在某些沒(méi)有使用共享存儲(chǔ)的場(chǎng)合,可以使用存儲(chǔ)塊在線遷移技術(shù)來(lái)實(shí)現(xiàn) V2V 的虛擬機(jī)在線遷移。相比較基于共享存儲(chǔ)的在線遷移,數(shù)據(jù)塊在線遷移的需要同時(shí)遷移虛擬機(jī)磁盤鏡像和系統(tǒng)內(nèi)存狀態(tài),遷移性能上打了折扣。但是他使得在采用分散式本地存儲(chǔ)的環(huán)境下,仍然能夠利用遷移技術(shù)轉(zhuǎn)移計(jì)算機(jī)環(huán)境,并且保證遷移過(guò)程中操作系統(tǒng)服務(wù)的可用性,擴(kuò)展了虛擬機(jī)在線遷移的應(yīng)用范圍。V2V 在線遷移技術(shù)消除了軟硬件相關(guān)性,是進(jìn)行軟硬件系統(tǒng)升級(jí),維護(hù)等管理操作的有力工具。

V2V 內(nèi)存遷移技術(shù)

對(duì)于 VM 的內(nèi)存狀態(tài)的遷移,XEN 和 KVM 都采用了主流的的預(yù)拷貝(pre-copy)的策略。遷移開始之后,源主機(jī) VM 仍在運(yùn)行,目的主機(jī) VM 尚未啟動(dòng)。遷移通過(guò)一個(gè)循環(huán),將源主機(jī) VM 的內(nèi)存數(shù)據(jù)發(fā)送至目的主機(jī) VM。循環(huán)第一輪發(fā)送所有內(nèi)存頁(yè)數(shù)據(jù),接下來(lái)的每一輪循環(huán)發(fā)送上一輪預(yù)拷貝過(guò)程中被 VM 寫過(guò)的臟頁(yè)內(nèi)存 dirty pages。直到時(shí)機(jī)成熟,預(yù)拷貝循環(huán)結(jié)束,進(jìn)入停機(jī)拷貝階段,源主機(jī)被掛起,不再有內(nèi)存更新。最后一輪循環(huán)中的臟頁(yè)被傳輸至目的主機(jī) VM。預(yù)拷貝機(jī)制極大的減少了停機(jī)拷貝階段需要傳輸?shù)膬?nèi)存數(shù)據(jù)量,從而將停機(jī)時(shí)間大大縮小。
然而,對(duì)于更新速度非常快的內(nèi)存部分,每次循環(huán)過(guò)程都會(huì)變臟,需要重復(fù) pre-copy,同時(shí)也導(dǎo)致循環(huán)次數(shù)非常多,遷移的時(shí)間變長(zhǎng)。針對(duì)這種情況,KVM 虛擬機(jī)建立了三個(gè)原則:集中原則,一個(gè)循環(huán)內(nèi)的 dirty pages 小于等于 50;不擴(kuò)散原則, 一個(gè)循環(huán)內(nèi)傳輸?shù)?dirty pages 少于新產(chǎn)生的;有限循環(huán)原則,循環(huán)次數(shù)必須少于 30。在實(shí)現(xiàn)上,就是采取了以下措施:

有限循環(huán):

循環(huán)次數(shù)和效果受到控制,對(duì)每輪 pre-copy 的效果進(jìn)行計(jì)算,若 pre-copy 對(duì)于減少不一致內(nèi)存數(shù)量的效果不顯著,或者循環(huán)次數(shù)超過(guò)了上限,循環(huán)將中止,進(jìn)入停機(jī)拷貝階段。
在被遷移 VM 的內(nèi)核設(shè)置一個(gè)內(nèi)存訪問(wèn)的監(jiān)控模塊。在內(nèi)存 pre-copy 過(guò)程中,VM 的一個(gè)進(jìn)程在一個(gè)被調(diào)度運(yùn)行的期間,被限制最多執(zhí)行 40 次內(nèi)存寫操作。這個(gè)措施直接限制了 pre-copy 過(guò)程中內(nèi)存變臟的速度,其代價(jià)是對(duì) VM 上的進(jìn)程運(yùn)行進(jìn)行了一定的限制。

Virtual-to-Physical 虛擬機(jī)到物理機(jī)的遷移

V2P 指把一個(gè)操作系統(tǒng)、應(yīng)用程序和數(shù)據(jù)從一個(gè)虛擬機(jī)中遷移到物理機(jī)的主硬盤上,是 P2V 的逆操作。它可以同時(shí)遷移虛擬機(jī)系統(tǒng)到一臺(tái)或多臺(tái)物理機(jī)上。盡管虛擬化的基本需求是整合物理機(jī)到虛擬機(jī)中,但這并不是虛擬化的唯一的應(yīng)用。比如有時(shí)虛擬機(jī)上的應(yīng)用程序的問(wèn)題需要在物理機(jī)上驗(yàn)證,以排除虛擬環(huán)境帶來(lái)的影響。另外,配置新的工作站是件令 IT 管理者頭痛的事情,但虛擬化的應(yīng)用可以幫助他解決這個(gè)難題。先配置好虛擬機(jī),然后運(yùn)用硬盤克隆工具復(fù)制數(shù)據(jù)至工作站硬件,比如賽門鐵克的 Save & Restore (Ghost)。不過(guò)這種克隆方法有兩個(gè)局限:一個(gè)鏡像只能運(yùn)用在同種硬件配置的機(jī)器上;要想保存配置的修改,只能重做新的鏡像。
V2P 的遷移可以通過(guò)確定目標(biāo)的物理環(huán)境來(lái)手動(dòng)完成,如把一個(gè)特定的硬盤加載到虛擬系統(tǒng)中,然后在虛擬環(huán)境中安裝操作系統(tǒng)、應(yīng)用程序和數(shù)據(jù),最后手動(dòng)修改系統(tǒng)配置和驅(qū)動(dòng)程序。這是一個(gè)乏味且不確定的過(guò)程,特別是在新的環(huán)境比舊的環(huán)境包含更多大量不同的硬件的情況下。為了簡(jiǎn)化操作,我們可以利用專門的遷移工具以自動(dòng)的方式來(lái)完成部分或全部遷移工作。目前支持 V2P 轉(zhuǎn)換的工具有 PlateSpin Migrate 和 EMC HomeBase。使用這樣的工具使得 V2P 轉(zhuǎn)換過(guò)程更簡(jiǎn)易,并且比使用第三方磁盤鏡像工具更快捷。

V2P 遷移方法

V2P 的不確定性導(dǎo)致自動(dòng)化工具不多,目前主要有以下幾種解決方案:
VMware 官方推薦的是使用 Ghost+sysprep 來(lái)實(shí)現(xiàn)半自動(dòng)化的遷移。
基于備份和恢復(fù)操作系統(tǒng)的解決方案。這個(gè)方案利用了現(xiàn)成的系統(tǒng)備份恢復(fù)工具,沒(méi)有體現(xiàn)虛擬機(jī)和物理機(jī)的差別,類似于 P2P(Physical-to-Physical 物理機(jī)到物理機(jī)遷移)。注意備份工具能夠恢復(fù)系統(tǒng)到異構(gòu)硬件平臺(tái)上。
開源工具的解決方案。適合 Linux/Unix 系統(tǒng),使用開源工具和腳本,手動(dòng)遷移系統(tǒng)。這個(gè)方案難度較大,適合有經(jīng)驗(yàn)的管理員。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,572評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,071評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,409評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評(píng)論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,360評(píng)論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,895評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,123評(píng)論 0 286
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,643評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,559評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,742評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評(píng)論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 43,981評(píng)論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評(píng)論 1 280
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,354評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,707評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容