前言
醞釀已久的全新 vSphere 7 解決方案,終於在 2020 年 3 月 10 日由 VMware 官方正式發佈。在前一篇文章 重構後的 vSphere vMotion 即時遷移機制 當中,我們已經了解 vSphere 7 對於重構後的 vSphere vMotion 機制有哪些增強。在本文中,我們將討論 vSphere 7 增強 Storage vMotion 機制的部份。Storage vMotion 技術用途
在開始之前,先幫大家回憶一下 Storage vMotion 技術的用途。簡單來說,管理人員透過 Storage vMotion 機制,可以將 VM 虛擬主機儲存資源從 A Storage 線上遷移到 B Storage,並且在遷移過程中 VM 虛擬主機仍可以正常服務,不會發生任何造成停機時間的情況。事實上,Storage vMotion 技術從 ESX/ESXi 3.5 虛擬化平台版本開始支援,它能將運作中的 VM 虛擬主機其「儲存狀態」(Storage State),從一座儲存設備移動到另一座儲存設備,並且中間不會有任何停機時間產生。舉例來說,虛擬化平台當初建立時,因為預算考量所使用的儲存設備其硬碟為 SATA,隨著時間的推進以及 VM 虛擬主機運作數量增加,因而採購了效能更好採用 SAS 硬碟的儲存設備,便可以使用 Storage vMotion 技術,將 VM 虛擬主機的儲存資源由 SATA 硬碟儲存設備,線上不中斷的遷移到 SAS 硬碟儲存設備。
下列為 VM 虛擬主機線上遷移儲存儲存資源時的五個運作階段:
1. 將 VM 虛擬主機的 Home Directory MetaData (例如,Configuration、SWAP、Log Files……等),準備遷移到目的地 Datastore(例如,另一座儲存設備)。
2. 開始複製 VM 虛擬主機的虛擬硬碟檔(vDisk File),到 目的地的 Datastore 當中。
3. 在舊版 vSphere 4.x 版本中,使用 CBT(Changed Block Tracking)技術保持二邊資料的完整性,採用 vSphere 5.x 和後續版本,則會採用 Mirror Driver 技術,透過 One-Pass Copy 機制將二端的資料區塊(Block)保持同步及完整性。
4. VM 虛擬主機非常快速的執行 Suspended / Resumed 動作,以便使用目的地的 Home Directory MetaData 及 Disk File。
5. 順利切換 VM 虛擬主機的儲存資源後,將來源端的 Home Directory MetaData 及 Disk File 刪除。
圖、Storage vMotion 遷移機制運作示意圖
線上遷移大型 VM 虛擬主機的挑戰?
在前一篇文章 重構後的 vSphere vMotion 即時遷移機制 中,我們已經了解新版 vSphere 7 翻新原有 vSphere vMotion 技術。同時,也因為這層關係,讓 VMware 官方針對 Storage vMotion 技術中的 FSR (Fast Suspend and Resume) 遷移流程進行改善和最佳化。事實上,Stroage vMotion 和 vSphere vMotion 的運作機制非常類似,不同的是 Storage vMotion 著重在線上遷移儲存資源,而 vSphere vMotion 則著重在線上遷移運算資源。
那麼,在開始說明最佳化後的 FSR 技術之前,我們先了解增強前的 FSR 遷移流程機制。簡單來說,FSR 會另外新增一台 VM 虛擬主機,並傳輸 Device State 和 Memory Metadata (請注意,不是 Memory Pages),完成後把舊有的 VM 虛擬主機進行 Cleaned Up / Powered Off / Deleted 等動作。
圖、Storage vMotion FSR 遷移流程
雖然,Storage vMotion 只需要遷移 VM 虛擬主機的 Memory Metadata (包括 PFrames 和 MPN),而不需要遷移完整的 Memory Pages。然而,在遷移 PFrames (Page Frames) 和 MPN (Machine Page Numbers) 時,因為採用的是「單線程」(Single Threaded) 的傳輸方式,所以在處理大型運作規模 VM 虛擬主機時,一樣會碰到切換時間過長的問題 (Switch-over time / Stun-time)。
圖、舊有的 Storage vMotion FSR 線上遷移機制示意圖
圖、舊有的 Storage vMotion FSR 線上遷移機制採用單線程傳輸示意圖
最佳化後的 vSphere 7 Storage vMotion 運作架構
最佳化之後的 Storage vMotion 技術,將過去單線程傳輸方式改為「分佈式模型」(Distributed Model) 架構。簡單來說,把要執行遷移的 VM 虛擬主機 Memory Metadata 切成多段後,平均分配給多個 vCPU 並行傳輸,便可以有效加快傳輸效率同時降低切換時間。
圖、改善後的 Storage vMotion FSR 線上遷移機制運作示意圖
在 VMware 官方測試結果中,透過改善後的 Storage vMotion 技術線上遷移一台 48 vCPU 和 2 TB vRAM 的 VM 虛擬主機時,切換時間從原本的 7.7 秒降低為 500 毫秒。
圖、改善後的 Storage vMotion FSR 線上遷移機制大幅縮短切換時間
參考資源
- vSphere 7 - Storage vMotion Improvements - VMware vSphere Blog
- vSphere 5.0 Storage Features Part 2 - Storage vMotion - VMware vSphere Blog
- You searched for Storage vMotion - VMware vSphere Blog
- VMware Technical White Paper - Storage vMotion of a Virtualized SQL Server Database
- 92 期 - VMware vMotion 運作架構及效能最佳建議 ~ 不自量力 の Weithenn
- CPU Hot Add Performance in vSphere 6.7 - VMware VROOM! Blog - VMware Blogs