本文提供永續性記憶體 (PMem) 裝置特有的錯誤處理和健康情況管理的相關信息,通常稱為記憶體類別記憶體 (SCM),這是一種非揮發性媒體,可用來作為最上層記憶體。
這些短片提供 Windows 持續記憶體支援的概觀:
- 在 Windows Server 2016 中使用非揮發性記憶體 (NVDIMM-N) 作為區塊記憶體
- 在 Windows Server 2016 中使用非揮發性記憶體 (NVDIMM-N) 作為 Byte-Addressable 記憶體
另請參閱 瞭解及部署永續性記憶體。
從 Windows Server 2016 和 Windows 10 版本 1607 開始,原生驅動程式支援持續性記憶體裝置。 雖然持續性記憶體裝置的行為與其他磁碟類似(HDD 和 SSD),但有些差異。
常見的使用案例是,兩個非揮發性記憶體模組會作為儲存空間中的鏡像回寫快取使用。 若要設定此類配置,請參閱 使用 NVDIMM-N 回寫快取的儲存空間配置。
在 Windows Server 2016 中,儲存空間 GUI 會將 NVDIMM-N 總線類型顯示為 UNKNOWN。 在建立集區及儲存 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
Note
若要尋找事件中指定的持續性記憶體裝置的實體位置,請在事件檢視器中事件的 [詳細資料] 索引標籤上,移至 [事件資料>位置]。 請注意,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 | OK | |
| 802c-01-1602-117cb64f | Warning | 預測性失敗 | {超過臨界值,NVDIMM_N錯誤} |
下表列出此條件的一些資訊。
| Heading | Description |
|---|---|
| 可能的條件 | 警告臨界值已超過 |
| 根本原因 | 持續性記憶體裝置會追蹤各種閾值,例如溫度、NVM 存留期和/或能源來源存留期。 超過其中一個臨界值時,系統會通知作業系統。 |
| 一般行為 | 裝置仍可完全運作。 這是警告,而不是錯誤。 |
| 儲存空間行為 | 裝置仍可完全運作。 這是警告,而不是錯誤。 |
| 詳細資訊 | PhysicalDisk 物件的 OperationalStatus 字段。 事件日誌 – Microsoft-Windows-ScmDisk0101/Operational |
| 解決方式 | 視違反警告閾值而定,更換持續性記憶體裝置可能很謹慎。 |
寫入持久性記憶體裝置失敗
當您檢查持久性記憶體裝置的運行狀況並看到運行狀況狀態列為不 運行狀況,並且運行狀態提到 IO錯誤時,會出現此情況,如以下示例輸出所示:
| SerialNumber | HealthStatus | OperationalStatus | OperationalDetails |
|---|---|---|---|
| 802c-01-1602-117cb5fc | Healthy | OK | |
| 802c-01-1602-117cb64f | Unhealthy | {過時元數據,IO 錯誤,暫時性錯誤} | {遺失數據持續性、遺失數據、NV...} |
下表列出此條件的一些資訊。
| Heading | Description |
|---|---|
| 可能的條件 | 失去耐久性/備援電源 |
| 根本原因 | 持久性記憶體裝置依賴後備電源以保持其非易失性,通常是電池或超級電容。 如果此備份電源無法使用,或裝置因任何原因而無法執行備份(控制器/Flash 錯誤),數據會處於危險狀態,且 Windows 會防止對受影響的裝置進行任何進一步寫入。 讀取仍然可以提取數據。 |
| 一般行為 | 將會卸除NTFS磁碟區。 [PhysicalDisk 健康狀態] 字段會顯示所有受到影響的 NVDIMM-N 裝置「不健康」。 |
| 儲存空間行為 | 只要只有一個持續性記憶體模組受到影響,儲存空間就會維持運作。 如果多個裝置受到影響,寫入儲存空間將會失敗。 [PhysicalDisk Health Status] 欄位會顯示所有受影響的永續性記憶體裝置的[不健康]狀態。 |
| 詳細資訊 | PhysicalDisk 物件的 OperationalStatus 字段。 事件日誌 – Microsoft-Windows-ScmDisk0101/Operational |
| 解決方式 | 我們建議備份受影響的 PMem 數據。 若要取得讀取存取權,您可以手動將磁碟帶上線(它會以唯讀 NTFS 磁碟區的形式呈現)。 若要完全清除此狀況,必須解決根本原因(也就是服務電源供應器或取代持續性記憶體模組,視問題而定),而且模組上的磁碟區必須脫機並再次上線,或必須重新啟動系統。 若要讓永續性記憶體模組再次在儲存空間中使用,請使用 Reset-PhysicalDisk Cmdlet,以重新裝載裝置並啟動修復程式。 |
裝置的容量為 『0』 個字節,或顯示為「一般實體磁碟」
當持續性記憶體裝置顯示容量為 0 位元組且無法初始化,或公開為沒有序號的「一般實體磁碟」物件,顯示通訊 遺失的作業狀態時,就會發生此狀況,如下列範例輸出所示:
| SerialNumber | HealthStatus | OperationalStatus | OperationalDetails |
|---|---|---|---|
| 802c-01-1602-117cb5fc | Healthy | OK | |
| Warning | 遺失通訊 |
下表列出此條件的一些資訊。
| Heading | Description |
|---|---|
| 可能的條件 | BIOS 未將永續性記憶體模組公開至OS |
| 根本原因 | 持續性記憶體裝置是以 DRAM 為基礎。 參考損毀的 DRAM 位址時,大部分 CPU 都會起始電腦檢查並重新啟動伺服器。 然後,某些伺服器平台會解除映射持續性記憶體模組,防止作業系統存取它,並可能導致再次的機器檢查。 如果 BIOS 偵測到持續性記憶體模組失敗,而且需要更換,也可能會發生此情況。 |
| 一般行為 | 持續性記憶體模組會顯示為未初始化,容量為 0 個字節,且無法讀取或寫入。 |
| 儲存空間行為 | 儲存空間仍可運作(前提是只有一個持續性記憶體模組受到影響)。 PMem PhysicalDisk 物件會顯示為警告的健全狀態,並顯示為「一般實體磁碟」 |
| 詳細資訊 | PhysicalDisk 物件的 OperationalStatus 字段。 事件日誌 – Microsoft-Windows-ScmDisk0101/Operational |
| 解決方式 | 持續性記憶體裝置必須被取代或清理,如此伺服器平臺就會再次將它公開給主機 OS。 建議更換裝置,因為可能發生更多無法更正的錯誤。 使用 Add-PhysicalDisk Cmdlet 可以將替換裝置新增到儲存空間設定中。 |
重新啟動後,裝置會顯示為RAW或空白磁碟
當您檢查持續性記憶體裝置的健全狀況,並看到健全狀況為狀況 不良 ,以及無法 辨識的中繼資料運作狀態時,就會出現此狀況,如以下範例輸出所示:
| SerialNumber | HealthStatus | OperationalStatus | OperationalDetails |
|---|---|---|---|
| 802c-01-1602-117cb5fc | Healthy | OK | {Unknown} |
| 802c-01-1602-117cb64f | Unhealthy | {無法辨識的元數據,過時元數據} | {Unknown} |
下表列出此條件的一些資訊。
| Heading | Description |
|---|---|
| 可能的條件 | 備份/還原失敗 |
| 根本原因 | 備份或還原程式中的失敗可能會導致永續性記憶體模組上的所有數據遺失。 當作業系統載入時,它會出現為全新的永續性記憶體裝置,沒有分割區或檔案系統,並呈現為 RAW 格式,這表示它沒有檔案系統。 |
| 一般行為 | 永續性記憶體將會處於唯讀模式。 需要明確的用戶動作,才能再次使用它。 |
| 儲存空間行為 | 如果只有一個持續性記憶體模組受到影響,儲存空間仍可運作。 PMem 實體磁碟物件會顯示為健康狀態“狀況不良”,並且不會被儲存空間使用。 |
| 詳細資訊 | PhysicalDisk 物件的 OperationalStatus 字段。 事件日誌 – Microsoft-Windows-ScmDisk0101/Operational |
| 解決方式 | 如果使用者不想取代受影響的裝置,他們可以使用 Reset-PhysicalDisk Cmdlet 來清除受影響永續性記憶體模組上的唯讀條件。 在儲存空間環境中,這也會嘗試將持續性記憶體模組重新放入儲存空間,並開始修復程式。 |
後續步驟
如需相關信息,請參閱: