最新的Windows Server 2025雲端作業系統原生內建的儲存匯流排快取(SBC)技術,能夠讓企業在有限的IT預算情況下提供高效能和高彈性的儲存資源池。本文將先介紹SBC的技術細節,然後透過一步步的實作來示範相關的操作設定。
對於IT預算有限的中小型企業和組織來說,最苦惱的情況之一,便是在地端資料中心內,無法建構完整的雲端基礎架構,舉例來說,負責處理運算工作負載的伺服器數量不足、無法採購中高階的儲存設備、無法部署「軟體定義儲存」(SDS)環境或「超融合基礎架構」(HCI)等等。因此,在各項硬體資源有限的情況下,導致地端資料中心內基礎架構效能不佳,雖然盡力將上層應用服務拆分為多台VM虛擬主機或多個容器服務,卻因為底層基礎架構效能不足,導致各項應用服務之間通訊緩慢,進而造成回應時間過長讓使用者失去耐心等待,或是等候逾時產生錯誤而讓使用者中斷購買行為等等。
對此,在本文中將剖析和實戰演練如何使用最新Windows Server 2025雲端作業系統中內建的「儲存匯流排快取」(Storage Bus Cache,SBC)機制,讓「單台主機」(Standalone Server)也能輕易建構軟體定義儲存環境。
如圖1所示,為上層各項工作負載,例如VM虛擬主機、容器、微服務等等應用提供足夠的儲存效能,在有限的IT預算下發揮最大的優勢。
儲存匯流排快取運作架構簡介
事實上,在Windows Server 2022版本之前,舊版的Windows Server運作架構中,不支援「單台」獨立伺服器部署Storage Spaces Direct儲存機制,必須「多台」Windows Server主機整合,搭配建構容錯移轉叢集後,才能啟用Storage Spaces Direct儲存技術。
而最新的Windows Server 2025版本中,單台獨立伺服器只要在硬體配置時採用混合式的儲存媒體裝置,例如NVMe + HDD或SSD + HDD混合搭配,即可啟用SBC儲存匯流排快取技術,讓單台伺服器大幅提升資料讀取和寫入的儲存效能,如圖2所示。
單台伺服器部署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」進行安裝。
雖然為單台伺服器安裝容錯移轉叢集伺服器功能,但是不能加入任何一個容錯移轉叢集環境中,成為任何一個容錯移轉叢集的成員節點主機。簡單來說,單台的獨立伺服器成功啟用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」,表示這些硬碟稍後才能加入儲存資源池內。
接著執行「Get-StorageBusCache」指令,查詢系統預設SBC儲存匯流排快取進階參數值內容,例如部署模式和快取百分比,如圖6所示。如果管理人員不滿意系統預設值,希望調整進階參數值內容時,必須在啟用SBC儲存匯流排快取機制之前進行調整。當單台伺服器啟用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:快取資料大小,系統預設值為「16KB」,管理人員可以視資料型態調整大小至8KB、16KB、32KB、64KB。
‧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)。
執行「Get-StorageBusBinding」指令,可以看到系統自動配置了哪些HDD機械式硬碟,將會使用哪個SSD固態硬碟,用於資料讀取和寫入的快取來源。舉例來說,在本文實作環境中,SSD固態硬碟編號為「500和501」,HDD機械式硬碟編號為「502、503、504、505」,可以看到編號「501」的SSD固態硬碟,將會搭配編號「502、505」的HDD機械式硬碟,如圖8所示。
建立指定類型磁碟區
在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中占用1,005GB儲存空間,所以儲存效率為49.75%。反觀Simple類型的磁碟區,直接占用Storage Pool中的102GB儲存空間,並且儲存效率為100%,這便是鏡像加速同位類型磁碟區具備災難復原能力,而Simple類型磁碟區無法容忍硬碟故障的原因,如圖9所示。
事實上,剛才所建立的磁碟區仍尚未指定磁碟區代號,為了便於稍後測試災難復原機制,可以使用「Get-Disk」PowerShell指令來查詢欲指定磁碟機代號的磁碟。接著,以「Get-Partition -DiskNumber」指令查詢磁碟中的分割區,執行「Set-Partition -NewDriveLetter」指令指定磁碟機代號,然後執行「Get-Volume」指令確認組態設定的磁碟機代號是否套用生效。在本文實作環境中,組態設定鏡像加速同位類型磁碟區採用「M」,而Simple類型採用「S」磁碟機代號,如圖10所示。
擴充磁碟區空間
為了因應企業和組織不斷增長的專案需求,一開始規劃的磁碟區儲存空間可能會有不足的情況,一旦發生此情況時,可以快速透過PowerShell指令來線上擴充原有的磁碟區儲存空間,而不影響線上營運服務。
值得注意的是,鏡像加速同位類型和Simple類型的磁碟區,這兩種不同類型的磁碟區作法將會稍有不同,在執行擴充工作任務之前先了解儲存架構的階層,從上層一路往下「Volume > Partition > Disk > Virtual Disk > Storage Tier」,理解後有助於擴充磁碟區儲存空間,如圖11所示。
執行「Get-VirtualDisk」指令,確認欲擴充磁碟區的FriendlyName,搭配「Get-StorageTier」指令,檢查需要擴充儲存空間的磁碟區是否使用儲存層。在本文實作環境中,Simple類型磁碟區未使用儲存層,而鏡像加速同位類型磁碟區有使用儲存層,如圖12所示。
沒有使用儲存層的Simple類型磁碟區,可直接執行「Resize-VirtualDisk -Size」指令,擴充磁碟區儲存空間,所以先將底層的VirtualDisk儲存空間擴充,執行「Get-VirtualDisk Simple | Resize-VirtualDisk -Size 200GB」指令,即可看到VirtualDisk已經從原本的100GB擴充為200GB,但磁碟區仍為100GB儲存空間,如圖13所示。
順利擴充VirtualDisk儲存空間後,可透過「Get-Partition | Where PartitionNumber -Eq 2」指令,指定磁碟區中的PartitionNumber=2進行分割區擴充儲存空間的工作任務。最後執行「Get-Volume S」指令,確認Simple類型磁碟區已經順利擴充至200GB的儲存空間,如圖14所示,並且資料讀取和寫入也正常無誤。
由於鏡像加速同位類型磁碟區有儲存層,必須先進行擴充之後才將分割區擴充,因此先執行「Get-VirtualDisk Mirror-Parity | Get-StorageTier」指令,確認每個儲存層級的儲存空間大小。在本文實作環境中,僅將HDD機械式硬碟的儲存空間,由原本的400GB擴充為500GB儲存空間,至於SSD固態硬碟儲存層則保持原有的100GB,然後執行「Resize-Partition」指令擴充鏡像加速同位類型磁碟區分割區,最後執行「Get-Volume M」指令,確認鏡像加速同位類型磁碟區已經順利擴充至600GB的儲存空間,如圖15所示,並且資料讀取和寫入也正常無誤。
擴充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所示。
然後執行「Update-StorageBusCache」指令,系統便會自動將SSD硬碟和HDD硬碟加入至Storage Pool整體儲存空間當中,完成後再次執行「Get-StoragePool」指令,可以看到Storage Pool儲存空間由原本的4.99TB擴充為「7.49TB」,所有硬碟CanPool欄位皆為「False」,如圖17所示。
實務上,需要擴充Storage Pool儲存空間時,表示原有的硬碟中儲存空間已經耗盡,新加入的硬碟則為全新儲存空間,也代表資料分布並不平均,將會影響資料讀取和寫入效能,建議管理人員加入新硬碟後,如圖18所示,執行「Get-StoragePool Storage* | Optimize-StoragePool」指令,針對Storage Pool執行資料「最佳化」(Optimize)和「重新平衡」(Rebalance)的工作任務。
值得注意的是,新增硬碟並不會影響資料「讀取快取」的部分,因為之前執行「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所示。
後續只要為Windows Server 2025主機更換故障損壞的實體硬碟,確認系統偵測到新加入的實體硬碟,並且CanPool欄位為「True」之後,再次執行「Update-StorageBusCache」指令,即可成功更換故障損壞的實體硬碟,並將新增的實體硬碟加入Storage Pool儲存空間內。
結語
透過本文深入剖析和實戰演練之後,相信管理人員就能夠明瞭最新Windows Server 2025雲端作業系統中原生內建的SBC儲存匯流排快取技術,為何可以為中小型的企業和組織在有限的IT預算情況下提供高效能和高彈性的儲存資源池。
<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>