Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

Deploy Dell PowerFlex v3.6.x

PDF

Prepare an NVDIMM as a DAX (acceleration) device

Prepare a new or replacement NVDIMM as a DAX/acceleration device before adding it to the SDS in a Linux system. This step is optional when replacing an NVDIMM battery.

About this task

NOTE: If you replaced the system board, perform the following steps for each NVDIMM mounted on the server.

Steps

  1. Using SSH, log in to the Linux server.
  2. View information for the new/replacement NVDIMM:
    dmidecode --type memory | grep "Non-" -B 3 -A 3 | grep -E 'Locator|Serial' | grep -v Bank

    Output similar to the following appears:

    Locator: A7
    Serial Number: 17496594
    Locator: B7
    Serial Number: 174965AC
    
  3. Find the serial number in the output and record it in the NVDIMM information table.
  4. Display the correlation between the ID and NMEM device name of each NVDIMM mounted on the server:
    ndctl list -Dvvv | jq '.[].dimms[]'

    Output similar to the following appears:

    {
      "dev": "nmem1",
      "id": "802c-0f-1722-174965ac",
      "handle": 4097,
      "phys_id": 4370,
      "health": {
        "health_state": "ok",
        "temperature_celsius": 255,
        "life_used_percentage": 30
      }
    }
    {
      "dev": "nmem0",
      "id": "802c-0f-1711-16492521",
      "handle": 1,
      "phys_id": 4358,
      "health": {
        "health_state": "ok",
        "temperature_celsius": 255,
        "life_used_percentage": 30
      }
    }
    
  5. In the output from the previous step, find the device (dev) with the id that partially correlates with the serial number you discovered previously for the failed device.
    For example:
    • The NVDIMM output displays serial number 16492521 for the NVDIMM device.
    • In the previous step, the output displays the ID of device nmem0 as 802c-0f-1711-16492521.
    Serial number Device ID
    Locator: A7
    Serial Number: 16492521
    Locator: B7
    Serial Number: 1649251B
        
    "dev": "nmem0",
    "id": "802c-0f-1711-16492521",

    In the above example, the NMEM name is nmem0.

  6. Record the NMEM name in the Device name row of the NVDIMM information table.
  7. Correlate between the NMEM DIMM and the namespace/DAX device (acceleration device):
    ndctl list -Dvvv | jq '.[].dimms[]'

    Output similar to the following appears:

    {
      "dev": "nmem1",
      "id": "802c-0f-1722-174965ac",
      "handle": 4097,
      "phys_id": 4370,
      "health": {
        "health_state": "ok",
        "temperature_celsius": 255,
        "life_used_percentage": 30
      }
    }
    {
      "dev": "nmem0",
      "id": "802c-0f-1722-17496594",
      "handle": 1,
      "phys_id": 4358,
      "health": {
        "health_state": "ok",
        "temperature_celsius": 255,
        "life_used_percentage": 30
      }
    }
    
    ndctl list -Dvvv | jq '.[].regions[].namespaces[]'
    
    {
      "dev": "namespace1.0",
      "mode": "raw",
      "size": 17179869184,
      "sector_size": 512,
      "blockdev": "pmem1",
      "numa_node": 1
    }
    {
      "dev": "namespace0.0",
      "mode": "raw",
      "size": 17179869184,
      "sector_size": 512,
      "blockdev": "pmem0",
      "numa_node": 0
    }
    
  8. In the output displayed in the previous step, locate the namespace that correlates with the NMEM name and DIMM serial number, and record it in the NVDIMM information table.
    In the above example, nmem0's namespace is namespace0.0.
  9. Destroy the default namespace that was created for the replacement NVDIMM, using the namespace discovered in the previous step:
    ndctl destroy-namespace namespaceX.0

    For example, if the replacement NVDIMM maps to namespace0.0, the command is:

    ndctl destroy-namespace namespace0.0
  10. Create a new, raw nmem device using the region associated with namespace of the failed device, as recorded in the NVDIMM information table:
    ndctl create-namespace -r regionX -m raw -f

    For example, if the NVDIMM you replaced mapped to region 0, the command is:

    ndctl create-namespace -r region0 -m raw -f
  11. Convert the namespace device to the acceleration device name of type /dev/daxX.X:
    ndctl create-namespace -f -e namespaceX.X –-mode=devdax –align=4K

    For ndctl build 61.2 or later, run:

    ndctl create-namespace -f -e namespaceX.X –-mode=dax –align=4K --no-autolabel

    where namespaceX.X is the actual namespace of the NVDIMM.

    For example, to convert namespace0.0 to /dev/dax0.0, where /dev/daxX.X is the acceleration device name, depending on the ndctl build run:

    ndctl create-namespace -f -e namespace0.0 –-mode=dax –align=4K

    or

    ndctl create-namespace -f -e namespace0.0 –-mode=dax –align=4K --no-autolabel
    NOTE: --no-autolabel is only required for RHEL7.6.
  12. Record the acceleration device name in the NVDIMM information table.
  13. Run the namespace-to-dax-device correlation command to find the DAX/acceleration device name of the replacement NVDIMM:
    ndctl list -Dvvv | jq '.[].regions[].namespaces[]'

    Output similar to the following appears:

    {
      "dev": "namespace1.0",
      "mode": "devdax",
      "map": "dev",
      "size": 16909336576,
      "uuid": "c59d6a2d-7eeb-4f32-b27a-9960a327e734",
      "daxregion": {
        "id": 1,
        "size": 16909336576,
        "align": 4096,
        "devices": [
          {
            "chardev": "dax1.0",
            "size": 16909336576
          }
        ]
      },
      "numa_node": 1
    }
    {
      "dev": "namespace0.0",
      "mode": "devdax",
      "map": "dev",
      "size": 16909336576,
      "uuid": "eff6429c-706f-469e-bab4-a0d34321c186",
      "daxregion": {
        "id": 0,
        "size": 16909336576,
        "align": 4096,
        "devices": [
          {
            "chardev": "dax0.0",
            "size": 16909336576
          }
        ]
      },
      "numa_node": 0
    }
    

    The DAX/acceleration device name appears in the output as the chardev value.

    In the example output above, the DAX/acceleration device name is dax0.0.

  14. Record the DAX/acceleration device name in the NVDIMM information table.
  15. Find the full acceleration device path:
    	ls -ltr /dev/ | grep dax

    The following output should appear:

    /dev/daxX.X

    For example:

    /dev/dax0.0
  16. Record the acceleration device path in the NVDIMM information table.

Results

You are now ready to add the DAX/acceleration device to the NVDIMM Acceleration Pool.

Rate this content

Accurate
Useful
Easy to understand
Was this article helpful?
0/3000 characters
  Please provide ratings (1-5 stars).
  Please provide ratings (1-5 stars).
  Please provide ratings (1-5 stars).
  Please select whether the article was helpful or not.
  Comments cannot contain these special characters: <>()\