28.5. NVDIMM のトラブルシューティング


28.5.1. S.M.A.R.T を使用した NVDIMM の正常性の監視

一部の NVDIMMs は、正常性情報を取得する Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.) インターフェイスに対応しています。
NVDIMM 正常性を定期的に監視して、データの損失を防ぎます。S.M.A.R.T. が NVDIMM の正常性ステータスで問題を報告する場合は、「破損した NVDIMM の検出と置き換え」 の説明に従って置き換えます。

前提条件

  • 一部のシステムでは、以下のコマンドを使用して正常性情報を取得するために、acpi_ipmi ドライバーを読み込む必要があります。
    # modprobe acpi_ipmi
    Copy to Clipboard Toggle word wrap

手順

  • 正常性情報にアクセスするには、次のコマンドを使用します。
    # ndctl list --dimms --health
    ...
        {
          "dev":"nmem0",
          "id":"802c-01-1513-b3009166",
          "handle":1,
          "phys_id":22,
          "health":
          {
            "health_state":"ok",
            "temperature_celsius":25.000000,
            "spares_percentage":99,
            "alarm_temperature":false,
            "alarm_spares":false,
            "temperature_threshold":50.000000,
            "spares_threshold":20,
            "life_used_percentage":1,
            "shutdown_state":"clean"
          }
         }
    ...
    
    Copy to Clipboard Toggle word wrap

28.5.2. 破損した NVDIMM の検出と置き換え

システムログまたは S.M.A.R.T. に NVDIMM 関連のエラーメッセージが記録される場合は、NVDIMM デバイスがエラーを起こしていることが考えられます。この場合は、以下を行う必要があります。
  1. どの NVDIMM デバイスに障害が発生しているかを検出する
  2. 保存されているデータのバックアップを作成する
  3. デバイスを物理的に交換する

手順28.3 破損した NVDIMM の検出と置き換え

  1. 破損した DIMM を検出するには、次のコマンドを使用します。
    # ndctl list --dimms --regions --health --media-errors --human
    
    Copy to Clipboard Toggle word wrap
    badblocks フィールドは、NVDIMM が破損していることを示しています。dev フィールドに名前を書き留めます。以下の例では、nmem0 という名前の NVDIMM が破損しています。

    例28.1 NVDIMM デバイスの正常性ステータス

    # ndctl list --dimms --regions --health --media-errors --human
    
    ...
      "regions":[
        {
          "dev":"region0",
          "size":"250.00 GiB (268.44 GB)",
          "available_size":0,
          "type":"pmem",
          "numa_node":0,
          "iset_id":"0xXXXXXXXXXXXXXXXX",
          "mappings":[
            {
              "dimm":"nmem1",
              "offset":"0x10000000",
              "length":"0x1f40000000",
              "position":1
            },
            {
              "dimm":"nmem0",
              "offset":"0x10000000",
              "length":"0x1f40000000",
              "position":0
            }
          ],
          "badblock_count":1,
          "badblocks":[
            {
              "offset":65536,
              "length":1,
              "dimms":[
                "nmem0"
              ]
            }
          ],
          "persistence_domain":"memory_controller"
        }
      ]
    }
    
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを使用して、破損した NVDIMM の phys_id 属性を検索します。
    # ndctl list --dimms --human
    
    Copy to Clipboard Toggle word wrap
    前の例では、nmem0 が破損した NVDIMM であることがわかります。したがって、nmem0phys_id 属性を確認します。以下の例では、phys_id0x10 です。

    例28.2 NVDIMMs の phys_id 属性

    # 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
      }
    ]
    
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを使用して、破損した NVDIMM のメモリースロットを確認します。
    # dmidecode
    
    Copy to Clipboard Toggle word wrap
    出力で、Handle 識別子が破損した NVDIMM の phys_id 属性と一致するエントリーを見つけます。Locator フィールドには、破損した NVDIMM が使用するメモリースロットが一覧表示されます。以下の例では、nmem0 デバイスは 0x0010 識別子と一致し、DIMM-XXX-YYYY メモリースロットを使用します。

    例28.3 NVDIMM メモリースロットリスティング

    # 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)
    ...
    
    Copy to Clipboard Toggle word wrap
  4. NVDIMM 上の名前空間にある全データのバックアップを作成します。NVDIMM を交換する前にデータのバックアップを作成しないと、システムから NVDIMM を削除したときにデータが失われます。
    警告
    時折、NVDIMM が完全に破損すると、バックアップが失敗することがあります。
    これを防ぐため、「S.M.A.R.T を使用した NVDIMM の正常性の監視」 の説明に従って、S.M.A.R.T. を使用して NVDIMMs デバイスを定期的に監視し、破損する前にエラーを起こしている NVDIMMs を交換してください。
    次のコマンドを使用して、NVDIMM の名前空間をリスト表示します。
    # ndctl list --namespaces --dimm=DIMM-ID-number
    Copy to Clipboard Toggle word wrap
    以下の例では、nmem0 デバイスには、バックアップする必要がある namespace 0.0 および namespace 0.2 の名前空間が含まれます。

    例28.4 NVDIMM 名前空間のリスト表示

    # 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
      }
    ]
    
    Copy to Clipboard Toggle word wrap
  5. 破損した NVDIMM を物理的に交換します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat