視窗伺服器內建 SBC,小預算打造軟體定義儲存 | 網管人 229 期



網管人雜誌

本文刊載於 網管人雜誌第 229 期 - 2025 年 2 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。





本文目錄






前言

對於 IT 預算有限的中小型企業和組織來說,最苦惱的情況之一,便是在地端資料中心內,無法建構完整的雲端基礎架構,舉例來說,負責處理運算工作負載的伺服器數量不足、無法採購中高階的儲存設備、無法部署 SDS 軟體定義儲存環境或 HCI 超融合基礎架構……等。

因此,在各項硬體資源有限的情況下,導致地端資料中心內基礎架構效能不佳,雖然盡力將上層應用服務,拆分為多台 VM 虛擬主機或多個容器服務,卻因為底層基礎架構效能不足,導致各項應用服務之間通訊緩慢,進而造成回應時間過長讓使用者失去耐心等待,或是等候逾時產生錯誤而讓使用者中斷購買行為……等。

因此,在本文中將剖析和實戰演練,如何使用最新 Windows Server 2025 雲端作業系統中,內建的「儲存匯流排快取」(Storage Bus Cache,SBC)機制,讓「單台主機」(Standalone Server)也能輕易建構軟體定義儲存環境(如圖 1 所示),為上層各項工作負載,例如,VM 虛擬主機、容器、微服務……等應用提供足夠的儲存效能,在有限的 IT 預算下發揮最大的優勢。

圖 1、Windows Server 2025 讓單台主機也能發揮最大儲存效能



SBC 儲存匯流排快取運作架構

事實上,在 Windows Server 2022 版本之前,舊版的 Windows Server 運作架構中,不支援「單台」獨立伺服器部署 Storage Spaces Direct 儲存機制,必須「多台」Windows Server 主機整合後,搭配建構容錯移轉叢集後才能啟用 Storage Spaces Direct 儲存技術。

現在,最新的 Windows Server 2025 版本中,單台獨立伺服器只要在硬體配置時,採用混合式的儲存媒體裝置,例如,NVMe + HDD 或 SSD + HDD 混合搭配的情況下,即可啟用 SBC 儲存匯流排快取技術,讓單台伺服器大幅提升資料讀取和寫入的儲存效能(如圖 2 所示)。

圖 2、單台伺服器啟用 SBC 儲存匯流排快取技術運作架構示意圖





實戰演練 – 單台伺服器部署 SBC 快取分層機制

在實戰演練小節中,採用最新 Windows Server 2025 Datacenter – 24H2 版本,除了安裝 Windows Server 2025 作業系統 C : 的硬碟之外,額外配置「2 個」容量 600GB 的 SSD 固態硬碟,以及「4 個」容量 1TB 的 HDD 機械式硬碟,透過 Storage Spaces 儲存堆疊技術,將這些不同儲存媒介的硬碟裝置融合匯集在一起,接著啟用 SBC 儲存匯流排快取機制,達到大幅提升資料讀取和寫入儲存效能,同時兼具高靈活性和高可用性的目標。

值得管理人員注意的是,當單台伺服器啟用 SBC 儲存匯流排快取技術時,在硬碟類型方面僅支援混合型儲存架構,例如,NVMe + HDD 或 SSD + HDD(如圖 3 所示),不支援採用 All-Flash 儲存架構,例如,全部採用 NVMe 或 SSD。




安裝容錯移轉叢集功能

雖然,採用單台伺服器的獨立運作環境,但是在啟用 SBC 儲存匯流排快取機制之前,仍必須為 Windows Server 2025 安裝「容錯移轉叢集」伺服器功能,系統才會自動安裝所需的叢集元件,屆時才能順利啟用 SBC 儲存匯流排快取機制。

登入主機後,請依序點選「Server Manager > Manage > Add Roles and Features > Role-based or feature-based installation > Server Selection」項目,在 Features 頁面時勾選「Failover Clustering」選項,安裝容錯移轉叢集伺服器功能(如圖 4 所示),或執行 PowerShell 指令「Install-WindowsFeature –Name Failover-Clustering –IncludeManagementTools」進行安裝。

圖 4、為單台伺服器安裝容錯移轉叢集伺服器功能

雖然,為單台伺服器安裝容錯移轉叢集伺服器功能,但是不能加入任何一個容錯移轉叢集環境中,成為任何一個容錯移轉叢集的成員節點主機。簡單來說,單台的獨立伺服器成功啟用 SBC 儲存匯流排快取技術的關鍵,在於必須滿足三個條件,分別是採用 Windows Server 2025 伺服器版本,採用混合型儲存架構、安裝容錯移轉叢集伺服器功能。倘若,出現下列任一例外情況,屆時將無法成功啟用 SBC 儲存匯流排快取機制:
  • 採用 Windows Server 2019 或 2016 或更舊的伺服器版本。
  • 採用 All-Flash 全快閃式儲存架構。
  • 加入其它容錯移轉叢集環境中擔任成員節點主機。



部署模式和快取百分比

在啟用 SBC 儲存匯流排快取機制前,請在 PowerShell 指令視窗中,執行「Get-PhysicalDisk | Sort-Object Size」指令,確認單台伺服器額外配置的儲存裝置(如圖 5 所示),可以看到總共配置 2 個 600GB 的 SSD 固態硬碟,以及 4 個 1TB 的 HDD 機械式硬碟。此外,除了 Windows Server 2025 作業系統硬碟外,其餘硬碟在「CanPool」欄位皆為「True」,表示這些硬碟稍後才能加入儲存資源池內。

圖 5、單台伺服器額外配置 2 個 600GB SSD 固態硬碟和 4 個 1TB HDD 機械式硬碟

執行「Get-StorageBusCache」指令,查詢系統預設 SBC 儲存匯流排快取進階參數值內容,例如,部署模式和快取百分比(如圖 6 所示)。倘若,管理人員不滿意系統預設值,希望調整進階參數值內容時,必須在啟用 SBC 儲存匯流排快取機制之前進行調整,一旦單台伺服器啟用 SBC 儲存匯流排快取技術後,系統將會自動鎖定這些進階參數值內容,後續將無法調整進階參數值內容。

圖 6、查詢系統預設的 SBC 儲存匯流排快取進階參數值

根據微軟官方建議,當資料存取類型為一般用途時,管理人員無須調整系統預設值,倘若需要調整的話,也僅建議調整部署模式和共用快取百分比即可,其它進階參數值並不建議調整。下列為 SBC 儲存匯流排快取進階參數值內容中,各項欄位的功能說明:
  • ProvisionMode: 部署模式,在 SBC 儲存匯流排快取架構中支援兩種不同的部署模式,分別為「共享式」(Shared)和「快取式」(Cache),系統預設值為「共享」部署模式。簡單來說,採用共享部署模式時,資料快取空間僅會佔用較快的儲存裝置,例如,NVMe 或 SSD 的固定百分比,採用快取部署模式時,則資料快取空間會佔用較快儲存裝置的所有儲存空間。管理人員想要調整為快取部署模式時,只要執行「Set-StorageBusCache -ProvisionMode Cache」PowerShell 指令即可。
  • SharedCachePercent: 共用快取百分比,當採用共享部署模式時才會套用生效,系統預設值為「15%」,系統允許調整的百分比範圍為「5% - 90%」。值得注意的是,當管理人員規劃採用「鏡像加速同位元」(Mirror-Accelerated Parity)磁碟區時,共用快取百分比不建議超過「50%」,原因在於快取資料和鏡像層級必須保持平衡,一旦儲存比例失衡時,反而會影響儲存效能造成反效果。管理人員可以執行「Set-StorageBusCache -SharedCachePercent 30」PowerShell 指令,將共用快取百分比調整至 30% 。
  • CacheMetadataReserveBytes: 中繼資料儲存空間,當採用快取部署模式時才會套用生效,系統預設值為 32GB 儲存空間,用途為存放屆時 Storage Pool 和 Virtual Disk 等中繼資料。
  • CacheModeHDD: HDD 儲存層級快取模式,系統預設值為「ReadWrite」,表示允許 HDD 儲存層級快取資料的方式為讀取和寫入。當管理人員採用「簡單空間」(Simple Space)磁碟區時,則快取資料方式支援「ReadWrite」或「WriteOnly」類型。
  • CacheModeSSD: SSD 儲存層級快取模式,系統預設值為「WriteOnly」,表示 SSD 儲存層級快取資料的方式僅為資料寫入行為。
  • CachePageSizeKBytes: 快取資料大小,系統預設值為「16 KB」,管理人員可以視資料型態調整大小至「8 KB、16 KB、32 KB、64 KB」。
  • Enabled: 啟用狀態,檢查 SBC 儲存匯流排快取技術是否啟用。



啟用 SBC 儲存匯流排快取技術

前置作業和運作環境準備完畢,管理人員依照需求調整 SBC 儲存匯流排快取進階參數值內容後,請執行「Import-Module StorageBusCache」PowerShell 指令,讓系統匯入 SBC 儲存匯流排快取 Cmdlet 。

執行「Enable-StorageBusCache」指令,系統將會自動執行多項工作任務,以便將單台伺服器中的 SSD 固態硬碟,以及 HDD 機械式硬碟融合在一起,包括,將所有硬碟融合後建立儲存資源池、自動為較快的 SSD 固態硬碟和較慢的 HDD 機械式硬碟建立儲存層級、新增並啟用 SBC 儲存匯流排快取機制……等。

完成 SBC 儲存匯流排快取技術啟用程序後,執行「Get-StoragePool」指令,確認系統自動建立的 Storage Pool 資訊後,再次執行「Get-PhysicalDisk | Sort-Object Size」指令,可以看到融合後的 SSD 固態硬碟和 HDD 機械式硬碟,在「Number」欄位中的數值轉變為大於 500,表示這些儲存裝置已經被 SBC 儲存匯流排快取機制,宣告為使用中的儲存裝置,並且「CanPool」欄位也從原本的 True 轉變為「False」,再次執行「Get-StorageBusCache」指令,確認 SBC 儲存匯流排快取的部署模式,以及「Enabled」欄位是否轉變為「True」,確認正式啟用 SBC 儲存匯流排快取技術。(如圖 7 所示)。
請注意 !採用「快取」部署模式時,SSD 固態硬碟 Usage 欄位將會轉變為「Journal」。
圖 7、順利啟用 SBC 儲存匯流排快取技術並檢查啟用狀態

執行「Get-StorageBusBinding」指令,可以看到系統自動配置,哪些 HDD 機械式硬碟,將會使用哪個 SSD 固態硬碟,用於資料讀取和寫入的快取來源,舉例來說,在本文實作環境中,SSD 固態硬碟編號為「500 和 501」,HDD 機械式硬碟編號為「502、503、504、505」,可以看到編號「501」的 SSD 固態硬碟,將會搭配編號「502、505」的 HDD 機械式硬碟(如圖 8 所示)。

圖 8、檢查 SBC 儲存匯流排快取技術中儲存裝置的繫結狀態



建立指定類型磁碟區

在 SBC 儲存匯流排快取儲存架構中,支援具備災難復原機制的「鏡像加速同位」,快取類型為「讀取」的磁碟區,以便加快資料讀取速度,或是無法容忍任何硬碟故障的「Simple」,快取類型為「讀取和寫入」的磁碟區,同時加快資料寫入及讀取速度,但無法具備資料可用性,管理人員可以依據企業及組織的需求,建立不同用途的磁碟區。

舉例來說,管理人員希望建立鏡像加速同位類型,並且儲存空間為 500GB 的磁碟區,其中包括 100GB SSD 固定態硬碟的鏡像層,以及 400GB HDD 機械式硬碟的同位層所組成,並且能夠容忍有硬碟發生故障時資料仍可用,請執行「New-Volume –FriendlyName "Mirror-Parity" -FileSystem "ReFS" -StoragePoolFriendlyName "Storage*" -StorageTierFriendlyNames "MirrorOnSSD","ParityOnHDD" -StorageTierSizes 100GB,400GB」PowerShell 指令。

接著建立 Simple 類型,儲存空間為 100GB 的磁碟區,但無法容忍任何硬碟發生故障,鍵入「New-Volume -FriendlyName "Simple" -FileSystem "ReFS" -StoragePoolFriendlyName "Storage*" -ResiliencySettingName "Simple" -Size 100GB」PowerShell 指令。

建立兩種不同類型的磁碟區後,鍵入「Get-VirtualDisk」的 PowerShell 指令,查詢磁碟區健康情況和相關資訊,可以看到建立的 500GB 鏡像加速同位類型磁碟區,其實在 Storage Pool 中佔用 1005GB 儲存空間,所以儲存效率為 49.75%,反觀 Simple 類型的磁碟區,直接佔用 Storage Pool 中的 102GB 儲存空間,並且儲存效率為 100%,這便是鏡像加速同位類型磁碟區具備災難復原能力,而 Simple 類型磁碟區無法容忍硬碟故障的原因(如圖 9 所示)。

圖 9、建立鏡像加速同位類型和 Simple 類型的磁碟區

事實上,剛才所建立的磁碟區仍尚未指定磁碟區代號,為了便於稍後測試災難復原機制,管理人員可以使用「Get-Disk」PowerShell 指令,查詢欲指定磁碟機代號的磁碟,接著以「Get-Partition -DiskNumber」指令查詢磁碟中的分割區,執行「Set-Partition -NewDriveLetter」指令,指定磁碟機代號,然後執行「Get-Volume」指令,確認組態設定的磁碟機代號是否套用生效,在本文實作環境中,組態設定鏡像加速同位類型磁碟區採用「M」,而 Simple 類型採用「S」磁碟機代號(如圖 10 所示)。

圖 10、為鏡像加速同位和 Simple 類型磁碟區指定磁碟機代號



擴充磁碟區空間

為了因應企業和組織不斷增長的專案需求,一開始規劃的磁碟區儲存空間可能會有不足的情況,一旦發生此情況時,管理人員可以快速透過 PowerShell 指令,線上擴充原有的磁碟區儲存空間,而不影響線上營運服務。

值得注意的是,鏡像加速同位類型和 Simple 類型的磁碟區,這兩種不同類型的磁碟區作法將會稍有不同,在執行擴充工作任務之前先了解儲存架構的階層,從上層一路往下「Volume > Partition > Disk > Virtual Disk > Storage Tier」,理解後有助於擴充磁碟區儲存空間(如圖 11 所示)。

圖 11、磁碟區儲存堆疊架構示意圖

執行「Get-VirtualDisk」指令,確認欲擴充磁碟區的 FriendlyName,搭配「Get-StorageTier」指令,檢查需要擴充儲存空間的磁碟區是否使用儲存層,在本文實作環境中,Simple 類型磁碟區未使用儲存層,而鏡像加速同位類型磁碟區有使用儲存層(如圖 12 所示)。

圖 12、檢查欲擴充儲存空間的磁碟區是否使用儲存層

沒有使用儲存層的 Simple 類型磁碟區,可直接執行「Resize-VirtualDisk -Size」指令,擴充磁碟區儲存空間,所以先將底層的 VirtualDisk 儲存空間擴充,請執行「Get-VirtualDisk Simple | Resize-VirtualDisk -Size 200GB」指令,即可看到 VirtualDisk 已經從原本的 100GB 擴充為 200GB,但磁碟區仍為 100GB 儲存空間(如圖 13 所示)。
擴充 VirtualDisk 儲存空間時,系統將會針對 Disk 層級一起擴充,管理人員可以執行「Get-VirtualDisk Simple | Get-Disk」指令進行確認。
圖 13、擴充 Simple 類型磁碟區的 VirtualDisk 儲存空間

順利擴充 VirtualDisk 儲存空間後,可以透過「Get-Partition | Where PartitionNumber -Eq 2」指令,指定磁碟區中的 PartitionNumber=2 進行分割區擴充儲存空間的工作任務,最後執行「Get-Volume S」指令,確認 Simple 類型磁碟區已經順利擴充至 200GB 的儲存空間(如圖 14 所示),並且資料讀取和寫入也正常無誤。

圖 14、順利擴充 Simple 類型磁碟區至 200GB 的儲存空間

由於,鏡像加速同位類型磁碟區有儲存層,必須先進行擴充之後才將分割區擴充,請執行「Get-VirtualDisk Mirror-Parity | Get-StorageTier」指令,確認每個儲存層級的儲存空間大小,在本文實作環境中,僅將 HDD 機械式硬碟的儲存空間,由原本的 400GB 擴充為 500GB 儲存空間,至於 SSD 固態硬碟儲存層則保持原有的 100GB,然後執行「Resize-Partition」指令擴充鏡像加速同位類型磁碟區分割區,最後執行「Get-Volume M」指令,確認鏡像加速同位類型磁碟區已經順利擴充至 600GB 的儲存空間(如圖 15 所示),並且資料讀取和寫入也正常無誤。
執行擴充 VirtualDisk 儲存空間之前,可以透過「Get-StorageTierSupportedSize」指定,確認 Storage Pool 還有多少儲存空間能夠執行擴充工作任務。
圖 15、順利擴充鏡像加速同位類型磁碟區至 600GB 儲存空間



擴充 Storage Pool 空間

當磁碟區空間不足時,管理人員可以透過上述 PowerShell 指令,線上擴充鏡像加速同位和 Simple 類型磁碟區儲存空間。同樣的,最底層 Storage Pool 儲存空間不足時,可以為 Windows Server 2025 主機,額外增加實體 SSD 固態硬碟或 HDD 機械式硬碟,以便擴充底層 Storage Pool 儲存空間。

在本文實作環境中,為 Windows Server 2025 主機,新增 1 個 600GB SSD 固態硬碟和 2 個 1TB HDD 機械式硬碟,執行「Get-StoragePool」指令,確認目前 Storage Pool 的整體空間為 4.99TB,透過「Get-PhysicalDisk」指令,可以看到稍後加入 Storage Pool 的 3 個硬碟,並且 CanPool 欄位為「True」(如圖 16 所示)。

圖 16、準備將新增的 SSD 固態硬碟和 HDD 機械式硬碟加入 Storage Pool

執行「Update-StorageBusCache」指令,系統便會自動將 SSD 固態硬碟和 HDD 機械式硬碟,加入至 Storage Pool 整體儲存空間當中,完成後再次執行「Get-StoragePool」指令,可以看到 Storage Pool 儲存空間,由原本的 4.99TB 擴充為「7.49TB」,所有硬碟 CanPool 欄位皆為「False」(如圖 17 所示)。

圖 17、順利擴充 Storage Pool 儲存空間

實務上,需要擴充 Storage Pool 儲存空間時,表示原有的硬碟中儲存空間已經耗盡,新加入的硬碟則為全新儲存空間,也代表資料分佈並不平均,將會影響資料讀取和寫入效能,建議管理人員加入新硬碟之後,執行「Get-StoragePool Storage* | Optimize-StoragePool」指令(如圖 18 所示),針對 Storage Pool 執行資料「最佳化」(Optimize)和「重新平衡」(Rebalance)的工作任務。

圖 18、查看 SSD 固態硬碟和 HDD 機械式硬碟的對應關係

值得注意的是,新增硬碟並不會影響資料「讀取快取」的部份,因為之前執行「Enable-StorageBusCache」指令後,系統便會自動鎖定進階功能,無法變更部署模式、共用快取百分比、快取模式和對應關系……等,管理人員只能透過「Remove-StorageBusBinding」和「New-StorageBusBinding」重新指定快取模式對應關系,此舉才會遺失現有資料的「讀取快取」。



資料可用性測試

即便儲存架構具備高彈性和高效能,倘若無法承受災難事件,例如,SSD 固態硬碟或 HDD 機械式硬碟故障損壞,便喪失資料可用性的話,相信企業和組織是無法接受的。

現在,針對 Windows Server 2025 主機,分別隨機移除 1 個 SSD 固態硬碟和 2 顆 HDD 機械式硬碟,模擬硬碟發生故障損壞的情況,驗證剛才建立的鏡像加速同位類型和 Simple 類型磁碟區,當災難事件發生時資料可用性,確保災難事件發生後磁碟區能否繼續資料讀取和寫入作業。

執行「Get-StoragePool」指令,可以看到 Storage Pool 的健康狀態欄位 OperationalStatus 和 HealthStatus,從原本的「OK、Healthy」轉變成發生災難事件的「Degraded、Warning」,雖然硬碟發生故障損壞事件,但 Storage Pool 整體仍然能夠正常運作。

執行「Get-VirtualDisk」指令,可以看到 VirtualDisk 健康狀態欄位的轉變,其中 Simple 類型磁碟區從原本的「OK、Healthy」轉變為「No Redundancy、Unhealthy」,但磁碟機「S :」已經無法存取,而鏡像加速同位類型磁碟區從原本的「OK、Healthy」變為「Degraded,Incomplete、Warning」,但磁碟機「M :」仍然能夠正常存取進行資料讀取和寫入,表示鏡像加速同位類型通過資料可用性測試,而 Simple 類型則無。

最後,執行「Get-PhysicalDisk」指令,可以看到發生故障損壞的實體硬碟,除了硬碟代號消失之外,在健康狀態欄位從原本「OK、Healthy」,轉變為「Lost Communication、Warning」狀態(如圖 19 所示)。

圖 19、查詢 Storage Pool、VirtualDisk、實體硬碟健康狀態

後續,只要為 Windows Server 2025 主機,更換故障損壞的實體硬碟,確認系統偵測到新加入的實體硬碟,並且 CanPool 欄位為「True」之後,再次執行「Update-StorageBusCache」指令,即可成功更換故障損壞的實體硬碟,並將新增的實體硬碟加入 Storage Pool 儲存空間內。





結語

透過本文深入剖析和實戰演練之後,相信管理人員對於最新 Windows Server 2025 雲端作業系統中,原生內建的 SBC 儲存匯流排快取技術,能夠為中小型的企業和組織,在有限的 IT 預算情況下,提供高效能和高彈性的儲存資源池。