6.10. 破損した NVDIMM デバイスの検出と交換
不揮発性デュアルインラインメモリーモジュール (NVDIMM) に関連するエラーメッセージがシステムログまたは S.M.A.R.T. によって報告されている場合は、NVDIMM デバイスに障害が発生している可能性があります。この場合は、以下を行う必要があります。
- NVDIMM デバイスがエラーしていることを検出
- そこに格納されているデータをバックアップ
- デバイスを物理的に交換
手順
壊れたデバイスを検出します。
# ndctl list --dimms --regions --health { "dimms":[ { "dev":"nmem1", "id":"8089-a2-1834-00001f13", "handle":17, "phys_id":32, "security":"disabled", "health":{ "health_state":"ok", "temperature_celsius":35.0, [...] } [...] }
破損した NVDIMM の
phys_id
属性を見つけます。# ndctl list --dimms --human
前述の例では、
nmem0
が破損した NVDIMM になります。したがって、nmem0
のphys_id
属性を確認します。例6.7 NVDIMMs の phys_id 属性
以下の例では、
phys_id
は0x10
です。# ndctl list --dimms --human [ { "dev":"nmem1", "id":"XXXX-XX-XXXX-XXXXXXXX", "handle":"0x120", "phys_id":"0x1c" }, { "dev":"nmem0", "id":"XXXX-XX-XXXX-XXXXXXXX", "handle":"0x20", "phys_id":"0x10", "flag_failed_flush":true, "flag_smart_event":true } ]
壊れた NVDIMM のメモリースロットを見つけます。
# dmidecode
出力において、Handle 識別子が、破損した NVDIMM の
phys_id
属性と一致するエントリーを確認します。Locator フィールドは、破損した NVDIMM が使用するメモリースロットの一覧を表示します。例6.8 NVDIMM メモリースロットリスティング
以下の例では、
nmem0
デバイスが0x0010
の識別子に一致し、DIMM-XXX-YYYY
メモリースロットを使用します。# dmidecode ... Handle 0x0010, DMI type 17, 40 bytes Memory Device Array Handle: 0x0004 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 125 GB Form Factor: DIMM Set: 1 Locator: DIMM-XXX-YYYY Bank Locator: Bank0 Type: Other Type Detail: Non-Volatile Registered (Buffered) ...
NVDIMM 上の名前空間にある全データのバックアップを作成します。NVDIMM を交換する前にデータのバックアップを作成しないと、システムから NVDIMM を削除したときにデータが失われます。
警告時折、NVDIMM が完全に破損すると、バックアップが失敗することがあります。
これを防ぐには、Monitoring NVDIMM health using S.M.A.R.T. で説明されているように、S.M.A.R.T. を使用して NVDIMM デバイスを定期的に監視し、故障した NVDIMM を破損する前に交換します。
NVDIMM の名前空間を一覧表示します。
# ndctl list --namespaces --dimm=DIMM-ID-number
例6.9 NVDIMM 名前空間のリスト表示
以下の例では、
nmem0
デバイスには、バックアップが必要な名前空間のnamespace0.0
とnamespace0.2
が含まれます。# ndctl list --namespaces --dimm=0 [ { "dev":"namespace0.2", "mode":"sector", "size":67042312192, "uuid":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "raw_uuid":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "sector_size":4096, "blockdev":"pmem0.2s", "numa_node":0 }, { "dev":"namespace0.0", "mode":"sector", "size":67042312192, "uuid":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "raw_uuid":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "sector_size":4096, "blockdev":"pmem0s", "numa_node":0 } ]
- 破損した NVDIMM を物理的に交換します。
関連情報
-
システム上の
ndctl-list(1)
およびdmidecode(8)
man ページ