持續性記憶體健康狀態管理

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

本文提供持續性記憶體 (PMem) 裝置特定錯誤處理和健康狀態管理的資訊,PMem 通常稱為存放裝置類別記憶體 (SCM),這是一種可作為最上層儲存體的靜態媒體類型。

這些短片提供 Windows 對持續性記憶體支援的概觀:

另請參閱了解及部署持續性記憶體

從 Windows Server 2016 和 Windows 10 (1607 版) 開始,支援持續性記憶體裝置的原生驅動程式。 雖然持續性記憶體裝置的行為類似其他磁碟 (HDD 和 SSD),但仍有一些差異。

常見的使用案例,是在儲存空間中使用兩個持續性記憶體模組作為鏡像回寫式快取。 若要設定這類組態,請參閱使用 NVDIMM-N 回寫式快取設定儲存空間

在 Windows Server 2016 中,儲存空間 GUI 會將 NVDIMM N 匯流排類型顯示為「未知」。 不會遺失任何功能,或無法建立集區 (儲存體 VD)。 您可以執行下列 Cmdlet 驗證匯流排類型:

Get-PhysicalDisk | fl

輸出中的 BusType 參數會正確顯示匯流排類型 SCM

檢視持續性記憶體健全狀態

本節描述如何檢視持續性記憶體模組的健全狀態。 當您使用持續性記憶體時,監視體驗會有一些差異:

  • 持續性記憶體不會建立實體磁碟效能計數器,所以不會出現在 Windows Admin Center 的圖表中。
  • 持續性記憶體不會建立 Storport 505 資料,所以您不會取得主動式異常偵測。

除此之外,監視體驗與其他任何實體磁碟相同。

您可以執行下列 Cmdlet 查詢持續性記憶體磁碟的健康狀態:

Get-PmemDisk

DiskNumber Size   HealthStatus AtomicityType CanBeRemoved PhysicalDeviceIds UnsafeShutdownCount
---------- ----   ------------ ------------- ------------ ----------------- -------------------
2          252 GB Unhealthy    None          True         {20, 120}         2
3          252 GB Healthy      None          True         {1020, 1120}      0

Get-PmemDisk | Get-PhysicalDisk | select SerialNumber, HealthStatus, OperationalStatus, OperationalDetails

SerialNumber               HealthStatus OperationalStatus  OperationalDetails
------------               ------------ ------------------ ------------------
802c-01-1602-117cb5fc      Healthy      OK
802c-01-1602-117cb64f      Warning      Predictive Failure {Threshold Exceeded,NVDIMM_N Error}

值得注意的是,使用 Get-PhysicalDisk Cmdlet 並將 BusType 指定為 SCM,即可取得相同的資訊:

Get-PhysicalDisk | where BusType -eq "SCM" | select SerialNumber, HealthStatus, OperationalStatus, OperationalDetails

注意

若要尋找事件中所指定持續性記憶體裝置的實體位置,請在事件檢視器的事件 [詳細資料] 索引標籤上,移至 [EventData] > [位置]。 請注意,Windows Server 2016 列出的持續性記憶體裝置位置不正確問題,已在 Windows Server 1709 版中修正。

HealthStatus 會顯示持續性記憶體磁碟的狀況是否良好。

UnsafeshutdownCount 值會追蹤可能造成此邏輯磁碟遺失資料的關機次數。 這是此磁碟所有基礎持續性記憶體裝置的不安全關機計數總和。 如需有關健全狀態的詳細資訊,請使用 Get-PmemPhysicalDevice Cmdlet 尋找 OperationalStatus 等資訊。

Get-PmemPhysicalDevice

DeviceId DeviceType           HealthStatus OperationalStatus PhysicalLocation FirmwareRevision Persistent memory size Volatile memory size
-------- ----------           ------------ ----------------- ---------------- ---------------- ---------------------- --------------------
1020     Intel INVDIMM device Healthy      {Ok}              CPU2_DIMM_C1     102005310        126 GB                 0 GB
1120     Intel INVDIMM device Healthy      {Ok}              CPU2_DIMM_F1     102005310        126 GB                 0 GB
120      Intel INVDIMM device Healthy      {Ok}              CPU1_DIMM_F1     102005310        126 GB                 0 GB
20       Intel INVDIMM device Unhealthy    {HardwareError}   CPU1_DIMM_C1     102005310        126 GB                 0 GB

此 Cmdlet 會顯示狀況不良的持續性記憶體裝置。 狀況不良的裝置 (DeviceId 20) 符合上一個範例中的狀況。 BIOS 中的 PhysicalLocation 有助於識別狀態為錯誤的持續性記憶體裝置。

如需了解各種健全狀況的說明,請參閱下列各節。

警告健全狀態

當您檢查持續性記憶體裝置的健康狀態,並看到其健全狀態列為警告時,就會出現此狀況,如下列範例輸出所示:

SerialNumber HealthStatus OperationalStatus OperationalDetails
802c-01-1602-117cb5fc Healthy 確定
802c-01-1602-117cb64f 警告 預測性失敗 {Threshold Exceeded,NVDIMM_N Error}

下表列出有關此狀況的一些資訊。

朝向 Description
可能的情況 超過警告閾值
根本原因 持續性記憶體裝置會追蹤各種閾值,例如溫度、NVM 存留期及/或能源來源存留期。 當超過這些閾值的其中一個時,作業系統會收到通知。
一般行為 裝置維持完全正常運作。 這是警告,而不是錯誤。
儲存空間行為 裝置維持完全正常運作。 這是警告,而不是錯誤。
詳細資訊 PhysicalDisk 物件的 OperationalStatus 欄位。 EventLog – Microsoft-Windows-ScmDisk0101/Operational
解決方式 視超過的警告閾值而定,最好是更換持續性記憶體裝置。

寫入持續性記憶體裝置失敗

當您檢查持續性記憶體裝置的健康狀態,並看到健全狀態列為狀況不良,且操作狀態提及 IO 錯誤時,就會出現此狀況,如下列範例輸出所示:

SerialNumber HealthStatus OperationalStatus OperationalDetails
802c-01-1602-117cb5fc Healthy 確定
802c-01-1602-117cb64f Unhealthy {過時的中繼資料、IO 錯誤、暫時性錯誤} {遺失資料持續性、遺失資料、NV...}

下表列出有關此狀況的一些資訊。

朝向 Description
可能的情況 遺失持續性/備用電源
根本原因 持續性記憶體裝置會依賴備用電源維持其持續性,通常是電池或超級電容。 如果無法使用此備份電源來源或者裝置因為任何原因無法執行備份 (控制器/Flash 錯誤),資料就會有風險,Windows 會防止對受影響的裝置進行任何進一步寫入作業。 仍可能會進行讀取以撤除資料。
一般行為 NTFS 磁碟區將會卸載。
[PhysicalDisk 健全狀況狀態] 欄位會針對所有受影響的 NVDIMM-N 裝置顯示「狀況不良」。
儲存空間行為 只要有一個持續性記憶體模組受影響,儲存體空間就能持續運作。 如果多個裝置受到影響,寫入儲存空間將會失敗。
[PhysicalDisk Health Status] \(PhysicalDisk 健全狀態\) 欄位會顯示所有受影響的持續性記憶體裝置為「狀況不良」。
詳細資訊 PhysicalDisk 物件的 OperationalStatus 欄位。
EventLog – Microsoft-Windows-ScmDisk0101/Operational
解決方式 建議備份受影響的 PMem 資料。 若要取得讀取權限,您可以手動讓磁碟重新上線 (它會顯示為唯讀 NTFS 磁碟區)。

若要完全排除此狀況必須解決根本原因 (也就是維持電源供應或更換持續性記憶體模組,視問題而定),且模組上的磁碟區必須離線後再重新上線,或必須重新開機系統。

為能再次使用儲存空間中的持續性記憶體模組,請使用 Reset-PhysicalDisk Cmdlet 重新整合裝置並啟動修復程序。

裝置會顯示為 '0' 位元組容量或「一般實體磁碟」

當持續性記憶體裝置顯示為 0 位元組容量且無法初始化,或公開為無序號的「一般實體磁碟」物件,以顯示遺失通訊操作狀態時,就會出現此狀況,如下列範例輸出所示:

SerialNumber HealthStatus OperationalStatus OperationalDetails
802c-01-1602-117cb5fc Healthy 確定
警告 遺失通訊

下表列出有關此狀況的一些資訊。

朝向 Description
可能的情況 BIOS 未向 OS 公開持續性記憶體模組
根本原因 持續性記憶體裝置是 DRAM 型裝置。 當參考損毀的 DRAM 位址時,大部分的 CPU 會起始電腦檢查,然後重新啟動伺服器。 有些伺服器平台接著會取消對應持續性記憶體模組,以防止 OS 存取該裝置,並可能導致其他電腦檢查。 如果 BIOS 偵測到持續性記憶體模組失敗且需要更換,也可能會發生這種情況。
一般行為 持續性記憶體模組顯示為未初始化,容量為 0 個位元組,且無法讀取或寫入。
儲存空間行為 儲存體空間保持運作 (假設只有一個持續性記憶體模組受到影響)。
PMem PhysicalDisk 物件的健全狀態會顯示為警告和「一般實體磁碟」
詳細資訊 PhysicalDisk 物件的 OperationalStatus 欄位。
EventLog – Microsoft-Windows-ScmDisk0101/Operational
解決方式 您必須更換或處理持續性記憶體裝置,以使伺服器平台再次向主機 OS 公開此裝置。 建議更換裝置,因為可能會發生更多無法修正的錯誤。 您可以使用 Add-PhysicalDisk Cmdlet 將替代裝置新增至儲存空間設定。

重新開機後,裝置會顯示為 RAW 或空磁碟

當您檢查持續性記憶體裝置的健康狀態,並看到健全狀態列為狀況不良,且操作狀態為無法識別的中繼資料時,就會出現此狀況,如下列範例輸出所示:

SerialNumber HealthStatus OperationalStatus OperationalDetails
802c-01-1602-117cb5fc Healthy 確定 {不明}
802c-01-1602-117cb64f Unhealthy {無法識別的中繼資料、過時的中繼資料} {不明}

下表列出有關此狀況的一些資訊。

朝向 Description
可能的情況 備份/還原失敗
根本原因 備份或還原程序中的失敗,可能會導致持續性記憶體模組遺失所有資料。 當作業系統載入時,其會顯示為無磁碟分割或檔案系統的全新持續性記憶體裝置,以 RAW 形式出現表示沒有檔案系統。
一般行為 持續性記憶體會處於唯讀模式。 需要明確的使用者動作,才能再次使用它。
儲存空間行為 如果只有一個持續性記憶體模組受到影響,則儲存體空間可保持運作。
PMem 實體磁碟物件的健全狀態會顯示為「狀況不良」,不為儲存空間所用。
詳細資訊 PhysicalDisk 物件的 OperationalStatus 欄位。
EventLog – Microsoft-Windows-ScmDisk0101/Operational
解決方式 如果使用者不想更換受影響的裝置,其可使用 Reset-PhysicalDisk Cmdlet 清除受影響持續性記憶體模組的唯讀條件。 在儲存空間環境中,這也會嘗試將持續性記憶體模組重新整合到儲存空間並啟動修復程序。

後續步驟

如需相關資訊,另請參閱: