了解存放集區快取

適用於:Azure Stack HCI 版本 22H2 和 21H2;Windows Server 2022、Windows Server 2019

儲存空間直接存取是 Azure Stack HCI 和 Windows Server 背後的基礎儲存體虛擬化技術,具備內建的伺服器端快取,可將儲存體效能最大化,同時降低成本。 它是在部署時自動設定的大型、持續性即時讀取和寫入快取。 大多數的情況下,不需要任何的手動管理。 快取的運作方式取決於磁碟機呈現的類型。

磁碟機類型及部署選項

儲存空間直接存取目前適用於四種類型的磁碟機:

磁碟機類型 Description
PMem PMem 表示持續性記憶體,這是一種新的低延遲、高效能儲存體。
NVMe NVMe (Non-Volatile Memory Express) 指的是直接位於 PCIe 匯流排的固態硬碟。 常見的板型規格為 2.5" U.2、PCIe Add-In-Card (AIC) 及 M.2。 NVMe 提供較高的 IOPS 和 I/O 輸送量,延遲也比目前支援的其他任何磁碟機類型 (PMem 除外) 更低。
SSD SSD 是指透過傳統 SATA 或 SAS 連接的固態硬碟。
HDD HDD 指的是轉動的磁碟硬碟,其提供實惠、大量的儲存體容量。

這些項目可以組合成數種方式,我們會分成兩個類別:「全快閃」和「混合式」。 不支援所有 HDD 的部署。

注意

本文涵蓋如何選擇 NVMe、SSD 和 HDD 的快取設定。 如需使用持續性記憶體作為快取的詳細資訊,請參閱了解及部署持續性記憶體

全快閃部署可能性

全快閃部署以盡可能發揮儲存體效能為目標 (不包括 HDD)。

圖表顯示全快閃部署,包括 NVMe 以進行容量、使用 SSD 快取的 NVMe 進行容量,以及用於容量的 SSD。

混合式部署可能性

混合式部署則是以平衡效能與容量或將容量最大化為目標 (包括 HDD)。

圖表顯示混合式部署,包括使用 HDD 進行容量快取的 NVMe、適用於 HDD 的 SSD 進行容量快取,以及使用 HDD 快取的 NVMe 和 SSD 進行容量的 NVMe。

注意

單一伺服器組態不支援混合式部署。 所有一般單一儲存體類型組態 (例如 all-NVMe 或 all-SSD) 是唯一支援單一伺服器的儲存體類型。

快取磁碟機為自動選取

在具有多種磁碟機類型的部署中,儲存空間直接存取會自動使用所有速度最快的磁碟機類型進行快取。 其餘磁碟機則作為容量磁碟機。

哪種類型「最快」則交由下列階層決定。

圖表顯示以 NVMe、SSD、未標記磁碟代表 HDD 的順序,更快速排列到較慢的磁碟類型。

例如,若有 NVMe 和 SSD,則 NVMe 會快取 SSD。

如果您有 SSD 和 HDD,則 SSD 會快取 HDD。

注意

快取磁碟機不會貢獻可用的儲存容量給叢集。 儲存在快取中的所有資料也會儲存在其他位置,或一旦取消暫存即另存他處。 這表示您部署的原始儲存容量總計,只是容量磁碟機的總和。

當所有的磁碟機類型相同時,不會自動設定任何快取。 您可以選擇手動設定較高耐力磁碟機快取同類型的較低耐力磁碟機,詳情請參閱手動設定一節。

提示

在某些情況下,使用存放集區快取並不合理。 例如,在所有的 NVMe 或 SSD 的部署中,特別是在規模非常小的情況下,若磁碟機沒有在快取上有所「支出」,可能因此改善儲存效率和最大效能。 同樣地,小型遠端或分公司部署可供快取磁碟機使用的空間可能有限。

快取行為會自動設定

快取的行為會自動取決於所快取的磁碟機類型。 進行快閃磁碟機的快取時 (例如 NVMe 對 SSD 的快取),將只會快取寫入。 進行轉動型硬碟的快取時 (例如 SSD 對 HDD 的快取),讀取和寫入都會快取。

比較所有快閃快閃快取的圖表,其中快取寫入和讀取不是混合式,其中會同時快取讀取和寫入。

全快閃部署的僅寫入快取

快取可用於全快閃案例中,例如使用 NVMe 作為快取來加速 SSD 的效能。 快取全快閃部署時,只會快取寫入。 這可減少容量磁碟機上的損耗,因為許多寫入和重新寫入的部分可以在快取中合併,然後只在需要時才解除暫存,藉此減少容量磁碟機的累計流量,並延長其生命週期。 因此,建議您選取較高耐力、最佳化寫入的磁碟機執行快取。 容量磁碟機的寫入耐力本就較低。

因為讀取不會大幅影響快閃磁碟機的生命週期,而且因為 SSD 普遍提供較低的讀取延遲,所以不會快取讀取部分:讀取部分會直接在容量磁碟機中處理 (除非最近寫入且未解除暫存的資料)。 這可讓快取全部投入寫入,發揮最大效率。

這就造成快取磁碟機記錄寫入特性,如寫入延遲,而容量磁碟機記錄讀取特性。 兩者為一致、可預測且統一。

混合式部署的讀/寫快取

進行 HDD 的快取時,讀取和寫入都會快取,使這兩種作業都能有近似於快閃記憶體的延遲性 (通常約快上 10 倍)。 讀取快取儲存最近和經常讀取的資料供快速存取,並可將 HDD 的隨機流量減到最低。 (因為搜尋和旋轉延遲之故,隨機存取 HDD 發生的時間延遲和損失很可觀。) 快取寫入以吸收高載,且和以前一樣合併寫入及重寫,將容量磁碟機的累計流量降至最低。

儲存空間直接存取會先執行演算法來將寫入去隨機化,然後再將其解除暫存,如此即使來自工作負載 (例如虛擬機器) 的實際 I/O 是隨機的,也可將磁碟的 I/O 模式模擬為類似循序寫入。 這可最大化 IOPS 及 HDD 輸送量。

快取具有 NVMe、SSD 和 HDD 的部署

當這三種類型的磁碟機都存在時,NVMe 磁碟機會對 SSD 和 HDD 提供快取。 此行為如前文所述:SSD 只快取寫入,HDD 則讀取和寫入都快取。 快取 HDD 的負荷會平均分散到快取磁碟。

總結

本表摘要說明哪些磁碟機用於快取、哪些用於容量,以及各種部署可能出現的快取行為。

部署 快取磁碟機 容量磁碟機 快取行為 (預設)
全 NVMe 無 (選擇性:手動設定) NVMe 僅寫入 (如有設定)
全 SSD 無 (選擇性:手動設定) SSD 僅寫入 (如有設定)
NVMe + SSD NVMe SSD 唯寫
NVMe + HDD NVMe HDD 讀取 + 寫入
SSD + HDD SSD HDD 讀取 + 寫入
NVMe + SSD + HDD NVMe SSD + HDD HDD 讀取 + 寫入、SSD 僅寫入

伺服器端架構

快取在磁碟機層級實作:一部伺服器內的個別快取磁碟機可繫結至同伺服器內的一或多部容量磁碟機。

因為快取在其餘 Windows 軟體定義的儲存堆疊之下,它沒有也不需要感知任何儲存空間或容錯等概念。 您可以把其想成是建立「混合式」(一部分是快閃,一部份是磁碟) 磁碟機,而這些磁碟機之後會呈現給作業系統。 至於真正的混合式磁碟機,外部幾乎看不到經常存取的資料和原始資料在實體媒體的較快和較慢部分之間的即時移動。

假設儲存空間直接存取中的復原至少要在伺服器上 (表示資料複本一律寫入不同的伺服器,每部伺服器最多一份),資料在不在快取中,從同一復原得到的協助皆為相同。

圖表代表儲存空間層中三向鏡像聯結的三部伺服器,可存取存取未標記容量磁碟驅動器的 NVMe 磁碟驅動器快取層。

例如,使用三向鏡像時,任何資料都會有三份複本寫入不同的伺服器,其在快取中置於該處。 無論它們待會是否會取消暫存,這三份複本都會一直存在。

磁碟機繫結為動態

快取和容量磁碟機之間的繫結可為任何比例,從 1:1 到 1:12 甚至更多。 只要新增或移除磁碟機就會動態調整,例如相應增加時或失敗後。 這表示您可以隨時獨立新增快取磁碟機或容量磁碟機。

動畫圖表顯示兩個 NVMe 快取磁碟驅動器動態對應至前四個、六個、八個容量磁碟驅動器。

為對稱起見,建議容量磁碟機數為快取磁碟機數的倍數。 例如,若有 4 部快取磁碟機,則 8 部容量磁碟機 (比例為 1:2) 展現的效能會比 7 或 9 部更好。

處理快取磁碟機失敗錯誤

當快取磁碟機失敗時,任何尚未取消暫存的本機伺服器寫入都會遺失,表示它們只存在於其他複本 (在其他伺服器中)。 如同任何其他磁碟機失敗後,儲存空間可以並會諮詢留存的複本以自動復原。

短時間內,繫結到遺失快取磁碟機的容量磁碟機會顯示狀況不良。 一旦快取重新繫結 (自動) 並完成資料修復 (自動),它們會繼續顯示狀況良好。

這就是為什麼每部伺服器至少要有兩部快取磁碟機才能保持效能的原因。

動畫圖表顯示兩個對應至六個容量磁碟驅動器的 SSD 快取磁碟驅動器,直到一個快取磁碟驅動器失敗為止,這會導致所有六個磁碟驅動器都對應到其餘的快取磁碟驅動器。

您便可替換快取磁碟機,就像替換任何其他磁碟機一樣。

注意

您可能需要關閉電源以安全替換附加介面卡 (AIC) 或 M.2 尺寸的 NVMe。

與其他快取的關係

Windows 軟體定義的儲存堆疊中還有幾種無關聯的快取。 例如,儲存空間回寫式快取,以及叢集共用磁碟區 (CSV) 記憶體內部讀取快取。

使用 Azure Stack HCI 時,您不得從預設行為中修改儲存空間回寫式快取。 例如,New-Volume Cmdlet 不該使用 -WriteCacheSize 參數。

您可以選擇是否要使用 CSV 快取,由您作主。 預設會在 Azure Stack HCI 中開啟,但不會與本主題中所述的快取發生衝突。 在某些情況下,它可提供極佳的效能表現。 如需詳細資訊,請參閱使用 Azure Stack HCI 的 CSV 記憶體中讀取快取

手動設定

大部分的部署都不需要手動設定。 如果您需要手動設定,請參閱下列各節。

如果您需要在設定之後對快取裝置型號進行變更,可編輯健全狀況服務的支援元件檔,如健全狀況服務概觀中所述。

指定快取磁碟機模型

在所有磁碟機都是同樣類型的部署中 (例如全 NVMe 或 SSD 部署) 不會設定任何快取,因為 Windows 無法自動分辨同類型磁碟機的寫入耐力等特性。

您可以指定哪些磁碟機模型使用 Enable-ClusterS2D Cmdlet 的 -CacheDeviceModel 參數,進而使用較高耐力磁碟機快取同類型的較低耐力磁碟機。 該模型的所有磁碟機都將用來進行快取。

提示

模型字串與 Get-PhysicalDisk 輸出中的內容要完全一致。

範例

首先,取得實體磁碟的清單:

Get-PhysicalDisk | Group Model -NoElement

以下是一些輸出範例︰

Count Name
----- ----
    8 FABRIKAM NVME-1710
   16 CONTOSO NVME-1520

然後輸入下列命令,並指定快取裝置型號:

Enable-ClusterS2D -CacheDeviceModel "FABRIKAM NVME-1710"

您可以在 PowerShell 中執行 Get-PhysicalDisk 驗證其 Usage 屬性是否顯示 "Journal",檢查您屬意的磁碟機是否用於快取。

手動部署可能性

手動設定有可能啟用下列部署:

圖表顯示部署可能性,包括快取和容量的 NVMe、快取和容量的 SSD,以及適用於快取的 SSD 和混合 SSD 和 HDD 的容量。

設定快取行為

有可能覆寫快取的預設行為。 例如,即使在全快間部署中仍可將它設為快取讀取。 除非您確定預設不適合您的工作負載,否則不鼓勵修改行為。

若要覆寫行為,請使用 Set-ClusterStorageSpacesDirect Cmdlet 和其 -CacheModeSSD-CacheModeHDD 參數。 CacheModeSSD 參數會在快取 SSD 時設定快取行為。 CacheModeHDD 參數會在快取 HDD 時設定快取行為。

您可以使用 Get-ClusterStorageSpacesDirect 來確認是否已設定此行為。

範例

首先,取得儲存空間直接存取設定:

Get-ClusterStorageSpacesDirect

以下是一些輸出範例︰

CacheModeHDD : ReadWrite
CacheModeSSD : WriteOnly

然後執行下列動作:

Set-ClusterStorageSpacesDirect -CacheModeSSD ReadWrite

Get-ClusterS2D

以下是一些輸出範例︰

CacheModeHDD : ReadWrite
CacheModeSSD : ReadWrite

調整快取大小

快取的大小應設為能容納您應用程式及工作負載的工作組 (任何時間正在讀取及寫入的資料)。

這在硬碟混合式部署中尤其重要。 如果使用中的工作組超過快取大小,或者使用中的工作組漂移太快,讀取快取遺漏會增加,而寫入需要更頻繁地取消暫存,破壞整體效能。

您可以使用 Windows 的內建效能監視器 (PerfMon.exe) 公用程式檢查快取遺漏的比例。 特別是,您可以將 \[叢集儲存混合式磁碟\] 計數器集合的 \[快取遺漏讀取數/秒\] 與您所部署的整體讀取 IOPS 進行比較。 每個「混合式磁碟」都對應一部容量磁碟機。

例如,2 部快取磁碟機繫結至 4 部容量磁碟機,造成每部伺服器有 4 個「混合式磁碟」物件執行個體。

Performance-Monitor。

規則並無標準,但若讀取有太多快取遺漏,就需要縮減,而您應該考慮增加快取磁碟機擴張快取。 您可以隨時獨立新增快取磁碟機或容量磁碟機。

下一步

如需其他儲存體知識,另請參閱: