Preparing Intel Optane DC PMEM

Prepare PMEM for use by configuring the Intel Optane DC Direct Access (DAX) devices in AppDirect AppDirect mode.

About this task

PMEM is supplied on Intel Optane DC Direct Access (DAX) devices. Memory Machine requires that the DAX device be configured in AppDirect mode. (For the remainder of this guide, the terms "DAX Device" and "PMEM" are used interchangeably.)

Note: This procedure describes how to prepare Intel Optane DC Direct Access (DAX) devices in AppDirect mode on a bare metal Linux server. To configure PMEM on a VMware virtual Linux server using BIOS, consult VMware documentation or support for your VMware hypervisor.

The commands used in the following procedure requires privileged access. You can log in as root or execute the commands with sudo. The examples below shows the commands executed as root.

To prepare the DAX device, do the following:

Procedure

  1. Use ipmctl to examine the PMEM settings.
    # ipmctl show -region
     
    SocketID | ISetID             | PersistentMemoryType | Capacity  | FreeCapacity | HealthState
    =============================================================================== ==============
      0x0000 | 0xfbebc3d0a1e78888 | AppDirect            | 504.0 GiB | 0.0 GiB      | Healthy
      0x0001 | 0x38fdc3d0a5ae8888 | AppDirect            | 504.0 GiB | 0.0 GiB      | Healthy

    The ipmctl command shows that all the persistent memory has been configured in AppDirect mode.

    The command might show no regions or a PMEM type other than AppDirect:

    # ipmctl show -region
     
    There are no Regions defined in the system.

    If the regions do not exist or are not in AppDirect mode, complete the rest of this procedure to delete the PMEM regions and re-create the regions in AppDirect mode.

  2. Create a new AppDirect goal:
    Warning: Reconfiguring the PMEM erases all of the data in the PMEM.
    # ipmctl create -goal PersistentMemoryType=AppDirect
  3. Reboot the system:
    # systemctl reboot
    All of the regions are in AppDirect mode.
  4. Create the DAX devices:
    # ndctl create-namespace -r region0 -m devdax
    # ndctl create-namespace -r region1 -m devdax
  5. Optional: Verify that the /dev/daxN.M devices have been created:
    # ndctl list -uv
    [
      {
        "dev":"namespace1.0",
        "mode":"devdax",
        "map":"dev",
        "size":"689.06 GiB (739.87 GB)",
        "uuid":"9dd94dca-48f2-46b4-9c18-8f5cc353fb79",
        "raw_uuid":"04f81558-4e66-4417-8cdc-54b529c1db64",
        "daxregion":{
          "id":1,
          "size":"689.06 GiB (739.87 GB)",
          "align":2097152,
          "devices":[
            {
              "chardev":"dax1.0",
              "size":"689.06 GiB (739.87 GB)",
              "target_node":3,
              "mode":"devdax"
            }
          ]
        },
        "align":2097152,
        "numa_node":1
      },
      {
        "dev":"namespace0.1",
        "mode":"devdax",
        "map":"dev",
        "size":"678.29 GiB (728.31 GB)",
        "uuid":"62f103d6-4149-48e7-98fa-7b5ab1f4e41f",
        "raw_uuid":"8575c9b9-4550-4f11-8323-232d2e368338",
        "daxregion":{
          "id":0,
          "size":"678.29 GiB (728.31 GB)",
          "align":2097152,
          "devices":[
            {
              "chardev":"dax0.1",
              "size":"678.29 GiB (728.31 GB)",
              "target_node":2,
              "mode":"devdax"
            }
          ]
        },
        "align":2097152,
        "numa_node":0
      }
    ]