熱遷移
熱遷移
熱遷移(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運行,但是硬體卻需要定期的進行維護。如果使用虛擬機的動態遷移技術,將虛擬機從需要維護的物理機器遷移到另外一台備用機器,等維護完成後,在將其遷回到原來的物理機器。所有的系統服務和應用程序在恢復后仍舊正常運行,用戶不會察覺到由於硬體維護造成的中斷。
為了追趕上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之間。完全可以滿足一般企業高可用的需求。