5.8.3. Detección y sustitución de un dispositivo NVDIMM roto


Si encuentra mensajes de error relacionados con NVDIMM reportados en el registro del sistema o por S.M.A.R.T., podría significar que un dispositivo NVDIMM está fallando. En ese caso, es necesario:

  1. Detectar qué dispositivo NVDIMM está fallando
  2. Haz una copia de seguridad de los datos almacenados en él
  3. Sustituir físicamente el dispositivo

Procedimiento

  1. Para detectar el dispositivo roto, utilice el siguiente comando:

    Copy to Clipboard Toggle word wrap
    # ndctl list --dimms --regions --health --media-errors --human

    El campo badblocks muestra qué NVDIMM está roto. Anote su nombre en el campo dev.

    Ejemplo 5.7. Estado de salud de los dispositivos NVDIMM

    En el siguiente ejemplo, el NVDIMM llamado nmem0 está roto:

    Copy to Clipboard Toggle word wrap
    # 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"
        }
      ]
    }
  2. Utilice el siguiente comando para encontrar el atributo phys_id del NVDIMM roto:

    Copy to Clipboard Toggle word wrap
    # ndctl list --dimms --human

    Por el ejemplo anterior, sabes que nmem0 es el NVDIMM roto. Por lo tanto, encuentra el atributo phys_id de nmem0.

    Ejemplo 5.8. Los atributos phys_id de los módulos NVDIMM

    En el siguiente ejemplo, el phys_id es 0x10:

    Copy to Clipboard Toggle word wrap
    # 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
      }
    ]
  3. Utilice el siguiente comando para encontrar la ranura de memoria del NVDIMM roto:

    Copy to Clipboard Toggle word wrap
    # dmidecode

    En la salida, busque la entrada en la que el identificador Handle coincida con el atributo phys_id del NVDIMM roto. El campo Locator enumera la ranura de memoria utilizada por el NVDIMM roto.

    Ejemplo 5.9. Listado de ranuras de memoria NVDIMM

    En el siguiente ejemplo, el dispositivo nmem0 coincide con el identificador 0x0010 y utiliza la ranura de memoria DIMM-XXX-YYYY:

    Copy to Clipboard Toggle word wrap
    # 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)
    ...
  4. Haga una copia de seguridad de todos los datos de los espacios de nombre del NVDIMM. Si no hace una copia de seguridad de los datos antes de sustituir el NVDIMM, los datos se perderán cuando retire el NVDIMM del sistema.

    Aviso

    En algunos casos, como cuando el NVDIMM está completamente roto, la copia de seguridad podría fallar.

    Para evitarlo, supervise regularmente sus dispositivos NVDIMM utilizando el S.M.A.R.T. como se describe en Sección 5.8.2, “Supervisión del estado de los NVDIMM mediante S.M.A.R.T.” y sustituya los NVDIMM que fallen antes de que se rompan.

    Utilice el siguiente comando para listar los espacios de nombres en el NVDIMM:

    Copy to Clipboard Toggle word wrap
    # ndctl list --namespaces --dimm=DIMM-ID-number

    Ejemplo 5.10. Listado de espacios de nombres NVDIMM

    En el siguiente ejemplo, el dispositivo nmem0 contiene los espacios de nombre namespace0.0 y namespace0.2, de los que hay que hacer una copia de seguridad:

    Copy to Clipboard Toggle word wrap
    # 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
      }
    ]
  5. Reemplace el NVDIMM roto físicamente.

Recursos adicionales

  • La página de manual ndctl-list(1)
  • La página de manual dmidecode(8)
Volver arriba
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar. Explore nuestras recientes actualizaciones.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Theme

© 2025 Red Hat, Inc.