1. 程式人生 > >微軟虛擬化跨版本遷移

微軟虛擬化跨版本遷移

虛擬化跨版本遷移 虛擬化遷移 Hyper-V跨版本遷移 Hyper-V升級

之前老王曾經在WSFC2008R2跨群集遷移WSFC2012R2一文中提到過虛擬化遷移,但是由於不是專門寫虛擬化遷移的文章,所以寫的不是很詳盡,本文我們將詳細討論微軟虛擬化的跨版本遷移


微軟Hyper-V於2008發布,經歷過2008,2008R2,2012,2012R2,2016等五個版本,其中目前國內使用最多的是2008R2,2012R2兩個版本,可能大多數用戶使用2008R2 Hyper-V用作過嘗試測試,或者覺得2008R2 Hyper-V的性能不能滿足需求,2012R2 Hyper-V可以說是一個真正可以在企業裏面部署的企業級虛擬化產品,可以提供並不遜色於其它虛擬化廠商的性能,最主要的是該有的企業級功能都已經具備,因此隨著企業了解,我相信會有越來越多的企業采用2012R2 hyper-v虛擬化,在采用過程中避免不了要面臨遷移的問題,可能公司已經在先有2008R2上面部署了一些虛擬機,如何遷移到新的平臺,有哪些方法可以選擇,怎麽遷移停機時間最少,這就是我們今天需要討論的話題


2008R2到2012R2遷移的最大一個問題就是2012R2 hyper-v不能向下兼容 2008R2 hyper-v,即是說,2008R2並不能直接把虛擬機以實時遷移的方式遷移到2012R2,所以,如果2008R2是單機情況下,遷移時需要關閉虛擬機,進行遷移,2008R2單機遷移到2012R2單機,或遷移到2012R2群集,方法大體有以下幾種


  1. 直接拷貝2008R2虛擬機VHD,到2012R2上面基於VHD新建虛擬機:這個方法的好處是,如果在網絡帶寬足夠大的情況下,你可以很快的把VHD文件拷貝到2012R2服務器,然後新建,開機,一系列過程下來,對於技術要求並不會很高,沒有什麽操作風險,你只需要選擇一個合適的時間點,關機虛擬機拷貝文件即可,這種方式的宕機時間是從關閉虛擬機+拷貝VHD到2012R2+創建開機虛擬機,直到最終創建完成虛擬機,才可以重新對外提供服務,這種方法的弊端,不適合網絡帶寬不足的企業環境,如果帶寬不足,拷貝文件的時間會很長,將延長宕機時間,其二,只適合簡單的虛擬機,即是說對於虛擬機並沒有過多的設置,例如設置多個網卡,每個網卡設置了不同的參數功能,我們如果只是拷貝VHD,這些虛擬機設置是不會帶過去的,你需要手動記下來,然後新建虛擬機的時候按照記錄進行調整,不支持avhd,即不支持差異磁盤和快照,只支持vhd文件

此場景我們假定2008R2和2012R2使用不同存儲,如果是使用相同存儲的情況下,可以將現有2008R2存儲添加一個目標給2012R2,然後直接把所有2008R2上面虛擬機的設置記錄,移除2008R2存儲目標,關閉2008R2虛擬機,在2012R2上面基於設置新建虛擬機,宕機時間是存儲目標從2008R2移除+虛擬機關閉+虛擬機創建開機


2.虛擬機導入,雖然2012R2不能支持2008R2直接實時遷移,但是可以支持2008R2的虛擬機通過導入的方式,添加到2012R2的環境,不同的是2012R2可以虛擬機實時導出,2008R2只能關機導出,這種虛擬機導入導出的方式,好處就是可以導出虛擬機所有配置+磁盤,導入時會把配置和磁盤一起導入,不需要管理員進行額外記錄,壞處就是,2008R2時代對於虛擬機導出導入限制太多,例如被導出的虛擬機MAC地址都設置為靜態,使用標準網絡適配器,不能包括快照等等,而且有時候導出失敗需要進行排錯,較為麻煩,有時導出時間比直接拷貝VHD的時間要長很多,因此我給大家的建議,如果虛擬機沒有太多的設置,單機場景下直接拷貝VHD新建最好,如果虛擬機有很多單獨的設置,則可以采用導入導出的方式進行操作


3.VMM遷移,VMM2012R2支持添加2008R2,2012,2012R2 Hyper-V,也支持跨版本互相遷移,跨單機群集互相遷移,需要註意Hyper-V 2008R2 雖然可以在VMM被跨版本遷移到2012,2012R2,但實際上背後走的是導入導出,並非直接遷移,即是說2008R2虛擬機也需要滿足導出的需求才可以被VMM遷移,與單獨的虛擬機導入導出和直接拷貝VHD對比,最大的一點不同是,通過VMM的跨版本遷移,當虛擬機被導入到2012或2012R2時,會自動為虛擬機升級集成組件,而我們采用單獨導入導出和直接拷貝VHD都需要事後手動或腳本針對虛擬機升級集成組件。VMM需要單獨付費購買。


總結來看,微軟自家的2008R2單機遷移到2012R2大體分為兩種,1.直接拷貝VHD,2.導入導出。兩種辦法都避免不了宕機時間,虛擬機必須關閉被導出,必須關機拷貝VHD文件。我們上面討論的場景,都是直接遷移的場景,如果是替換場景,例如當前1臺2008R2宿主機,1臺新加2012R2宿主機,希望虛擬機遷移到新加宿主機後,原有宿主機也能升級利用,在這種替換場景下,建議確認虛擬機已經導入或新建在新宿主機後,直接對原宿主機重裝系統,不建議采用升級安裝。


除了微軟自身的方案,另外推薦一個單機對單機的遷移方案,Veeam Backup&Replication,通過它我們可以添加進來2008R2,2012,2012R2 Hyper-v主機,然後將2008R2的虛擬機復制到2012R2!直接2008R2作為復制主站點,2012R2作為DR站點,veeam是支持這樣做的,它處理了復制兼容性的問題,這樣做了之後我們就可以直接通過永久性轉移或者計劃內轉移的方式,將虛擬機從2008R2上面,直接轉移到2012R2上面,它最大的好處是和hyper-v整合好,虛擬機轉移到2012R2 DR站點後,直接在hyper-v列表可以看見,不再需要導入虛擬機。通過這種方式我們可以最低化宕機時間,例如如果采用計劃內轉移的方式,當前虛擬機實時從2008R2復制到2012R2,當某一秒增量數據從2008R2完全同步到2012R2,即隔斷2008R2,開機上線2012R2虛擬機,宕機時間僅是虛擬機切割的時間+虛擬機2012R2開機上線的時間。未來希望微軟也可以做到這一點,自身支持hyper-v復制跨版本

技術分享圖片

處於可用性的考慮,一些企業也可能選擇在2008R2上面部署了WSFC群集架構,基於WSFC再部署Hyper-V群集,以實現虛擬機的高可用,針對於2008R2群集到2012R2群集的遷移,微軟自身提供了低宕機時間的解決方案,即復制群集角色,缺點是這種方式對於操作人員的技術有一定的要求。


由於在2016之前沒有滾動升級的技術,因此復制群集角色僅支持跨群集的遷移,即是說您必須要有兩個群集才可以完成這件事情


所謂復制群集角色,即是指,把老群集裏面的群集角色和磁盤配置復制一份到新群集,復制群集復制僅負責復制配置信息等元數據至新數據,不實際拷貝虛擬機文件,群集數據文件,但會映射復制群集磁盤配置至新群集


2008R2群集虛擬機遷移到2012R2,復制群集角色操作流程如下


  1. 確保新舊群集都可連接到存儲,但同一時刻,存儲只對單個群集可見

  2. 存儲不添加到新群集 群集磁盤中

  3. 運行群集遷移向導,遷移虛擬機配置,CSV配置到新群集

  4. 脫機舊群集虛擬機,取消分配給舊群集的磁盤

  5. 聯機舊群集遷移過來的CSV,這時會自動使用之前同時分配給新舊群集的磁盤

  6. 聯機虛擬機


切割實例


  1. 虛擬機運作在2008R2群集CSV

  2. 分配CSV背後可用磁盤目標給2012R2群集節點

  3. 2012R2群集節點可以看到磁盤,但是不添加到群集存儲

  4. 執行跨群集遷移向導遷移虛擬機

  5. 脫機08R2虛擬機,存儲取消分配給08R2群集節點

  6. 12R2群集聯機CSV

  7. 12R2群集聯機虛擬機


由此大家可以看出一個問題,如果我們在有群集的情況下,那麽我們遷移過程的宕機時間是很短的,虛擬機不需要一直被關機才能執行遷移,我們可以一直運作虛擬機,宕機時間僅是虛擬機在2008R2群集離線+2012R2群集聯機存儲+聯機虛擬機的時間。

在復制群集角色方案中,還涉及到一個場景,即存儲的映射,如果我們要執行跨群集的復制角色,那麽我們必須要將虛擬機CSV存儲那塊磁盤,同時映射給08R2和12R2群集,但是切割好時間節點,12R2不添加存儲至群集中直到08離線,12R2上線時因為虛擬機遷移過來,會帶著CSV屬性的,而CSV只認那一塊磁盤,如果我們采用新群集新存儲,舊群集舊存儲的方式就會發生CSV的丟失,它會無法認到自己使用的那塊盤。

在我們使用跨群集遷移向導時需要註意一點,針對於虛擬機的跨群集遷移向導來說,本質上遷移向導是按照CSV進行遷移,我們只能選擇一個CSV,然後把下面所有的虛擬機都遷移過去,而不能選擇CSV下面特定的單個虛擬機,因此可以看出,通過跨群集遷移向導,適合群集上面跑了很多虛擬機的場景,如果虛擬機不多的話您也可以選擇群集間導入導出的的方式,但是老王依然建議走跨群集遷移向導,因為這樣宕機時間最短。


通過復制群集角色可以幫助我們在很低宕機時間的情況下完成虛擬機的跨版本遷移,宕機時間僅發生在切換,但是復制群集角色也有它的不足,即跨群集復制角色,在虛擬機場景下,必須兩個群集接入到同一個存儲,通過切換間隔來進行處理切割


那麽如果兩個群集希望各自擁有自身存儲的情況下又該如何處理呢,因為不見得所有場景下你都能把兩個站點接入到同一個存儲,一個不錯的解決方案是“反彈遷移“


反彈遷移解決方案,我們首先在老數據中心,選擇幾臺宿主機,遷移走負載,重裝為2012R2群集,利用復制群集角色,將2008R2群集虛擬機切換至本地2012R2群集,這種解決方案在這一步,要求被重做的兩臺2012R2宿主機性能足夠強,可以承載起同站點2008R2上面所有虛擬機負載,當虛擬機被遷移到老數據中心臨時2012R2群集後,再和新數據中心建立連接,利用2012的無共享實時遷移技術,直接把虛擬機+存儲從老數據中心不停機實時遷移至新數據中心。


這種解決方案利用了老數據中心做2012R2中轉群集的方式來實現跨群集,跨不同存儲的虛擬機遷移,宕機時間是老數據中心2008R2切換到2012R2的關閉虛擬機+聯機存儲+聯機虛擬機的時間 + 無共享實時遷移最後的切換丟包。因此宕機時間幾乎很少,關鍵點在於需要在老數據選擇可以承載所有負載的宿主機重裝2012R2,其二,2012擁有無共享實時遷移技術,即便兩個宿主機連接不同存儲,不在同一個群集,也可以把虛擬機遷移過去。此方案尤為適用跨城,跨地域的多數據中心遷移方案

圖中VMM為可選項,只要虛擬機遷移到中轉2012R2群集,就可以直接無共享實時遷移到新數據中心2012R2群集

技術分享圖片

上面我們討論了2008R2遷移到2012R2,單機解決方案,群集解決方案,那麽2012R2到2016呢,實際上2012R2到2016 比 2008R2到2012R2容易得多,原因在於2016實現了向下兼容遷移技術,即是說虛擬機可以直接從2012R2實時遷移到2016,但是遷移到2016之後仍采用2012R2版本格式,並不能完全享受2016最新功能,如果希望享受2016hyper-v最新功能,需要把遷移過來的虛擬機選擇一個時間節點,關機升級虛擬機配置即可。對於群集,2012R2到2016支持滾動升級,即只在一個群集裏面就可以完成遷移,虛擬機可以直接從2012節點移動到2016節點。


WSFC2012R2滾動升級至WSFC2016

http://blog.51cto.com/wzde2012/1962158

WSFC復制群集角色介紹

http://blog.51cto.com/wzde2012/1959545

WSFC2008R2跨群集遷移WSFC2012R2

http://blog.51cto.com/wzde2012/1960273


最終希望可以通過這篇文章為大家打開新的思路,明白微軟虛擬化遷移的多種方法過程,為大家實際遷移過程帶來幫助


微軟虛擬化跨版本遷移