瞭解存放集區快取

適用于: Azure Stack HCI、版本21H2 和 20H2;Windows server 2022,Windows server 2019

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

磁碟機類型及部署選項

儲存空間 Direct 目前適用于四種類型的磁片磁碟機:

磁片磁碟機類型 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,以及容量的 SSD。

混合式部署可能性

混合部署的目標是要平衡效能和容量,或將容量最大化,並包括 HDD。

圖表顯示混合式部署,包括 NVMe (適用于容量的 HDD)、適用于容量 hdd 的 SSD、適用于容量的 hdd,以及具有 HDD 的快取和 NVMe 加 SSD 的容量。

快取磁碟機為自動選取

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

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

圖所示的磁片類型會以較快的速度,以較慢的順序顯示,也就是代表 HDD 的未標記磁片

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

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

注意

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

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

提示

在某些情況下,使用存放集區快取並不合理。 例如,在所有 NVMe 或全 SSD 部署中(特別是非常小的規模),在快取中沒有「花費」的磁片磁碟機可以提升儲存效率並將效能最大化。 同樣地,小型遠端或分公司部署可能會有有限的空間可供快取磁片磁碟機使用。

快取行為會自動設定

快取的行為會自動取決於所快取的磁碟機類型。 快取快閃磁片磁碟機時 (例如 NVMe 快取以 Ssd) ,只會快取寫入。 快取旋轉磁片磁碟機的 (例如 Hdd) 的 Ssd 快取時,會快取讀取和寫入。

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

全快閃部署的僅寫入快取

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

因為讀取不會大幅影響 flash 的存留期,而且因為 Ssd 普遍提供較低的讀取延遲,所以不會快取讀取:系統會直接從容量磁片 (磁碟機提供讀取,除非最近寫入的資料尚未被取消暫存) 。 這可讓快取全部投入寫入,發揮最大效率。

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

混合式部署的讀/寫快取

當針對 HDD 進行快取時,會快取讀取 寫入,以提供類似 flash 的延遲, (通常會有 ~ 10 倍以上的) 。 讀取快取儲存最近和經常讀取的資料供快速存取,並可將 HDD 的隨機流量減到最低。 (因為搜尋和旋轉延遲,隨機存取 HDD 所產生的延遲和遺失時間很重要。 ) 系統會快取寫入來吸收高載,並與之前一樣合併寫入和重新寫入,並將累計流量降至最低容量磁片磁碟機。

儲存空間直接執行在取消暫存之前隨機化寫入的演算法,以模擬即使來自工作負載 ((例如虛擬機器) 的實際 i/o)的 IO 模式是隨機的。 這可最大化 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 軟體定義的儲存堆疊之下,它沒有也不需要感知任何儲存空間或容錯等概念。 您可以把它想成是建立「混合式」 (part flash、part disk) 磁片磁碟機,然後再向作業系統呈現。 至於真正的混合式磁碟機,外部幾乎看不到經常存取的資料和原始資料在實體媒體的較快和較慢部分之間的即時移動。

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

圖代表儲存體空間層中的三向鏡像所聯結的三部伺服器,存取未標記的容量磁片磁碟機的 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。

設定快取行為

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

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

您可以使用 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

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

下一步

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