本文將深入剖析vSAN HCI Mesh運作架構,說明其環境需求與相關限制,然後進行實際部署,整合vSAN超融合叢集與傳統vSphere叢集,將VM虛擬主機或容器的工作負載有效分配運算資源和儲存資源,以達到資源使用最大化的目標。
從VMware vSphere 7版本開始,VMware官方便公佈後續版本的發佈週期為「6個月」。最新的vSAN 7 Update 2版本已經在2021年3月正式發佈,與vSphere 7 Update 2相同的是,雖然看似為小版本更新,但是實際上在整個vSAN超融合叢集運作架構中,除了原本特色功能的提升外,更新增許多亮眼特色新功能,幫助企業和組織打造更穩定和強大的vSAN超融合叢集基礎架構。
舉例來說,過去版本的vSAN超融合叢集環境,無法在小型規模的2-Nodes vSAN叢集以及中大型規模的「延伸叢集」(Stretched Cluster)中,整合新增的vSAN File Services特色功能。現在,最新版本的vSAN 7 Update 2無論是2-Nodes vSAN叢集或延伸叢集,都已經完全整合並支援vSAN File Services特色功能,如圖1所示。
vSAN 7 Update 2亮眼特色功能介紹
接著,說明vSAN 7 Update 2幾項最新的亮眼特色功能。
正式支援RDMA低延遲機制
事實上,從vSphere 6.7版本開始,VMware官方便開始逐漸支援各種RDMA的應用情境。然而,透過vSAN技術所搭建HCI超融合基礎架構環境中,影響VM虛擬主機儲存效能關鍵的vSAN網路流量,卻遲遲尚未正式支援RDMA低延遲機制,仍然採用傳統的TCP/IP進行vSAN網路流量的傳輸作業。
目前,最新的vSAN 7 Update 2版本已經正式支援RoCE(RDMA over Converged Ethernet)中的RoCE v1和RoCE v2版本,簡單來說,RoCE v1版本屬於Layer 2資料連結層級,而RoCE v2版本則為Layer 3支援路由機制的網路層級,如圖2所示。
與過去採用傳統TCP/IP的vSAN叢集相較,採用RDMA技術的vSAN超融合叢集,更能提供低延遲高吞吐量和高IOPS儲存效能,同時還能有效降低每個讀取和寫入的I/O操作所導致vSAN節點主機CPU運算資源的額外開銷。
原則上,在vSAN超融合叢集架構中,vSAN節點主機只要配置支援RoCE v2的RDMA網路卡,如圖3所示,並且搭配支援RoCE v2的網路交換機,即可在vSphere Client管理介面中,一次性針對所有的vSAN節點主機網路功能啟用RDMA support機制,如圖4所示,倘若有vSAN節點主機RDMA運作異常,導致RDMA無法順利運作時,則vSAN叢集會自動恢復成原有傳統的TCP/IP網路進行傳輸。
共享式vSAN Datastore儲存資源
在前一版vSAN 7 Update 1版本中,vSAN HCI Mesh僅支援Server Cluster和Client Cluster機制,也就是只能在不同的vSAN超融合叢集之間,互相使用對方的vSAN Datastore儲存資源,如圖5所示,而企業資料中心內原有已經建置的傳統vSphere叢集,則無法享受vSAN HCI Mesh技術所帶來的好處。
而新版vSAN 7 Update 2運作架構中,除了原有Server Cluster和Client Cluster支援度增強之外,更支援整合傳統vSphere叢集,也能使用遠端vSAN Datastore儲存資源。簡單來說,傳統vSphere叢集可以將遠端vSAN Datastore儲存資源當成過去連接和掛載傳統硬體儲存設備一樣,不同的是能夠充分享受到vSAN儲存原則的優點,讓VM虛擬主機可以使用傳統vSphere叢集的運算資源,在儲存資源方面則是套用具備彈性的vSAN儲存原則,如圖6所示。
網路流量監控再升級
隨著vSAN超融合叢集功能不斷提升,除了支援RDMA低延遲技術外,新版vSAN HCI Mesh機制更讓傳統vSphere叢集也能直接使用vSAN Datastore儲存資源。可想而知,這一切都必須仰賴良好且穩定和高速傳輸的網路環境,倘若網路環境不理想時,輕者可能造成VM虛擬主機運作效能不佳,嚴重時則可能會不當觸發vSphere HA中的Datastore with APD機制,導致VM虛擬主機發生非預期的關機或重新啟動事件。
因此,在vSAN 7 Update 2版本中針對網路流量監控的部分新增多項指標和檢查機制,例如CRC error、transmit error、receive error、ARP drops、TCP zero frames等等監控指標和檢查機制,如圖7所示,幫助管理人員更快速找出網路環境中出問題的環節在哪裡。
這些新增的監控指標,除了隨時顯示在效能圖表當中方便查找並讓管理人員可以匯出各種格式製作異常報告之外,更能針對各項異常的監控指標建立告警門檻值,如圖8所示,以便網路傳輸異常數據升高超過設定的門檻值時,自動觸發告警機制通知管理人員即時進行處理。
不斷增強的Stretched Cluster
隨著vSAN超融合叢集功能不斷演進,「延伸叢集」(Stretched Cluster)功能同樣也不斷增強。在新版vSAN 7 Update 2運作環境中,除了延伸叢集中主要站台和次要站台,每個站台支援最多擴充至20台vSAN節點主機的規模之外,延伸叢集已經完整支援vSphere DRS負載平衡機制。
由於延伸叢集的架構複雜性,除了必須考慮各種故障情況外,還要考慮災難復原後的最佳運作機制。而新版vSAN 7 Update 2將「資料放置」(Data Placement)機制與vSphere DRS負載平衡機制完全整合,以便延伸叢集發生災難事件並修復完成後,vSphere DRS能夠先將VM虛擬主機保持在同一個站台,直到所有物件和資料已經重新同步完成之後,才透過vSphere DRS的負載平衡規則,將VM虛擬主機遷移至適當的站台,確保物件和資料在重新同步期間不會進行無謂的VM虛擬主機負載平衡作業,有效地減少不同站台之間跨ISL(Inter-Site Link)的讀取操作,並讓物件和資料重新同步的時間大幅地縮短,如圖9所示。
實戰vSAN HCI Mesh
在開始實戰演練vSAN HCI Mesh運作環境之前,先了解運作vSAN HCI Mesh的環境需求和相關限制,避免後續實作時未滿足需求或踩到限制而遭遇到非預期的錯誤。
首先,在「Client Cluster」和「Server Cluster」的部分,分別支援最多「5個」vSAN Datastore儲存資源,如圖10所示。連接vSAN Datastore儲存資源主機數量的部分,在vSAN 7 Update 1版本時最多支援64台vSAN節點主機,到了新版vSAN 7 Update 2版本,則提升至最多支援「128台」vSAN節點主機。
值得注意的是,套用於VM虛擬主機的「儲存原則」(Storage Policy),必須以Server Cluster採用的vSAN儲存原則為準,如圖11所示,而非使用遠端vSAN Datastore儲存資源的Client Cluster進行套用。例如,VM虛擬主機套用RAID-6 FTT=2的儲存原則時,代表Server Cluster叢集中至少包含6台以上的vSAN節點主機。
暫時停用vSphere HA
在組態設定vSAN HCI Mesh機制之前,建議先將vSAN叢集中的vSphere HA高可用性機制暫時停用,如圖12所示,以避免在組態設定過程中不慎觸發vSphere HA高可用性機制,而產生非預期的高工作負載量,並可能中斷及影響VM虛擬主機中持續運作的服務或應用程式。
專屬的vSAN VMkernel Port
在vSAN HCI Mesh運作架構中,無論採用Server Cluster或Client Cluster或者Compute Cluster,建議管理人員都必須為這些vSAN節點主機或ESXi主機組態設定專用於連接和掛載用途,遠端vSAN Datastore儲存資源的vSAN VMkernel Port。值得注意的是,vSAN HCI Mesh架構的跨叢集流量為「RDT over TCP/IP」,和原有傳統vSAN叢集的網路流量,採用近乎完全相同的TCP/IP網路協定堆疊架構。
由於vSAN HCI Mesh為跨叢集架構,建議部署NIC Teaming容錯機制,採用專屬的vDS Switch分佈式交換器,並搭配NIOC網路流量管理機制之外,為了避免因為跨叢集之間的網路延遲,影響VM虛擬主機運作效能,至少應採用10Gbps網路卡建議則是25Gbps網路卡。補充說明一下,當網路延遲時間超過5毫秒(ms)時,將會觸發系統的告警機制。
此外,除了原有建議採用的Layer 2資料連結層外,也支援Layer 3具備路由機制的網路層。因此,管理人員在新增專屬用於vSAN HCI Mesh的VMkernel Port時,可勾選「override default gateway for this adapter」項目,並指定所要採用的預設閘道IP位址,即可支援Layer 3具備路由機制的網路層,如圖13所示。
掛載遠端vSAN Datastore儲存資源
在本文實作環境中,除了vCenter Server管理用途專用的「MGMT-Cluster」外,還建立兩個vSAN超融合叢集,分別是「vSAN-Cluster-A」和「vSAN-Cluster-B」,如圖14所示,建立的vSAN Datastore儲存資源分別為「vsanDatastore-A」和「vsanDatastore-B」。
當vSAN叢集環境部署完成後,依序點選「Datacenter > vSAN Cluster > Configure > vSAN > Remote Datastores」,即可看到vSAN Datastore儲存資源相關資訊,在目前的vSAN-Cluster-A叢集中,可以看到只有本地端的「vsanDatastore-A」儲存資源,如圖15所示。
確認無誤後,按下「Mount Remote Datastore」連結,系統將會彈出Select datastore視窗,在本文實作環境中,選擇另一個vSAN叢集「vSAN-Cluster-B」的儲存資源「vsanDatastore-B」後,如圖16所示,按下〔Next〕按鈕,繼續Client Cluster組態設定流程。
在Check compatibility頁面中,系統將會針對上一個步驟選擇的遠端vSAN Datastore儲存資源,進行多個項目的相容性檢查,如圖17所示,例如遠端vSAN Datastore儲存資源是否為支援格式的版本、vSAN叢集是否已經達到5個Client Cluster的掛載上限等等,確保能夠順利掛載和使用選擇的遠端vSAN Datastore儲存資源。
至此,管理人員可以在Remote Datastore視窗中看到多出了「vsanDatastore-B」儲存資源,如圖18所示,並且Server Cluster為提供遠端vSAN儲存資源的「vSAN-Cluster-B」叢集,而Client Cluster則是使用遠端vSAN儲存資源的「vSAN-Cluster-A」叢集。
同樣地,管理人員可以為vSAN-Cluster-B叢集,組態設定使用vSAN-Cluster-A叢集儲存資源。此時,兩個vSAN叢集的角色將互相對換,多出「vsanDatastore-A」儲存資源,如圖19所示,並且Server Cluster為提供遠端vSAN儲存資源的「vSAN-Cluster-A」叢集,而Client Cluster則是使用遠端vSAN儲存資源的「vSAN-Cluster-B」叢集。
完成vSAN HCI Mesh的組態設定作業後,可以重新啟用vSphere HA高可用性機制。值得注意的是,在啟用vSphere HA高可用性機制時,因為整合HCI Mesh機制的vSAN叢集並非一般普通叢集。簡單來說,當本地端vSAN叢集和遠端vSAN叢集之間連線發生失敗時,將會讓VM虛擬主機受到影響,進而觸發「所有路徑關閉」(All Paths Down,APD)機制。
因此,管理人員應該在啟用vSphere HA高可用性機制時,調整Datastore with APD組態設定值,在一般vSAN HCI Mesh運作環境中,建議採用「Power off and restart VMs - Conservative restart policy」選項即可,如圖20所示。有關Datastore with APD組態設定內容的詳細資訊,請參考VMware KB2004684、KB2032934、KB2032940知識庫文章內容。
遷移VM虛擬主機
部署vSAN HCI Mesh架構後,管理人員可以接著測試遷移VM虛擬主機資源。例如,將運算資源和儲存資源拆開在不同的叢集,或者直接遷移運算和儲存資源至另一個叢集。首先,在vSAN-Cluster-A叢集中,分別建立VM-A01和VM-A02虛擬主機,並且配置使用本地端的vSAN Datastore儲存資源,如圖21所示。
在稍後的線上遷移工作任務中,測試將VM-A01虛擬主機的運算和儲存資源拆開,讓VM-A01虛擬主機使用vSAN-Cluster-B的運算資源,但是儲存資源則維持使用原本vSAN-Cluster-A的vsanDatastore-A。至於VM-A02虛擬主機,則將運算和儲存資源都遷移至vSAN-Cluster-B叢集。
在點選VM-A01虛擬主機的Migrate項目後,於彈出的Select a migration type視窗中選擇「Change compute resource only」項目,在Select a compute reousrce頁面中,則選擇vSAN-Cluster-B叢集中的vSAN節點主機,並確保下方相容性檢查結果為「Compatibility checks succeeded」,其他則與傳統vMotion線上遷移VM虛擬主機流程相同。
當vMotion線上遷移流程執行完畢,可以看到VM-A01虛擬主機在運算資源方面使用vSAN-Cluster-B叢集,至於儲存資源方面則是整合vSAN HCI Mesh機制,使用原有vSAN-Cluster-A的vsanDatastore-A儲存資源,如圖22所示。
同樣地,點選VM-A02虛擬主機的Migrate項目,然後在彈出的Select a migration type視窗中選擇「Change both compute resource and storage」項目,接著在Select a compute reousrce頁面中選擇vSAN-Cluster-B叢集中的vSAN節點主機,並在Select storage頁面內選擇「vsanDatastore-B」儲存資源,其他則與傳統vMotion遷移VM虛擬主機流程相同。
當vMotion遷移流程執行完畢,管理人員可以看到VM-A02虛擬主機在運算資源方面使用vSAN-Cluster-B叢集,至於儲存資源方面則從原本vSAN-Cluster-A的vsanDatastore-A儲存資源,遷移至vSAN-Cluster-B的vsanDatastore-B儲存資源,如圖23所示。
部署vSAN HCI Mesh Compute Cluster
在本文實作環境中,建立一個傳統的vSphere叢集,並準備掛載和使用遠端vSAN Datastore儲存資源。在vSphere Client管理介面中,依序點選「Datacenter > vSphere Cluster > Configure > vSAN > Services > Configure vSAN」項目,在彈出的Select vSAN configuration視窗中,選擇「vSAN HCI Mesh compute cluster」項目,如圖24所示。隨後,在Review頁面中確認無誤後按下〔Finish〕按鈕,就完成組態設定作業。
順利啟用vSAN HCI Mesh Compute Cluster功能後,便會在vSAN組態設定選項中出現Remote Datastores子項目,管理人員便能執行掛載遠端vSAN Datastore儲存資源的工作任務,與之前組態設定的操作步驟相同,連接和掛載遠端「vsanDatastore-A」和「vsanDatastore-B」儲存資源,如圖25所示。
部署或遷移VM虛擬主機儲存資源
傳統vSphere叢集無論部署新的VM虛擬主機,或現有VM虛擬主機需要執行Storage vMotion工作任務,遷移VM虛擬主機的儲存資源時,都能選擇已經連接和掛載完成的遠端vSAN Datastore儲存資源,並且套用具備彈性的vSAN儲存原則。在本文實作環境中,於傳統vSphere叢集「vSphere-Cluster」中,部署一台VM-C虛擬主機並在選擇儲存資源時,選擇已經掛載完成的遠端vSAN Datastore儲存資源「vsanDatastore-A」,當VM-C虛擬主機部署完成後,即可查看VM-C虛擬主機採用的vSAN儲存原則,如圖26所示,以及VM虛擬主機的vSAN儲存物件分佈情況,再次達成VM虛擬主機運算和儲存資源拆開的目的。
結語
透過本文的剖析和實戰,相信管理人員理解vSAN HCI Mesh運作架構以及環境需求和相關限制後,能夠輕鬆部署vSAN HCI Mesh機制,將vSAN超融合叢集和傳統vSphere叢集進行整合,把VM虛擬主機或容器的工作負載有效分配運算資源和儲存資源,達到資源使用最大化。
<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>