實時遷移是一項很是有用的功能,也是實現虛擬化高可用的有力組成部分之一。它的目的是在將虛擬機從一臺 Hyper-V 主機遷移到另外一臺 Hyper-V 主機時,虛擬機對用戶而言不產生中斷,繼而不影響業務的開展。在 Hyper-V 2008 R2 中,實時遷移同時只能進行一條。而在 Hyper-V 2012/2012 R2 中,則沒有這個限制。同時若是但願使用實時存儲遷移,在 Hyper-V 2008 R2 中,必須使用 SCVMM 來完成,這種限制在 Hyper-V 2012/2012 R2 中也被取消了,版本區別如表 10-1 所示。 ios
更爲吸引人的是,在 Hyper-V 2012/2012 R2 下的實時遷移,再也不依賴共享存儲,能夠由兩臺獨立的 Hyper-V 主機發起和接收。這種改進的實時遷移能夠爲對效率不是太敏感的企業節省必定的硬件採購成本。 服務器
資源 網絡 |
Hyper-V 架構 |
Hyper-V 運維 |
Hyper-V 性能 |
(2008 R2) 測試 |
2012 spa |
2012 R2 操作系統 |
|
實時遷移 3d |
一次一個 |
沒有限制 |
沒有限制 |
實時存儲遷移 |
必須經過SCVMM |
沒有限制 |
沒有限制 |
表 10-1 Hyper-V 中實時遷移和實時存儲遷移差別
共享實時遷移即意味着實時遷移須要共享存儲的參與,如故障轉移羣集和 SMB3.0 共享文件夾下的虛擬機遷移均屬於共享實時遷移。其特色是整套環境中有一臺或多臺承載數據的共享存儲。共享實時遷移擁有如下幾個特色:
無共享實時遷移是 Hyper-V 2012/2012 R2 所帶來的新功能,其特色是實時遷移過程無需共享存儲參與,同時在實時遷移過程當中,中斷時間也能夠作到和共享實時遷移一致,無共享實時遷移擁有如下幾個特色:
提到實時遷移,就不得不說起在 Windows Server 2008R2 中存在的快速遷移了。快速遷移的過程以下:
因爲快速遷移擁有"保存"再"開啓"的這個環節,而"保存"狀態虛擬機是沒法爲外界提供服務的,因此通常使用快速遷移的中斷時間會在10-20秒甚至更長。所以在HyperV 2012/2012 R2 中儘管也提供了快速遷移以保持對上代產品的兼容性,但在實際應用當中,用到快速遷移的機會很小。
實時遷移擁有改進的遷移過程,能夠實現更短的中斷時間。實時遷移的過程以下:
能夠發現,實時遷移的過程之因此中斷時間更短,其根源在於遷移過程當中會不斷的切割內存標記,以使得虛擬機 A1 在 Hyper-V 主機 A 和 B 之間的內存差別愈來愈小,而且使用"暫停"而不是"保存"來中斷虛擬機,可使虛擬機更快恢復。
因爲混合了共享實時遷移和無共享實時遷移,所以實時遷移能夠實現如下特性:
如但願使用實時遷移,則須要知足以下的前置條件:
如但願使用實時遷移,則須要在每一臺涉及到的 Hyper-V 主機上開啓相應的實時遷移配置。不管採用何種實時遷移方式,均需提早配置如下選項。
第 1 步,打開 hv1.contoso.com 的"Hyper-V 管理器",右鍵點擊 Hyper-V 主機主機,選擇 Hyper-V 設置,如圖 10-1 所示。
圖 10-1 進入 Hyper-V 設置
第 2 步,在彈出的 Hyper-V 設置中,於左側列表點擊"實時遷移",進入配置頁,如圖 10-2 所示。在右側勾選"啓用傳入和傳出的實時遷移";在並行實時遷移處,能夠定義容許的實時遷移數量,默認爲 2,用戶可以根據網絡狀況設置任意數值;在傳入的"實時遷移" 處,默認選擇"使用任何可用的網絡進行實時遷移"。如 Hyper-V 主機存在多網卡,此處能夠根據須要定義是否所有網絡鏈接均參與實時遷移。
圖 10-2 開啓實時遷移
第 3 步,雙擊"實時遷移",再點擊左側下拉出現的"高級功能",可於右側配置"身份驗證協議"和"性能選項"。於右側勾選"使用 kerberos",如圖 10-3 所示,點擊"肯定"繼續。
圖 10-3 配置身份驗證協議
第 4 步,若是須要遷移虛擬機所在的 Hyper-V 主機所使用的 CPU 型號不一樣,則務必要在虛擬機的配置頁,雙擊"處理器",修改兼容性爲"遷移到具備不一樣處理器版本的物理計算機",如圖 10-4 所示。
圖 10-4 修改處理器兼容性
第 5 步,在域控制器上,打開"Active Directory 用戶和計算機",使用本書第 9 章的方法,爲全部涉及的 Hyper-V 主機配置"Microsoft Virtual System Migration Service"的約束委派。如圖 10-5 所示,點擊"肯定"完成配置。
圖 10-5 配置約束委派
第 1 步,打開"Hyper-V 管理器",在作好委派的 Hyper-V 主機 hv2.contoso.com 上使用 "新建虛擬機嚮導",建立一個 SMB3.0 共享文件夾上的虛擬機,如圖 10-6 所示。此處虛擬機所保存的位置爲\\fs\Hyper-V 存儲共享\ ,因爲是演示環境,能夠直接點擊"完成"結束快速建立。
圖 10-6 修改處理器兼容性
第 2 步,首先啓動該虛擬機,而後在對應的虛擬機"SMB3.0 遷移測試"上右鍵點擊,選擇"移動",如圖 10-7 所示。
圖 10-7 準備移動虛擬機
第 3 步,在"移動虛擬機嚮導"的"選擇移動類型"對話框中,選擇"移動虛擬機"選項,點擊"下一步"繼續,如圖 10-8 所示。
圖 10-8 準備移動虛擬機
第 4 步,在"指定目標"對話框中,能夠輸入目標 Hyper-V 主機的名稱,或使用"瀏覽" 選擇目標 Hyper-V 主機。此處輸入 Netbios 或者 FQDN 都可,如圖 10-9 所示。
圖 10-9 輸入指定目標
第 5 步,在"選擇移動選項"對話框中,選擇僅移動虛擬機,因爲該虛擬機的存儲位於 SMB3.0 的共享文件夾上,其本質也是共享存儲的一種,所以可使用共享存儲遷移。如圖10-10 所示。此處直接點擊"完成",開始進行虛擬機的實時遷移。
圖 10-10 僅移動虛擬機並開始遷移
第 6 步,因爲這是一個新建立的虛擬機,所以實時遷移速度很快,幾秒鐘便可完成實時遷移,能夠在 hv1.contoso.com 上找到這臺虛擬機,同時其狀態也是"正在運行"。如圖 10-11 所示。
圖 10-11 實時遷移結束
第 1 步,打開"故障轉移羣集管理器",點擊"角色",選中須要進行實時遷移的開機狀態的虛擬機,右鍵點擊,選擇"移動",如圖 10-12 所示
圖 10-12 故障轉移羣集下的實時遷移
第 2 步,依次"點擊移動"→"實時遷移"→"最佳節點",如圖 10-13 所示。在雙節點的羣集中,選擇最佳節點即意味着羣集中的另外一臺 Hyper-V 主機。若是是多節點羣集,能夠點擊"選擇節點",手動確認實時遷移的目標。若是但願使用快速遷移,則依次點擊"移動"→"快速遷移"→"最佳節點",考慮到快速遷移中斷時間相對較長,在已配置實時遷移的前提下,將再也不建議用戶使用快速遷移。
圖 10-13 選擇節點進行實時遷移。
第 3 步,在"角色"列表中,能夠看到虛擬機正在遷移,以及遷移的進度。如圖 10-14 所示,幾十秒後便可完成遷移,同時角色的狀態也由"正在進行……"變爲"正在運行"。
圖 10-14 實時遷移過程
能夠看到,使用故障轉移羣集進行實時遷移的操做步驟和邏輯都比使用"Hyper-V 管理器"要簡潔一些,所以在實現虛擬機高可用的狀況下,建議用戶採用硬件存儲來搭建故障轉移羣集。
無共享實時遷移不只能夠應用在廉價高可用解決方案中,也能夠幫咱們解決兩個羣集之間的虛擬機遷移,當某一臺虛擬機須要升級底層硬件,好比從戴爾的 R510 服務器遷移到 R620 服務器,因爲底層硬件的提高,能夠爲系統的的運行帶來更強大的穩定性和擴展性,可是此時又不想停機操做,則可使用無共享實時遷移,將虛擬機從不一樣的存儲結構中遷移過去。因爲須要完整的拷貝一份磁盤鏡像,所以無共享實時遷移的遷移時間較長,但在遷移所形成的網絡中斷和共享實時遷移一致,大約會丟 1-5 個 ping 包。
第 1 步,打開"Hyper-V 管理器",使用"新建虛擬機嚮導",在 hv2.contoso.com 上建立一臺虛擬機,命名爲"無共享實時遷移",無需進行任何設置,直接點擊"完成",如圖 10-15 所示。
圖 10-15 建立標準虛擬機以進行無共享實時遷移
第 2 步,開啓該虛擬機,右鍵點擊該虛擬機,選擇"設置",檢查"硬盤驅動器"的配置,確認虛擬硬盤保存在本地磁盤中,未使用共享存儲或羣集。如圖 10-16 所示。
圖 10-16 檢查虛擬機磁盤是否位於本地
第 3 步,右鍵點擊該虛擬機,選擇"移動",打開移動虛擬機嚮導,在"選擇移動類型" 對話框中,選擇"移動虛擬機"選項。如圖 10-17 所示,點擊"下一步"繼續。
圖 10-17 準備移動虛擬機
第 4 步,在"指定目標"對話框,輸入 hv1,或經過"瀏覽"按鈕,選擇目標計算機。
如圖 10-18 所示。
圖 10-18 準備移動虛擬機
第 5 步,在"選擇移動選項"對話框,選擇"將虛擬機的數據移動到一個位置",準備進行無共享實時遷移,此處也能夠選擇第二項:"經過選擇項目移動位置來移動虛擬機的數據",該選項能夠將虛擬機所包含的文件定義到不一樣的位置,但通常不建議這樣操做,如圖10-19 所示。
圖 10-19 選擇移動選項
第 6 步,在"虛擬機"對話框,能夠指定"目標位置",既能夠直接輸入實際存在的目錄位置進行定位,也能夠經過"瀏覽"按鈕選擇進行定位。不只能夠選擇在本地磁盤上,也能夠選擇儲存在 SMB3.0 的共享文件夾上,或羣集共享捲上,如圖 10-20 所示,點擊"完成" 開始虛擬機的實時遷移。
圖 10-20 選擇虛擬機的保存位置
第 7 步,點擊"完成"後,系統會彈出正在執行移動的進度條,耐心等待進度完成,如圖 10-21 所示。
圖 10-21 實時遷移過程
第 8 步,遷移完成後,在 hv1.contoso.com 上找到遷移事後的虛擬機,右鍵點擊,選擇 "設置",檢查硬盤驅動器的保存位置,能夠看到其存儲位置已經變成了 hv1.contoso.com 上的本地路徑了。
圖 10-22 驗證明時遷移結果
存儲實時遷移也是爲了解決新舊硬件交替而存在的,當虛擬機因爲底層 Hyper-V 主機的磁盤 IO 不足時,須要將虛擬機遷移到新的快速存儲上時,則能夠用到存儲實時遷移。又或者性能足夠,但容量不足時,經過存儲實時遷移,也能夠從小容量的存儲遷移至大容量的存儲。存儲實時遷移的過程以下:
能夠看到,存儲實時遷移的過程和虛擬機的實時遷移相似,都是先完成最初數據的完整複製,再補充增量數據的複製,最後切換全部權。
第 1 步,在"Hyper-V 管理器"中,使用"新建虛擬機嚮導",在 hv2.contoso.com 上建立一個新的虛擬機,將虛擬機保存在"d:\虛擬機存儲\"下,直接點擊"完成",完成快速建立,如圖 10-23 所示。
圖 10-23 建立虛擬機
第 2 步,開啓該虛擬機,在虛擬機上右鍵點擊,選擇"移動",如圖 10-24 所示。
圖 10-24 移動虛擬機
第 3 步,打開移動虛擬機嚮導,在"選擇移動類型"對話框中,選擇"移動虛擬機的存儲"選項,如圖 10-25 所示。
圖 10-25 移動虛擬機存儲
第 4 步,在"選擇移動選項"選項卡下,選擇"將虛擬機的全部數據移動到一個位置" 選項。該選項會將虛擬機的全部文件移動到統一的位置下,如選擇"將虛擬機的數據移動到其餘位置",則能夠對虛擬機的配置文件、快照等指定單獨的位置。如圖 10-26 所示。
圖 10-26 移動虛擬機存儲
第 5 步,在"虛擬機"選項卡下,能夠定義存儲遷移的新位置,這裏將虛擬機遷移至"c:\users\"下。如圖 10-27 所示,點擊"完成"開始存儲實時遷移。
圖 10-27 目標存儲位置
第 6 步,在完成存儲實時遷移後,能夠檢查虛擬機的屬性,會發現硬盤虛擬硬盤的存儲已經移動到新的位置下了。如圖 10-28 所示。
圖 10-28 檢查移動後的虛擬機存儲
實時遷移在 Hyper-V 2012/2012 R2 下是一項普及率很是高的技術,不只能夠實時遷移虛擬機,也能夠實時遷移存儲,須要注意的是,爲了儘量的提高實時遷移的效率,必定要保障網絡帶寬和網絡傳輸質量。同時在實時遷移能夠在 NIC 組合和 SMB 多通道上運行,這可以極大的提高實時遷移的效率和可靠性。
另一點是,涉及到實時遷移的 Hyper-V 主機,最好使用徹底一致的硬件環境,儘管 CPU 型號不一樣也能夠完成實時遷移,但默認狀況下還須要手動修改虛擬機的處理器兼容性纔可實現該功能。所以也不建議用戶在重要生產環境中混合不一樣硬件架構的服務器。
若是基於成本考慮而須要利用和混合不一樣硬件的服務器,則必須接受能夠預見的性能損失和少許增長的運維工做量。
實時遷移是微軟高可用技術的一個直觀體現,不只僅是虛擬化,在私有云中,實時遷移也是一項值得單獨書寫的新功能。