永続メモリの正常性管理

適用対象: Azure Stack HCI バージョン 20H2、Windows Server 2019、Windows Server 2016、Windows 10

この記事では、永続メモリ (PMem) デバイスに特有のエラー処理と正常性管理に関する情報を提供します。これはよくストレージ クラス メモリ (SCM) と呼ばれ、最上位層のストレージとして使用される非揮発性メディアの一種です。

次の短いビデオでは、Windows での永続メモリのサポートを概説しています。

永続メモリの理解と配置」もご覧ください。

永続メモリ デバイスは、Windows Server 2016 と Windows 10 (バージョン 1607) 以降、ネイティブ ドライバーによりサポートされています。 永続メモリ デバイスの動作は他のディスク (HDD と SSD) と似ていますが、いくつかの違いもあります。

一般的なユース ケースは、2 つの永続メモリ モジュールを、記憶域スペースでミラーリングされるライトバック キャッシュとして活用することです。 そのような構成をセットアップするには、「NVDIMM-N ライトバック キャッシュを使った記憶域スペースの構成」を参照してください。

Windows Server 2016 では、記憶域スペースの GUI に、NVDIMM-N バスの種類が "不明" として表示されます。 機能的な損失や、プール やストレージ VD を作成できなくなることはありません。 次のコマンドレットを実行して、バスの種類を確認できます。

Get-PhysicalDisk | fl

出力の BusType パラメーターにバスの種類が正しく SCM と表示されます。

永続メモリの正常性状態の確認

このセクションでは、永続メモリ モジュールの正常性状態を確認する方法を説明します。 永続メモリを使用する場合、監視エクスペリエンスにはいくつかの違いがあります。

  • 永続メモリは物理ディスクのパフォーマンス カウンターを作成しないので、Windows Admin Center のグラフには表示されません。
  • 永続メモリは Storport 505 データを作成しないので、プロアクティブな外れ値検出は行われません。

それ以外の監視エクスペリエンスは他の物理ディスクと変わりません。

次のコマンドレットを実行すると、永続メモリ ディスクの正常性のクエリを実行することができます。

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 コマンドレットを使用して、BusType に SCM を指定することにより、同じ情報を得ることもできます。

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

注意

イベントで指定されている永続メモリ デバイスの物理的な場所を確認するには、イベント ビューアーでイベントの [詳細] タブにある EventData > Location に移動します。 Windows Server 2016 で一覧表示される永続メモリ デバイスの場所は不正確ですが、これは Windows Server バージョン 1709 で修正されています。

HealthStatus は、永続メモリ ディスクが正常であるかどうかを示します。

UnsafeshutdownCount 値は、この論理ディスクでデータ損失を引き起こすおそれがあるシャットダウンの回数を追跡します。 この数は、このディスクの基盤となるすべての永続メモリ デバイスの安全ではないシャットダウン回数の合計です。 正常性状態の詳細を知るには、Get-PmemPhysicalDevice コマンドレットを使用して、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

このコマンドレットは、どの永続メモリ デバイスに異常があるかを示します。 異常なデバイス (DeviceId 20) は、上の例と一致しています。 BIOS 内の PhysicalLocation は、どの永続メモリ デバイスが障害状態であるかを特定するのに役立ちます。

さまざまな正常性の状態を理解するには、以下のセクションを参照してください。

警告の正常性状態

これは、永続メモリ デバイスの正常性を確認した際に、出力例に示されているようにその Health Status (正常性状態) が Warning (警告) として表示される状態です。

SerialNumber HealthStatus OperationalStatus OperationalDetails
802c-01-1602-117cb5fc Healthy OK
802c-01-1602-117cb64f 警告 予測される障害 {Threshold Exceeded,NVDIMM_N Error}

この状況に関するいくつかの情報を次の表に示します。

[Heading] (方向) Description
起こり得る状態 警告のしきい値を超えました
根本原因 永続メモリ デバイスは、温度、NVM の有効期間、電源の有効期間など、さまざまなしきい値を追跡します。 これらのしきい値のいずれかを超えると、オペレーティング システムに通知されます。
通常の動作 デバイスは引き続き完全に動作します。 これは警告であり、エラーではありません。
記憶域スペースの動作 デバイスは引き続き完全に動作します。 これは警告であり、エラーではありません。
詳細情報 PhysicalDisk オブジェクトの OperationalStatus フィールド。 EventLog – Microsoft-Windows-ScmDisk0101/Operational
対処 超過した警告のしきい値によっては、永続メモリ デバイスを交換することが賢明である場合もあります。

永続メモリ デバイスへの書き込みが失敗する

これは、永続メモリ デバイスの正常性を確認した際に、次の出力例に示されているように Health Status (正常性状態) に Unhealthy (異常) と表示され、Operational Status (動作状態) に IO Error (IO エラー) と表示される状態です。

SerialNumber HealthStatus OperationalStatus OperationalDetails
802c-01-1602-117cb5fc Healthy OK
802c-01-1602-117cb64f 異常 {Stale Metadata, IO Error, Transient Error} {Lost Data Persistence, Lost Data, NV...}

この状況に関するいくつかの情報を次の表に示します。

[Heading] (方向) Description
起こり得る状態 永続性またはバックアップ電力の喪失
根本原因 永続メモリ デバイスの永続性は、バックアップ電源 (通常ではバッテリやスーパー キャパシター) に依存しています。 このバックアップ電源を利用できない場合、またはデバイスが何らかの理由 (コントローラー/Flash エラー) でバックアップを実行できない場合は、データが危険にさらされており、Windows は影響を受けているデバイスへのさらなる書き込みを阻止します。 データを退避させるための読み取りは引き続き可能です。
通常の動作 NTFS ボリュームのマウントが解除されます。
PhysicalDisk の正常性状態フィールドには、影響を受けているすべての NVDIMM-N デバイスについて "Unhealthy" (異常)が表示されます。
記憶域スペースの動作 影響を受けている永続メモリ モジュールが 1 つだけの場合、記憶域スペースは引き続き動作します。 複数のデバイスが影響を受けている場合、記憶域スペースへの書き込みは失敗します。
PhysicalDisk の正常性状態フィールドには、影響を受けているすべての永続メモリ デバイスについて "Unhealthy" (異常) が表示されます。
詳細情報 PhysicalDisk オブジェクトの OperationalStatus フィールド。
EventLog – Microsoft-Windows-ScmDisk0101/Operational
対処 影響を受けている PMem のデータをバックアップすることをお勧めします。 読み取りアクセスを可能にするには、ディスクを手動でオンライン化します (ディスクは読み取り専用の NTFS ボリュームとして表されます)。

この状態を完全に解消するには、根本原因を解決する必要があります (すなわち、問題に応じて、電源を修理するか、永続メモリ モジュールを交換します)。モジュールのボリュームは、オフラインにしてから再びオンラインにするか、またはシステムを再起動する必要があります。

記憶域スペースで永続メモリ モジュールを再び使用できるようにするには、Reset-PhysicalDisk コマンドレットを使用します。これにより、デバイスが再統合されて、修復プロセスが開始されます。

デバイスの容量が '0' バイトとして表示されるか、デバイスが "汎用物理ディスク" として表示される

これは、永続メモリ デバイスの容量が 0 バイトとして表示されて初期化できないか、次の出力例で示されているように、シリアル番号のない "汎用物理ディスク" オブジェクトとして表示され、Operational Status (動作状態) に Lost Communication (通信の切断) と表示される状態です。

SerialNumber HealthStatus OperationalStatus OperationalDetails
802c-01-1602-117cb5fc Healthy OK
警告 通信の切断

この状況に関するいくつかの情報を次の表に示します。

[Heading] (方向) Description
起こり得る状態 BIOS が OS に対して永続メモリ モジュールを公開しませんでした
根本原因 永続メモリ デバイスは DRAM ベースです。 破損している DRAM アドレスが参照されている場合、ほとんどの CPU はマシン チェックを開始して、サーバーを再起動します。 一部のサーバー プラットフォームでは、その後永続メモリ モジュールがマップ解除されます。これにより、OS はこれにアクセスできなくなり、もう一度マシン チェックが実行される場合があります。 また、この状況は、BIOS が永続メモリ モジュールが故障していて、交換する必要があることを検出した場合にも発生することがあります。
通常の動作 永続メモリ モジュールは容量が 0 バイトで未初期化として表示され、読み取りや書き込みはできません。
記憶域スペースの動作 記憶域スペースは引き続き動作します (影響を受けている永続メモリ モジュールが 1 つだけの場合)。
PMem PhysicalDisk オブジェクトの Health Status (正常性状態) は Warning (警告) で、"汎用物理ディスク" として表示されます。
詳細情報 PhysicalDisk オブジェクトの OperationalStatus フィールド。
EventLog – Microsoft-Windows-ScmDisk0101/Operational
対処 永続メモリ デバイスを交換またはサイニタイズし、サーバー プラットフォームがこれをホスト OS に再び公開するようにする必要があります。 修正不能なエラーがさらに発生するおそれがあるため、デバイスを交換することをお勧めします。 交換用デバイスを記憶域スペースの構成に追加するには、Add-PhysicalDisk コマンドレットを使用します。

再起動後にデバイスが RAW または空のディスクとして表示される

これは、永続メモリ デバイスの正常性を確認した際に、次の出力例に示されているように Health Status (正常性状態) に Unhealthy (異常) と表示され、Operational Status (動作状態) に Unrecognized Metadata (認識されないメタデータ) と表示される状態です。

SerialNumber HealthStatus OperationalStatus OperationalDetails
802c-01-1602-117cb5fc Healthy OK {Unknown}
802c-01-1602-117cb64f 異常 {Unrecognized Metadata, Stale Metadata} {Unknown}

この状況に関するいくつかの情報を次の表に示します。

[Heading] (方向) Description
起こり得る状態 バックアップ/復元エラー
根本原因 バックアップまたは復元の手順での失敗により、永続メモリ モジュールのすべてのデータが失われるおそれがあります。 オペレーティング システムが読み込まれるときに、パーティションもファイル システムもない真新しい永続メモリ デバイスとして表示され、RAW として表示されます (つまりファイル システムを持たない)。
通常の動作 永続メモリは読み取り専用モードになります。 再使用を開始するには、明示的なユーザー対処が必要です。
記憶域スペースの動作 影響を受けている永続メモリ モジュールが 1 つだけの場合は、記憶域スペースは引き続き動作します。
PMem 物理ディスク オブジェクトは、Health Status (正常性状態) に "Unhealthy" (異常) と表示され、記憶域スペースで使用されることはありません。
詳細情報 PhysicalDisk オブジェクトの OperationalStatus フィールド。
EventLog – Microsoft-Windows-ScmDisk0101/Operational
対処 影響を受けているデバイスの交換をユーザーが望まない場合は、Reset-PhysicalDisk コマンドレットを使用して、影響を受けている永続メモリ モジュールの読み取り専用状態を解消することができます。 記憶域スペースの環境では、これにより、記憶域スペースへの永続メモリ モジュールの再統合と修復プロセスの開始も試行されます。

次のステップ

関連情報については、以下もご覧ください。