複製鏈接
請複製以下鏈接發送給好友

熱遷移

鎖定
熱遷移(Live Migration),又叫動態遷移、實時遷移,即虛擬機保存/恢復,通常是將整個虛擬機的運行狀態完整保存下來,同時可以快速的恢復到原有硬件平台甚至是不同硬件平台上。恢復以後,虛擬機仍舊平滑運行,用户不會察覺到任何差異。
中文名
熱遷移
外文名
Live Migration
另    稱
動態遷移、實時遷移
實    質
虛擬機保存、恢復

熱遷移當前發展

服務器虛擬化技術是當前的熱點,而虛擬機的“熱遷移(Live Migration)”技術則是虛擬化技術當中的熱點。熱遷移技術是指可以把一個虛擬機從一台物理服務器遷移到另一台物理服務器上,VMware公司在05年通過VMotion(虛擬機的遷移代理程序)、虛擬中心管理軟件(Virtual Center management)首先進入到了這一領域。
因為VMware將其虛擬機文件系統(VMFS)覆蓋了存儲系統來允許虛擬機之間的熱遷移,因此VMotion只能在兩台訪問同一個VMFS的服務器上進行虛擬機的熱遷移。XenSource公司,這家提供開源Xen Hypervisor的供應商,宣佈了其產品的熱遷移特性。下個月,XenSource公司將在XenEnterprise 4.1當中內置XenMotion,並將通過賽門鐵客的維爾軟件來提供存儲管理能力。
XenSource公司的資深副總裁Gordon Mangione表示,Xen與賽門鐵客構成了絕妙的組合,因為很多Xen的使用者都在使用賽門鐵客的維爾文件系統,這就不必強迫用户採用新的文件管理系統
微軟公司也計劃在其開發代號為的Veridian hypervisor當中提供虛擬機的熱遷移功能,但微軟並沒有給出確切的日期。 不過,微軟公司Windows服務器分公司高級產品經理Patrick O’Rourke表示會在以後的升級中將其添加進去。
虛擬機的熱遷移技術最初是被用於雙機容錯或者負載均衡,從而在應用上有很多優勢。首先是可伸縮性比較強,在晚上或週末,IT管理者可以讓運行某些關鍵業務的服務器適當減少工作量,以便進行更新操作系統,給應用程序打補丁等。而到了白天,又可以彈性地進行大負載量的運算。
其次,數據中心都追求環保節能, 工作量負載大的應用程序必然會令服務器能耗增加,有了虛擬機熱遷移技術,當一台物理服務器負載過大時,系統管理員可以將其上面的虛擬機遷移到其他服務器,可有效減低數據中心服務器的總體能耗,再通過冷卻系統將數據中心的温度保持在正常水平。
但是,進行虛擬機的熱遷移也有不少的限制。例如,VMotion在進行遷移之前,管理軟件會檢測目標服務器的X86架構是否與原服務器兼容。包括存儲設備以及處理器,虛擬機必須放到共享的存儲裏,CPU的類型也要一樣,不僅不能一個是英特爾,一個是AMD,甚至相同廠商不同產品線的CPU也不行,比如英特爾至強和奔騰。
不過,處理器廠商正在試圖解決這一問題。AMD已經找到了一種方法並將其加入到處理器架構之中,幫助虛擬機監控器分辨正在使用的X86指令。AMD虛擬化技術解決方案總監Tim Mueting説:“我們的目標是讓虛擬機在不同的處理器之間進行遷移。”
而在08年6月12日,英特爾宣佈,將在下半年推出兩項新的虛擬化技術。其中一項名為“FlexMigration”,可將虛擬機轉移到其他物理服務器,這一硬件級別的熱遷移技術被業界普遍看好,並被認為是VMware VMotion的主要競爭對手。據悉,英特爾將在45納米制程的Penryn處理器當中內嵌FlexMigration技術,該技術可支持跨代遷移。這樣,虛擬機就可以在基於Penryn處理器的服務器和其他雙核、四核處理器之間任意遷移。

熱遷移應用領域

計算機共享: 在一些公共場合用户需要共享計算機,但是由於不同的系統配置和軟件需要花費大量的時間來配置和恢復。這時使用虛擬機的保存/恢復可以很好地解決這個問題。用户在虛擬機中進行所有工作,需要暫停時就將虛擬機保存到文件中。下次使用時使用原先的文件恢復虛擬機繼續工作。
數據庫備份:對於一些大型、關鍵的數據庫應用,備份是一項重要但複雜的工作。虛擬機的保存/恢復可以將數據庫運行在虛擬機中,如需備份就保存虛擬機,這樣數據庫中的所有數據、狀態都做了備份。如果數據庫崩潰了,就可以通過恢復虛擬機來恢復整個數據庫。
環境重現:進行性能測試或程序調試時,都需要重現當時的環境,不僅僅是重啓、配置軟件,而且常常需要一定的運行時間。使用虛擬機的保存/恢復,將已經重現的環境保存起來,將來測試時只需恢復即可。一個512MB內存的虛擬機僅僅需要一兩秒鐘就可以保存/恢復,可以大大縮短重現時間。
系統硬件維護:當前很多操作系統都能夠穩定支持7×24運行,但是硬件卻需要定期的進行維護。如果使用虛擬機的動態遷移技術,將虛擬機從需要維護的物理機器遷移到另外一台備用機器,等維護完成後,在將其遷回到原來的物理機器。所有的系統服務和應用程序在恢復後仍舊正常運行,用户不會察覺到由於硬件維護造成的中斷 [1] 

熱遷移Hyper-V熱遷移原理

為了追趕上VMware虛擬化霸主的腳步,微軟從Hyper-V 2.0開始支持物理機與虛擬機之間的熱遷移。熱遷移對於實驗室來説,需求可能並不高,但對於企業來説,這卻是虛擬化成熟度的一個分水嶺。
Hyper-V熱遷移(Hyper-V Live Migration)並非故障狀態下的非計劃宕機
該應用場景僅用於升級、硬件更換等計劃宕機。
熱遷移步驟:
一、在源和目標計算機之間建立連接
熱遷移從本質上來説還是羣集的一種實現方式。通信的速度與效率與源服務器和目標服務器的有關。在源服務器或目標服務器負載過高情況下會出現WMI調用clusres.dll超時失敗的情況。該場景在PRO調用熱遷移過程中,將會造成暫停(掛起)源虛擬機並傳送狀態卡死,導致虛擬機長時間處於掛起狀態。微軟官網上提供的相關的補丁,需要在所有節點上部署。
二、傳送虛擬機配置及設備信息
這裏值得注意的是,該部分傳送的並非虛擬機目錄中的XML配置文件,僅僅是註冊表中的信息。以上兩步完成的是遷移的準備工作,告知了目標服務器虛擬機所需的資源,並分配所需資源。
三、傳送虛擬機內存
該部分是遷移的核心技術部分。不論是VMware還是Hyper-V來做遷移,都是無法逃避的問題。那些銷售所謂的服務不會斷線,不過是傳説。從技術的角度來説只是斷線的時間由秒這個級別降低到了毫秒級而已。
詳細描述一下內存傳送的過程:
1、鎖定Guest主機內存,並將該部分的信息傳送到目標服務器。
2、Guest主機繼續運行,在Host主機中開啓一個新的內存分區為Guest主機提供服務。該區域僅保存變更的內容。
3、新內存分區將繼續分片鎖定,並傳送。
4、重複2~3,保證原HOST服務器與目標HOST服務器變更內存的差異在一個極小的時鐘週期之內,直至操作1中的內存傳送完成。
四、暫停(掛起)源虛擬機並傳送狀態
這部分包含3個操作:
1、掛起源虛擬機
2、傳送最後的源虛擬機內存變更片段
3、通知存儲,將存儲掛載至目標服務器
第四步是遷移時間消耗的關鍵。而關鍵的關鍵是實時內存狀態的保存。在Hyper-V 1.0中快速遷移採取的方式是掛起源虛擬機,再處理內存的方式。所以在遷移過程中會發現宕機的時間與虛擬機所消耗的內存量成正比。而在熱遷移中,宕機時間不再由所遷移虛擬機消耗的內存來決定。決定宕機時間的關鍵點內存大小是一個相對較小的變更內存片段。根據實測,在熱遷移操作中,ping包監視根據系統負載不同在丟包為2~6之間。完全可以滿足一般企業高可用的需求 [2] 
參考資料
  • 1.    盧萬龍. OpenStack從零開始學[M]. 2016.
  • 2.    王春海編. VMWARE虛擬化與雲計算應用案例詳解 第2版[M]. 2016.