本文將透過深入剖析和實戰演練,一步一步帶領管理人員體會實際建置過程,並透過微軟巢狀式虛擬化技術,讓預算本來就吃緊的中小型企業和組織的管理人員,在無須準備任何x86硬體伺服器的情況下,也能夠研究和測試S2D超融合叢集。
微軟最初的HCI超融合解決方案,事實上是從Windows Server 2016版本開始,而一路演變到Windows Server 2019版本時,微軟發覺Windows Server平台的多功能性並不適合持續發展為HCI超融合平台,因此便發展出無GUI圖形介面的Azure Stack HCI平台,並演變為現在最新版本的Azure Local超融合平台。
但是,微軟並沒有將S2D超融合功能特色從Windows Server版本中移除,只是後續新增的HCI超融合特色功能只會在Azure Local超融合平台導入並推出,而不會加入Windows Server版本中。
然而,微軟在聽取社群和MVP的建議之後,在最新的Windows Server 2025 Failover Clustering 2025-12安全更新(KB5072033)中,正式支援的新特色功能S2D Campus Cluster,則打破了這個慣例,如圖1所示。
圖1 S2D Campus Cluster運作架構示意圖。 (圖片來源:Announcing Support for S2D Campus Cluster on Windows Server 2025 | Microsoft Community Hub)
在S2D超融合運作環境中,「故障網域」(Fault Domains)分為四個典型層級,包括節點主機(Node)、機箱(Chassis)、機櫃(Rack)、站台(Site)。舉例來說,如果企業組織的S2D超融合環境中並沒有採用刀鋒伺服器時,那麼採用機箱等級的故障網域便不合理,如圖2所示。
圖2 S2D超融合叢集支援的四種故障網域層級。 (圖片來源:Fault domain awareness | Microsoft Learn)
值得注意的是,當企業和組織希望部署S2D Campus Cluster on Windows Server 2025環境時,請確認運作環境必須滿足下列的需求:
‧每台S2D節點主機,都必須安裝Windows Server 2025 Failover Clustering 2025-12安全更新(KB5072033),並使用支援以及通過驗證的x86硬體伺服器。
‧每台S2D節點主機儲存裝置,僅能使用SSD或NVMe硬碟,不支援採用HDD。
‧必須定義兩個「機櫃」(Rack)的故障網域,並且將節點主機分別放置於這兩個不同的機櫃當中。
‧S2D超融合叢集的仲裁(File Share Witness, Disk Witness, Cloud Witness, or USB Witness),必須放在第三地,與機櫃和資料中心分開。
‧每座機櫃,都應該有獨立的網路路徑,能夠連接到仲裁資源。
‧必須為S2D超融合叢集的儲存流量,配備容錯的TOR和CORE網路交換器,以及專用網路環境,減少單點故障(SPOF)的風險,同時最大化工作負載時間和耐用性。
‧故障網域之間的機櫃,網路延遲時間必須為「1ms(或更低)」。
‧採用RDMA網卡與支援的網路交換器,因為RDMA網卡與支援的網路交換器能夠節省S2D節點主機30%的CPU工作負載。
雖然微軟破例為Windows Server 2025雲端系統平台新增S2D Campus Cluster特色功能,但這項功能在Azure Local超融合平台中目前已經進入技術預覽階段,正式名稱為「Azure Local Rack Aware Clustering」,如圖3所示。
圖3 Azure Local Rack Aware Cluster網路架構示意圖。 (圖片來源:Overview of Azure Local rack aware clustering (Preview) - Azure Local | Microsoft Learn)
接著,就來實際示範如何部署WS2025 S2D超融合叢集。
部署巢狀式技術VM虛擬主機
由於中小型企業組織可能沒有現成並且滿足S2D超融合叢集條件的x86硬體伺服器,因此本次實戰演練將會使用Microsoft Azure公有雲環境並啟用巢狀式虛擬化技術,幫助管理人員輕鬆部署S2D超融合叢集環境。
企業內部若有符合S2D超融合叢集條件的x86硬體伺服器,當然也可以直接進行實作,或是有老舊的x86硬體伺服器也支援硬體輔助虛擬化技術,同樣也能夠在啟用巢狀式虛擬化技術後部署S2D超融合叢集環境。
值得注意的是,無論是地端資料中心或是採用Azure公有雲環境,部署支援巢狀式虛擬化環境後所建構的S2D超融合叢集,僅僅適用於測試或研究用途,並不適合用於企業組織的營運環境。
與新世代的Azure Local超融合叢集不同,在部署S2D超融合叢集環境時,儲存裝置方面支援採用多種儲存類型,例如單一種類的NVMe或SSD的All-Flash運作架構,或是採用混合式儲存裝置,例如NVMe+SSD、NVMe+HDD、SSD+HDD等等,如圖4所示,這是管理人員採用實體伺服器建構S2D超融合叢集時必須注意的地方。
圖4 S2D超融合叢集支援採用混合式儲存裝置。 (圖片來源:Understanding the storage pool cache in Azure Local and Windows Server clusters | Microsoft Learn)
在實戰演練中,首先會在Azure公有雲環境中部署一台支援巢狀式虛擬化的VM虛擬主機,接著建立多台巢狀式VM虛擬主機,以達成部署S2D超融合叢集的目的。值得注意的是,在部署Azure VM Gen2世代虛擬主機時,預設在安全性類別採用「Trusted launch virtual machines」選項,雖然支援更多新式安全性機制,但卻會導致巢狀式虛擬化機制無法運作。
因此,在建立支援巢狀式虛擬化的Azure VM虛擬主機時,如圖5所示,記得將安全性類別調整為「Standard」項目,才能確保後續的巢狀式虛擬化技術正常運作,詳細資訊請參考「Azure VM的可信任啟動 - Azure Virtual Machines | Microsoft Learn」官方文件說明。
圖5 在安全性類型選項請採用Standard避免巢狀式虛擬化技術無法運作。
巢狀網路NAT網路位址轉換
當使用Azure公有雲環境時,由於支援巢狀式虛擬化技術的Azure VM虛擬主機已經屬於Level 1層級的VM虛擬主機,企業組織無法碰觸到Azure公有雲環境中屬於Level 0層級的Hyper-V主機,無法為Level 1層級VM虛擬主機啟用MAC位址欺騙功能。
此時,必須在Level 1層級,也就是Azure VM虛擬主機上,建立具備NAT網路位址轉換功能的vSwitch虛擬網路交換器,以便屆時Level 2層級的VM虛擬主機,也就是DC網域控制站、S2D單節點主機、WAC管理主機,能夠透過Level 1層級的NAT網路位址轉換機制,讓Level 2層級的網路封包能夠被正確路由,進而與Level 0層級的實體網路環境或網際網路進行通訊。
在本文實作環境中,建立的NAT vSwitch虛擬交換器名稱為「S2D-NATSwitch」,處理的NAT網路位址轉譯IP網段是「10.10.75.0/24」,預設閘道IP位址為「10.10.75.1」。
在Azure VM虛擬主機中,安裝完Hyper-V PowerShell後,開啟PowerShell指令視窗並鍵入「New-VMSwitch -Name "S2D-NATSwitch" -SwitchType Internal」指令,建立給Level 2層級VM虛擬主機使用的NAT vSwitch虛擬交換器,並指派連接類型為「Internal network」。建立完畢,可透過Hyper-V管理員進行檢查是否套用生效。
接著,執行「New-NetIPAddress -IPAddress 10.10.75.1 -AddressFamily IPv4 -PrefixLength 24 -InterfaceAlias "vEthernet(S2D-NATSwitch)"」指令,為剛才建立的NAT vSwitch虛擬交換器,組態設定預設閘道IP位址為「10.10.75.1」。
再執行「New-NetNat -Name "S2D-NATSwitch" -InternalIPInterfaceAddressPrefix "10.10.75.0/24"」,組態設定NAT vSwitch虛擬交換器所要處理的NAT網路位址轉譯IP網段為「10.10.75.0/24」。
當NAT vSwitch虛擬交換器成功建立後,可以分別執行「Get-VMSwitch」、「Get-NetIPAddress -IPAddress 10.10.75.1」、「Get-NetNat」等等指令,再次確認NAT vSwitch虛擬交換器組態設定內容是否正確,避免後續發生網路組態錯誤導致無法路由的情況。
部署DC/WS2025/WAC主機
首先,分別下載Windows Server 2025和Windows11 ISO映像檔。在本文實作環境中,新增三台VM虛擬主機,安裝Windows Server 2025雲端作業系統,其中一台負責擔任DC網域控制站角色,組態設定IP位址為「10.10.75.10」,部署建立「hci.weithenn.org」網域名稱,同時新增DNS名稱解析服務,確保稍後擔任Windows Admin Center(WAC)角色的主機,以及另外兩台擔任S2D超融合叢集節點主機,如圖6所示,能夠順利加入Active Directory網域環境,並使用正確的DNS名稱解析。
圖6 安裝Windows Server 2025雲端作業系統。
值得注意的是,在巢狀式虛擬化環境中建立的兩台S2D超融合叢集節點主機,在為這屬於第二層VM虛擬主機開機並安裝客體作業系統之前,必須先為第二層VM虛擬主機的vCPU處理器,執行啟用vCPU虛擬處理器硬體輔助虛擬化擴充功能的動作,屆時第二層VM虛擬主機才能正確接收到,由底層Hyper-V虛擬化平台所公開及傳遞而來的Intel VT-x及EPT硬體輔助虛擬化技術。
在PowerShell指令視窗中執行「Set-VMProcessor -VMName S2D-N01 -ExposeVIrtualizationExtensions $true」指令,為名稱為「S2D-N01」的第二層VM虛擬主機啟用vCPU虛擬處理器硬體輔助虛擬化擴充功能的動作,順利啟用之後,請再次確認「ExposeVirtualizationExtensions」的欄位值是否為「True」,以確保啟用的工作任務已套用生效,如圖7所示,否則屆時在建構S2D超融合叢集環境時,在嘗試安裝Hyper-V伺服器角色時會發生錯誤。
圖7 為第二層VM虛擬主機啟用vCPU虛擬處理器硬體輔助虛擬化擴充功能。
請注意,第二層VM虛擬主機必須在「關機」(Power Off)狀態,才能啟用vCPU虛擬處理器硬體輔助虛擬化擴充功能,如果處於「開機」(Power On)狀態,執行指令時將會失敗。
管理人員可以透過SConfig伺服器組態設定工具或習慣的GUI圖形化介面,輕鬆為S2D主機進行基礎架構的組態設定,例如電腦名稱、網路組態設定、變更系統時區和時間、安裝最新安全性更新、加入網域環境等等工作任務。
在本文實作環境中,將S2D虛擬主機的電腦名稱變更為「S2D-N01和S2D-N02」、網路組態設定固定IP位址為「10.10.75.21和10.10.75.22」、變更系統時區為「(UTC + 8)Taipei」,並且在安裝完最新安全性更新並重新啟動後,加入「hci.weithenn.org」網域環境。
順利設定S2D主機加入網域環境後,倘若管理人員對於指令管理防火牆規則不熟悉的話,可以在測試和研究環境中將防火牆關閉,但在日後正式營運環境中務必保持防火牆規則啟用。執行指令「Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled False」,一次將三種設定檔類型的防火牆規則都關閉,如圖8所示,然後再次確認是否套用生效。
圖8 一次將三種設定檔類型的防火牆規則都關閉。
接著,確認為每台S2D超融合叢集節點主機,額外配置的4顆300GB儲存空間的vDisk虛擬硬碟,是否能夠被系統正確識別,確保稍後建立超融合儲存集區時,能夠順利將所有額外新增的vDisk虛擬硬碟匯整至儲存集區內,成為日後S2D超融合叢集中其他VM虛擬主機或容器等工作負載的儲存資源。
可以在S2D叢集節點主機中開啟PowerShell指令視窗環境,執行「Get-PhysicalDisk | sort -Property Size」指令,檢查S2D叢集節點主機儲存裝置,並以Size欄位排序顯示結果,確保4顆300GB儲存空間的vDisk虛擬硬碟,每個CanPool欄位值皆為「True」,如圖9所示,確保這4顆儲存裝置能順利加入至超融合儲存集區中。
圖9 確保系統正確識別4顆300GB的vDisk虛擬硬碟且CanPool欄位為True。
在Windows Server 2025運作環境中,透過Install-WindowsFeature指令,或伺服器管理員安裝指定的伺服器角色和功能,例如DCB資料中心橋接(Data-Center-Bridging)、容錯移轉叢集(Failover-Clustering)、檔案伺服器(FS-FileServer)、Hyper-V PowerShell管理工具等等,確保建構S2D超融合叢集環境所需要的伺服器角色和功能皆已安裝完畢,如圖10所示。
圖10 S2D叢集節點主機安裝必要的伺服器角色和功能。
透過WAC部署S2D超融合叢集
在過去版本中,可以透過WAC管理工具來部署和建構S2D超融合叢集環境,本文使用最新的WAC v2410版本,登入WAC管理介面後,依序點選「Settings > Gateway > Extensions > Available extensions」項目,並鍵入關鍵字「Cluster Creation」,再點選該項目後按下〔Update〕鈕進行版本更新程序。待安裝作業完成後,即可在「Installed extensions」頁籤中看到Cluster Creation延伸模組和相關資訊,如圖11所示,以便稍後嘗試透過WAC部署S2D超融合叢集。
圖11 安裝最新版本Cluster Creation延伸模組。
確認叢集建立延伸模組安裝完成後,在WAC管理介面All Connections下拉選單中便會出現「Cluster Creation」子項目,點選後就會進入精靈互動部署模式。在1. Choose the cluster type中,只有Windows Server和Azure Local選項,由於是要部署超融合叢集,所以選擇Azure Local項目,在2. Select server locations區塊中,則選擇預設值的All servers in one site。
在Get Started第一個階段中,系統提示相關前置作業資訊,例如叢集節點主機必須採用Azure Stack HCI或Windows Server 2019 Datacenter版本等等,管理人員應再次檢查是否符合相關條件,避免稍後部署HCI超融合叢集時發生非預期的錯誤。
在1.2 Add servers頁面中,首先鍵入管理者帳號和密碼,這個管理者帳號必須是「網域帳號」,並且具備S2D叢集節點主機「Local Administrators Group」的身分和權限,在本文實作環境中管理帳號為「HCI\Administrator」。
接著,鍵入本文實作環境的兩台S2D超融合叢集節點主機的電腦名稱,分別是「s2d-n01.hci.weithenn.org」和「s2d-n02.hci.weithenn.org」,然後按下〔Add〕鈕。此時,系統將會進行相關檢查作業,確認是否符合建構HCI超融合叢集環境,然而在加入S2D超融合叢集節點主機後,系統卻顯示必須採用Azure Stack HCI OS才行,如圖12所示。
圖12 新版WAC僅支援採用Azure Stack HCI建構超融合環境。
驗證S2D超融合叢集
雖然最新版本的WAC管理工具僅支援採用Azure Stack HCI建構超融合環境,然而管理人員仍然可以透過手動的方式,將Windows Server 2025雲端作業系統打造成支援HCI超融合叢集的運作環境。
在建立S2D超融合叢集之前,先執行「叢集驗證」(Cluster Validation)的動作,確認目前每台S2D叢集節點主機已經符合各項需求,避免稍後建立S2D超融合叢集時發生非預期的錯誤。
在本文實作環境中,兩台S2D叢集節點主機的電腦名稱為「S2D-N01」和「S2D-N02」,在其中一台主機上開啟PowerShell指令視窗,鍵入「Test-Cluster -Node S2D-N01, S2D-N02 -Include "Hyper-V Configuration","Inventory","Network","Storage Spaces Direct","System Configuration"」指令進行叢集環境的驗證動作,如圖13所示。
圖13 驗證S2D叢集節點主機確保符合建構S2D超融合叢集的各項需求。
執行完成後,叢集驗證內容報表檔案,預設儲存路徑為「C:\Users\Administrator.HCI\AppData\Local\Temp」,查看報表內容後,可以看到所有的檢查項目都通過,只有「Hyper-V Configuration > Validate Processor Capabilities」子項目的狀態為Not Applicable,如圖14所示,這是因為透過巢狀式虛擬化環境實作的關係,倘若採用實體的x86硬體伺服器,便會通過所有檢查項目,管理人員不必擔心。
圖14 巢狀式環境大致符合建構S2D超融合叢集的各項需求。
建構S2D超融合叢集
當S2D叢集節點主機通過容錯移轉叢集驗證程序後,在建構S2D超融合叢集之前,必須先確保每台S2D叢集節點主機沒有任何硬碟已經被「宣告」(Claimed)使用,例如硬碟初始化為MBR/GPT、格式化為ReFS檔案系統,或曾經存放過S2D超融合叢集VM虛擬主機等等。
倘若不確定硬碟是否已經初始化或格式化過,可以採用Diskpart指令確認硬碟編號,然後使用PowerShell的Clear-Disk指令清除硬碟中所有內容,舉例來說,本文實作環境共有4顆300GB的SSD固態硬碟且編號為1~4,便可以執行「Clear-Disk -Number 1,2,3,4 -RemoveData -RemoveOEM」指令清除硬碟中所有內容。
為何一定要確保硬碟中所有內容清空,主要原因在於,硬碟若已經被宣告使用,稍後啟用Storage Spaces Direct機制時,系統就無法把儲存裝置加入至S2D儲存資源池當中。
至此,部署S2D超融合叢集的前置作業已經完成,可以使用PowerShell指令執行建構S2D超融合叢集的動作。執行「New-Cluster -Name S2D-Cluster -Node S2D-N01, S2D-N02 -NoStorage -StaticAddress 10.10.75.20」指令,建構名稱為「S2D-Cluster」的超融合叢集,叢集節點主機名稱為「S2D-N01和S2D-N02」,超融合叢集的IP位址為「10.10.75.20」,如圖15所示。
圖15 建構S2D超融合叢集。
值得注意的是,由於本文採用巢狀式虛擬化技術的關係,所以必須加上「-NoStorage」參數,倘若採用實體伺服器,則無須加上此參數。
啟用Storage Spaces Direct機制
在為S2D叢集啟用Storage Spaces Direct機制之前,再次確認S2D叢集中,其中一台S2D叢集節點主機是否可以看到本機硬碟,以及S2D叢集中其他台叢集節點主機的硬碟數量。舉例來說,本文實作環境中,每台S2D叢集節點主機除了作業系統之外,還額外配置4顆300GB的SSD硬碟,因此其中一台S2D叢集節點主機,都應該看到總數「8顆」300GB的SSD硬碟才是正確的,如圖16所示。
圖16 確認S2D叢集節點主機能看到本機及其他台叢集節點主機的硬碟數量。
緊接著,執行「Enable-ClusterStorageSpacesDirect -AutoConfig:0 -SkipEligibilityChecks」指令,啟用Storage Spaces Direct的超融合技術,因為本文採用巢狀式虛擬化技術的關係,所以必須加上「-AutoConfig:0 -SkipEligibilityChecks」參數,倘若採用實體伺服器,則無須加上此參數。當系統詢問是否啟用S2D超融合技術時,鍵入「A」即可,當系統啟用程序完成後,便會自動產生名稱為EnableClusterS2D的HTML格式報表檔案,如圖17所示。
圖17 啟用Storage Spaces Direct超融合技術。
順利為S2D叢集啟用Storage Spaces Direct機制後,可以在容錯移轉叢集管理員視窗中,依序點選至「Storage > Pools」項目,即可看到目前S2D儲存資源池的空間大小。在本文實作環境中共採用8顆300GB的SSD固態硬碟,建立後的S2D儲存資源池中,可用儲存空間大小便是2.29TB,如圖18所示。
圖18 順利為S2D叢集啟用Storage Spaces Direct機制。
透過WAC管理S2D超融合叢集
由於傳統的容錯移轉叢集管理員無法完整管理S2D超融合叢集,此時可以透過Windows Admin Center(WAC)輕鬆地在GUI圖形介面中管理S2D超融合叢集。同時,最新版本的WAC管理平台也已經完整支援雙節點的S2D超融合叢集,無論是管理和組態設定,或是新增及建立相關工作負載,例如VM虛擬主機、容器等等都沒問題。
在本文實作環境中,另外部署一台安裝Windows 11作業系統的VM虛擬主機,並安裝最新版本的WAC管理平台,當管理人員順利通過使用者身分驗證機制並登入WAC管理平台後,依序點選「Add > Add or create resources > Server Clusters > Add」,在Add Cluster欄位中鍵入「S2D-Cluster.hci.weithenn.org」叢集名稱,系統便會自動掃描和探索到S2D超融合叢集,如圖19所示。
圖19 新增S2D超融合叢集至WAC管理平台中。
順利連線並納管S2D超融合叢集後,便可以透過WAC管理平台,查看S2D超融合叢集的各種使用率和工作負載資訊,包括超融合叢集節點主機數量和資訊、儲存裝置數量和資訊、管理VM虛擬主機、超融合叢集CPU/Memory/Storage資源使用資訊、IOPS儲存效能、Latency延遲時間、Throughput傳輸速率等等,如圖20所示。
圖20 透過WAC管理平台查看S2D超融合叢集資源使用情況。
當然,點選到左邊的Drives項目後,WAC管理平台將會顯示S2D超融合叢集的儲存資源,以本文巢狀式虛擬化環境為例,如圖21所示,可以看到目前共有8顆儲存裝置,可用儲存空間為2.3TB,系統建議預留的儲存空間為600GB。後續當儲存裝置故障損壞時,也能在此頁看到故障儲存裝置顯示於Alerts區塊中。
圖21 查看S2D超融合叢集儲存裝置和儲存空間資訊。
<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>