部署vSAN Storage Cluster 彈性擴充規劃儲存/運算資源

隨著企業邁向私有雲與混合雲架構,企業和組織對於資料中心算力與儲存容量的需求,往往不再是以固定比例同步增長。在過往傳統的超融合架構(HCI)中,運算資源與儲存資源緊密綁定於相同的實體伺服器。

雖然HCI的「資源聚合」(Aggregated Resources)超融合運作架構,能夠有效簡化初期部署的難度,但在面臨特定應用情境,例如大量雲端原生應用、巨量資料庫或大容量檔案儲存時,管理人員經常會遭遇到「儲存空間已經不足,但是CPU和記憶體仍大幅閒置」的資源失衡困境,進而導致非必要的硬體授權與採購成本的浪費。

為了解決這個困境,官方在vSAN Express Storage Architecture(ESA)的技術基礎上,推出「獨立解耦」(Disaggregated Storage)的專用儲存叢集架構「vSAN Max」。如圖1所示,透過vSAN Max打破了傳統HCI超融合基礎架構的界線,允許企業組織利用標準通用伺服器,建立獨立的專用儲存叢集,為多個vSphere運算叢集提供高效能且集中化的共享儲存服務。

圖1 傳統vSAN HCI超融合及vSAN Max運作架構示意圖。
(圖片來源:vSAN HCI or Storage Clusters – Which Deployment Option is Right for You? – VMware Cloud Foundation (VCF) Blog)

這種將算力與儲存資源解耦合的部署模式,不僅讓儲存容量與效能得以獨立彈性擴充,更讓企業和組織能針對不同應用情境,最大化軟體授權與硬體生命週期管理。

時至今日,最新的VMware Cloud Foundation (VCF) 9.1,正式將此一解耦合儲存架構定位並命名為「vSAN Storage Cluster」,這不單單是名稱上的轉變,更代表著vSAN遠端儲存區掛載(Remote vSAN Datastore)技術的重大升級。

在最新版本中,vSAN Storage Cluster運作架構開始突破性支援新式混合模式(Mixed Mode),解除過往傳統OSA(Original Storage Architecture)與新式ESA儲存架構之間一直無法交叉混合掛載儲存資源的限制,現在便可輕鬆地將舊有的OSA儲存叢集直接掛載至新型ESA Storage Cluster,大幅降低升級門檻與轉移陣痛期,如圖2所示。

圖2 vSAN Storage Cluster混合模式運作架構示意圖。
(圖片來源:Greater Flexibility and Security with VMware vSAN Storage Clusters in VCF 9.1 – VMware Cloud Foundation (VCF) Blog)

此外,在vSAN Storage Cluster運作架構中,也同時新增跨叢集傳輸加密(Data-in-Transit Encryption)機制,更提供端到端的資安防護,滿足金融與醫療等高度監管產業對資料傳輸安全的嚴苛要求。

vSAN Storage Cluster架構最佳作法

當企業組織考慮部署vSAN Storage Cluster時,務必採用通過認證專用的ReadyNode規格。此外,為了避免觸及vSAN元件數量上限,單台主機建議配置至少6個以上的NVMe儲存裝置,並配置TPM模組確保Data-at-Rest加密金鑰的安全性。在節點密度設計上,高密度主機的設計方式,雖然能夠降低授權成本並節省機架空間,然而單機故障時影響範圍較大,並且叢集總效能上限較低,相對來說,採用多台低密度主機組成的叢集架構,雖然硬體成本投資較高,但能夠提供更好的IOPS儲存效能,並且大幅縮短資料重建和資料平衡的工作任務時間,如圖3所示。

圖3 vSAN Storage Clusters運作規模管理和規劃示意圖。
(圖片來源:Design and Operational Guidance for vSAN Storage Clusters)

在單一站點部署中,叢集最少需要由4台主機組成以支援RAID-5空間效率,最佳作法則是部署7台以上主機,以達成FTT=2(RAID-6)的容錯層級,並在單機發生故障後提供自動重建的緩衝空間。考量到機架空間與跨越機架網路流量等因素,建議單一儲存叢集規模控制在16台主機以內,如果是跨越站點的延伸叢集(Stretched Cluster),則至少需要8台叢集節點主機,也就是每一個站點需要4台,如圖4所示。

圖4 高可用性vSAN Stretched Cluster運作架構示意圖。
(圖片來源:Design and Operational Guidance for vSAN Storage Clusters)

除此之外,掛載該儲存叢集的所有Compute Cluster主機,加上Storage Cluster本身的總主機數量上限為128台,並且單一vSAN Storage Cluster Datastore儲存資源,最多僅支援10個Client Cluster進行遠端掛載。

最值得管理人員注意的是網路架構,因為它是決定vSAN ESA效能的核心要素,vSAN Storage Cluster後端網路建議配置25GbE或100GbE網路卡頻寬,以承受資料寫入與資料平衡時的網路流量放大需求。至於Client端的網路,則僅需10GbE網路卡頻寬即可,兩端之間的網路延遲應控制在1ms以內,如圖5所示:

圖5 vSAN Storage Cluster網路環境規劃最佳建議作法示意圖。
(圖片來源:Design and Operational Guidance for vSAN Storage Clusters)

‧專用獨立VMkernel:務必落實vSAN 9.0的網路流量隔離機制,vSAN Storage Cluster叢集節點主機需要明確拆分vSAN服務,後端節點間叢集流量,例如vmk2,與vSAN Storage Cluster Client服務,前端跨叢集Guest VM I/O流量,例如vmk3。

‧實體Uplink頻寬要求:建議採用25GbE或更高速(50GbE/100GbE)的實體網路介面卡,並採用LACP或基於Load-Based Teaming(Route based on physical NIC load)進行網路流量負載平衡,確保前端Client叢集的資料讀寫,與後端資料重建(Rebalance/Rebuild)不會互相搶占網路頻寬。

‧MTU與VLAN設定:所有與vSAN相關的VMkernel、vDS分散式交換器Port Group以及實體 Switch Port上,都應該啟動Jumbo Frames(MTU 9000),以降低叢集節點主機的CPU工作負載並大幅提升網路流量使用率。

在網路流量隔離方面,VCF 9.0版本以後開始支援將vSAN後端中,「東西向」(East-West)複寫流量與接收Client前端I/O流量進行標籤隔離。在實體機架配置上,應該要儘量將儲存叢集都集中於單一機架上,以便透過ToR Switch處理流量,並確保Spine-Leaf Switch之間維持1:1的「過載比率」(Oversubscription Ratio),防止因為網路封包遺失進而影響到IOPS儲存效能的表現。

在正式部署vSAN Storage Cluster之前,必須確保vDS、DRS、HA與vMotion服務均已啟動,然後在建立叢集時須啟用vSAN Storage Cluster服務,並開啟Auto-RAID自動防護管理與「自動重新平衡」(Automatic Rebalance)功能。遠端掛載Datastore儲存資源的Client Cluster,必須將HA高可用性機制中的APD(All Paths Down)回應機制,組態設定調整為「Power off and restart VMs」。而在儲存原則方面,由於ESA架構下的RAID-6效能與空間利用率均優於RAID-1,因此單一站點應避免使用RAID-1儲存原則,同時系統預設便會啟用「壓縮」(Compression)服務以最大化儲存效率。

針對不同類型的vSAN叢集,也應該分別採用適合的維護原則,舉例來說,針對vSAN Compute Cluster叢集主機維護時,可以採用一般Ensure Accessibility或Evacuate all data選項,因為對於vSAN Compute Cluster來說,由於沒有儲存資源,所以僅須將VM虛擬主機透過vMotion遷移至其他運算叢集節點主機上繼續運作即可,對於儲存資源並不會造成任何的影響。

然而,針對vSAN Storage Cluster的部分,在叢集節點主機進入維護模式之前,必須確認遠端vSAN Compute Cluster VM虛擬主機的存取狀態。選擇採用「Ensure Accessibility」模式時,須確保剩餘儲存節點的儲存空間配額、IOPS儲存效能是否足以支撐所有運算叢集的即時I/O,以便充分利用ESA的Durability Components機制記錄資料異動,除非有必須,否則不要選擇採用「全部資料遷移」(Full Data Migration)選項。

當有需要進行韌體與驅動程式更新時,優先透過vSphere Lifecycle Manager(vLCM)搭配HSM進行自動化管理,倘若專案因素需要擴充儲存容量,建議以新增叢集節點的橫向擴充(Scale-Out)方式為主,以便同時提升儲存容量與IOPS儲存效能。針對高I/O需求的VM虛擬主機,建議配置多個PVSCSI儲存控制器,並且分散掛載多個VMDK虛擬磁碟,即可充分發揮Queue Depth與並列處理機制,有效提升VM虛擬主機的儲存效能。

值得注意的是,vSAN容量管理與動態負載平衡的部分,應該為儲存容量組態設定預警閾值,例如設定80%儲存容量告警和90%儲存容量緊急通知。由於vSAN Storage Cluster需要同時服務多個vSAN Compute Cluster運算叢集,若發生儲存空間耗盡的情況時,將會導致多個運算叢集上的VM虛擬主機運作狀態處於暫停無法服務的情況。

並且建議啟動vSAN儲存空間自動再平衡機制,能夠有效避免vSAN Storage Cluster運作架構中,每台叢集節點主機的ESA Disk Group之間,或是儲存裝置空間的I/O工作負載過度傾斜,導致某些儲存裝置可能空間已滿,而某些儲存裝置仍有許多閒置空間,同時過度頻繁寫入某個儲存裝置,也容易造成儲存裝置壽命提早結束。

在vSAN SPBM儲存原則的動態微調部分,建議啟用應用程式層級IOPS限速機制,能夠有效避免吵雜鄰居的情況發生,舉例來說,在vSAN Compute Cluster叢集上,研發或測試用途的VM虛擬主機,發送大量I/O占用vSAN Storage Cluster儲存資源,進而影響到正式營運環境的VM虛擬主機時,便能透過vSAN SPBM設定最高使用IOPS的限制,確保企業組織的核心業務VM虛擬主機運作效能。

最後,也最容易被管理人員忽略的部分是,應該要定期清理vSAN Compute Cluster叢集中,VM虛擬主機產生的過期快照檔案,並監控Data Protection的使用量,避免無謂消耗vSAN Storage Cluster儲存資源中的寶貴儲存空間。

實戰vSAN Storage Cluster

以下將透過實際的操作步驟,帶領管理人員一步步完成vSAN Storage Cluster的部署流程,並且組態設定和驗證「運算叢集」(Compute Cluster),如何成功遠端掛載vSAN Storage Cluster Datastore儲存資源。

查看vSAN叢集類型
首先,在vCenter管理介面清單樹狀目錄中,點選本文實作環境的目標儲存叢集「vSAN9-Storage-Cluster」,接著切換至「Configure」頁面,並在左側選單中依序點選「vSAN > Services」項目。

展開右側的Services細項內容,即可在Storage區塊中,確認目前的Cluster type已正確顯示為「vSAN Storage Cluster」,如圖6所示,並且Storage types為「vSAN ESA」,這表示此vSAN叢集為專門提供分散式儲存資源的純儲存叢集,負責為其他外部的運算叢集提供高度可擴充的Datastore儲存資源。

圖6 檢查vSAN Storage Cluster服務狀態與類型設定。

依循同樣的操作步驟,在vCenter管理介面中點選遠端掛載端的目標運算叢集「vSAN9-Compute-Cluster」,依序點選「Configure > vSAN > Services」後,即可在Storage區塊中,確認目前的Cluster type顯示為「vSAN Compute Cluster」,如圖7所示,並且Storage types顯示為「Remote vSAN」,表示此叢集為使用外部儲存資源所設計的運算叢集,專門用來遠端掛載並使用其他vSAN Storage Cluster,或是vSAN HCI叢集所提供的Datastore儲存資源。

圖7 檢查vSAN Compute Cluster服務狀態與類型設定。

在vSAN9-Compute-Cluster運算叢集Configure頁面中,在左側選單中點選「vSAN > Datastore Management」項目,切換至右側的管理介面後,即可在清單中清楚確認名稱為「vsan_SC_Datastore」的遠端Datastore儲存資源,如圖8所示,可以看到儲存資源實際上存放於「vSAN9-Storage-Cluster」儲存叢集上,並且採用vSAN ESA儲存架構,同時已經成功由運算叢集進行遠端掛載,也可以在介面中即時查看其容量使用率與詳細配額資訊。

圖8 查看運算叢集遠端掛載vSAN Storage Cluster Datastore儲存資源的狀態。

確認vSAN網路流量
在VCF 9.0環境下部署vSAN Storage Cluster時,系統會自動新增全新的網路組態設定選項,此選項功能不僅可有效提升儲存效能,還能提供更完整的網路流量隔離與安全性,為整體VCF運作架構帶來更高層級的設計彈性。

從VCF 9.0版本開始,為vSAN儲存流量導入Guest VM I/O網路流量,也就是VM虛擬主機存取vSAN Datastore的前端流量,以及vSAN I/O儲存叢集節點之間傳輸的後端流量,並進行標籤隔離的能力,管理人員可以透過配置不同的獨立VMkernel Port,達到將vSAN前後端網路流量完全分離的目的。

現在,將針對vSAN Storage Cluster儲存叢集,查看其vSAN叢集節點的VMkernel介面。在vSAN Storage Cluster儲存叢集中,有兩組專用的VMkernel Port。首先,在vCenter管理介面清單樹狀目錄中,點選目標儲存叢集「vSAN9-Storage-Cluster」,接著切換至「Configure」頁面,並在左側選單中點選「Networking > VMkernel adapters」項目。

點選「vmk2」旁邊的展開圖示,即可在右側的Port properties區塊中確認此VMkernel Port啟用的服務為「vSAN」,如圖9所示。在vSAN Storage Cluster架構中,vmk2主要負責處理儲存叢集節點之間的vSAN I/O資料傳輸,也就是所謂的「後端」(Back-End)複製與重建流量。

圖9 查看vSAN儲存叢集節點vmk2後端流量介面設定。

在相同的VMkernel adapters設定畫面中,點選「vmk3」旁邊的展開圖示。此時,可以在右側的Port properties區塊中確認此VMkernel Port啟用的服務為「vSAN Storage Cluster Client」,如圖10所示。在vSAN Storage Cluster架構中,vmk3專門負責與外部vSAN Client Cluster節點上的VMkernel Port進行通訊,用來傳輸Guest VM I/O存取要求,也就是所謂的「前端」(Front-End)流量。

圖10 查看vSAN儲存叢集節點vmk3前端流量介面設定。

接著,查看vSAN Client運算叢集節點的VMkernel Port介面組態設定,在vCenter管理介面清單樹狀目錄中,點選目標運算叢集「vSAN9-Compute-Cluster」,然後切換至「Configure」頁面,並在左側選單中點選「Networking > VMkernel adapters」項目,再點選「vmk2」旁邊的展開圖示,即可在右側的Port properties區塊內確認此VMkernel Port啟用的服務同樣為「vSAN」,如圖11所示。

圖11 檢視vSAN運算叢集節點vmk2前端流量介面設定。

在vSAN Compute Cluster運算叢集的運作架構情境中,此處的vmk2主要是負責與vSAN儲存叢集節點上,vSAN Storage Cluster Client VMkernel Port進行跨叢集對接與通訊,用來傳輸Guest VM I/O請求,也就是處理前端網路流量的部分。

部署VM至vSAN運算叢集
在vSAN Compute Cluster上部署VM虛擬主機的操作流程,與傳統在vSAN HCI超融合叢集上的部署方式完全一致,唯一的差異在於,在指定運算資源時會選擇運算叢集,而在選擇儲存資源時,則是指定位於外部vSAN Storage Cluster上的Datastore儲存資源。

為了驗證此架構的部署方式與傳統vSAN HCI超融合叢集相同,這裡將透過建立全新的VM虛擬主機進行實作範例說明。首先,在vCenter管理介面清單樹狀目錄中,先用滑鼠右鍵點選運算叢集「vSAN9-Compute-Cluster」,並在右鍵彈出選單中點選【New Virtual Machine】項目,準備部署VM虛擬主機至vSAN運算叢集中。

進入「New Virtual Machine」互動介面後,在1. Select a creation type設定頁面中,系統預設選取「Create a new virtual machine」選項,此選項將引導管理人員從頭建立一台全新的VM虛擬主機,並可彈性自訂CPU、記憶體、網路連線與儲存設定,確認無誤後點選〔NEXT〕按鈕以繼續進行下一步。

進入2. Select a name and folder設定頁面後,在「Virtual machine name」欄位中輸入預計建立的VM虛擬主機名稱,本文實作環境為SC-TestVM。接著,在下方樹狀目錄中點選目標資料中心,例如VCF-Datacenter,指定該台VM虛擬主機的存放位置,完成後點選〔NEXT〕按鈕。

切換至3. Select a compute resource設定頁面,管理人員必須在樹狀目錄中點選作為運算資源來源的運算叢集「vSAN9-Compute-Cluster」,此時可以看到下方的Compatibility區塊中顯示綠色打勾的Compatibility checks succeeded.文字資訊,代表目標vSAN運算叢集已經通過系統的相容性檢查,確認無誤後點選〔NEXT〕按鈕。

進入4. Select storage設定頁面後,可以在「VM Storage Policy」下拉式選單中選擇適合的vSAN儲存原則,在本文實作環境中選擇名稱開頭為cluster-esa-01b的vSAN儲存原則。然後,在儲存清單中點選遠端掛載的「vsan_SC_Datastore」儲存資源,如圖12所示,同樣地,下方的Compatibility區塊將會顯示綠色打勾的Compatibility checks succeeded.文字資訊,代表選擇的目標Datastore儲存資源順利通過系統的Datastore相容性檢查作業,隨後點選〔NEXT〕按鈕進入下一步。

圖12 選擇來自vSAN Storage Cluster的遠端Datastore作為儲存資源。

切換至5. Select compatibility設定頁面後,在Compatible with下拉式選單中選擇符合目前vSAN運算叢集節點主機中,VM虛擬主機的虛擬硬體版本,並且與營運環境需求相容的層級,例如ESXi 9.0 and later。舉例來說,屆時要運作的VM虛擬主機客體作業系統,倘若是最新的Windows Server 2025作業系統,建議選擇最新版本的虛擬硬體,以便確保VM虛擬主機能夠獲得最佳的效能表現與完整的硬體功能支援,確認無誤後點選〔NEXT〕按鈕。

隨後進入6. Select a guest OS設定頁面,在Guest OS Family下拉式選單中選擇客體作業系統類型,例如Windows,並於Guest OS Version下拉式選單中選擇預計安裝的作業系統版本,例如Microsoft Windows Server 2025 (64-bit),並且依據安全性需求勾選Enable Windows Virtualization Based Security選項,以便屆時能夠順利啟用系統層級的安全防護機制,確認設定無誤後點選〔NEXT〕按鈕進入下一步。

切換至7. Customize hardware設定頁面後,依據營運需求來調整VM虛擬主機的各項硬體配置,如下列所示:

‧CPU:設定vCPU虛擬處理器數量,例如2。
‧Memory:配置vMemory虛擬記憶體大小,例如4GB。
‧New Hard disk:指定vDisk虛擬磁碟容量,例如90GB。
‧New Network:選擇vNIC目標網路介面,例如VM Network,並確認已勾選Connected選項,否則屆時VM虛擬主機將無法順利連接區域網路。

進入最後8. Ready to complete總覽頁面,如圖13所示,管理人員可在此對先前設定的各項參數進行最終確認,確認所有資訊皆正確無誤之後,點選右下角的〔FINISH〕按鈕,系統便立即開始在vSAN Compute Cluster上執行VM虛擬主機建立作業,但是VM虛擬主機的vDisk虛擬硬碟,則是vSAN Storage Cluster的遠端Datastore作為儲存資源。

圖13 再次檢視VM虛擬主機總覽設定並點選FINISH完成部署。

驗證VM虛擬主機vSAN關聯物件
完成VM虛擬主機部署作業後,可以在vCenter中確認新建立VM虛擬主機,跨越運算叢集和儲存叢集的資源分配狀態。在Hosts and Clusters檢視頁面中,點選新建立的VM虛擬主機SC-TestVM,並切換至Summary頁面,向下捲動至Related Objects區塊,如圖14所示,即可驗證此VM虛擬主機的運算與儲存位置:

圖14 檢視SC-TestVM虛擬主機關聯物件細節資訊。

‧Cluster:位於運算叢集vSAN9-Compute-Cluster。
‧Host:目前運行的vSAN叢集節點主機為Node10.lab.weithenn.org。
‧Networks:連接至名稱為VM Network的虛擬網路環境。
‧Storage:儲存檔案存放於遠端掛載的vsan_SC_Datastore。

透過上述VM虛擬主機資訊,可以確認這台新部署的VM虛擬主機順利透過vSAN Compute Cluster提供運算資源,並且跨越叢集存取來自vSAN Storage Cluster的儲存空間。

<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>