This document describes the Intel® Optane™ Data Center persistent memory (PMEM) configuration in AppDirect mode for Windows Server.
Contributed by Ana Montenegro, Cisco TAC Engineer.
Cisco recommends that you have knowledge of these topics:
- Intel® Optane™ Data Center persistent memory module (DCPMM).
- Windows Server Administration.
Ensure the server has the minimum requirements before you attempt this configuration:
- Refer to the PMEM guidelines on the B200/B480 M5 specification guide.
- Ensure the CPU is second generation Intel® Xeon® Scalable processors.
The information in this document is based on these software and hardware versions:
- UCS B480 M5
- UCS Manager 4.1(2a)
- Windows Server 2019
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
Cisco IMC and Cisco UCS Manager Release 4.0(4) introduce support for the Intel® Optane™ Data Center persistent memory modules on the UCS M5 servers that are based on the Second Generation Intel® Xeon® Scalable processors.
Data Center Persistent Memory Module
Data Center Persistent Memory Module (DCPMM) is a new technology that bridges the gap between storage and traditional memory. It achieves the best of both worlds by combining the high-speed performance of DRAM and the high capacity of traditional storage. They have high performance than SSDs and lower cost per gigabyte than system memory.
Modes of Operation
In Memory Mode, the DDR4 acts as a cache module for the DCPMMs. It provides a large memory capacity, although data is volatile. The operating system sees the persistent memory module capacity as the system's main memory.
All memory used as storage. Memory is byte-addressable and provides direct load/store access without any modifications to the existing applications or the file systems. App Direct Mode provides high-performance block storage, without the latency of moving data to and from the I/O bus.
This mode allows the usage of the module with 25% capacity used as volatile memory and 75% as non-volatile memory.
Switching between modes is possible via UCSM as well as OS tools on the host.
A goal is used to configure how persistent memory modules connected to a CPU socket are used.
- App Direct configures one region for all the persistent memory modules connected to a socket.
- App Direct Non interleaved configures one region for each persistent memory module.
A region is a group of one or more persistent memory modules that can be divided up into one or more namespaces. A region is created based on the persistent memory type selected during goal creation.
Regions can be created as either non-interleaved, meaning one region per persistent memory module, or interleaved, which creates one large region over all modules in a CPU socket. Regions cannot be created across CPU sockets.
A namespace is a partition of a region. When using the App Direct persistent memory type, you can create namespaces on the region mapped to the socket. When using the App Direct Non Interleaved persistent memory type, you can create namespaces on the region mapped to a specific memory module on the socket.
A namespace can be created in Raw or Block mode. A namespace created in Raw mode is seen as a raw mode namespace in the host OS. A namespace created in Block mode is seen as a sector mode namespace in the host OS.
Direct access (DAX) is a mechanism that allows applications to directly access the persistent media from the CPU (through loads and stores), bypassing the traditional I/O stack (page cache and block layer).
1. Create a PMEM policy
Navigate to Servers > Persistent Memory Policy and click on Add.
Create a Goal, ensure the Memory Mode is 0%.
Note: If you include a persistent memory policy in a service profile associated to a server, the persistent memory configuration on the server is UCS-managed. In the UCS-managed mode, you can use Cisco UCS Manager and host tools to configure and manage persistent memory modules, otherwise, the persistent memory configuration on the server is host-managed. In the host-managed mode, you can use the host tools to configure and manage persistent memory modules.
2. Assign the persistent memory policy to the service profile.
Navigate to Service Profile > Policies > Persistent Memory Policy and select the policy previously created
Caution: This action requires a server reboot
3. (Optional) Verify the mode is AppDirect.
Navigate to Server > Inventory > Persistent Memory > Regions.
4. In Windows navigate to Device Manager > Memory devices to see the memories.
5. Use PowerShell to verify the memory physical status with the command Get-PmemPhysicalDevice.
6. Use the command Get-PmemUnusedRegion to return the regions that are available to be assigned to a logical persistent memory device on the system.
7. Use the command New-PmenDisk to create a namespace on a region in order to enable the capacity.
The namespace is visible to the Windows operating system and can be used by applications.
8. Verify with the command Get-PmemDisk Persistent Memory Disk (Namespace).
9. (Optional) Navigate to the Device Manager and check the persistent memory disk under the Persistent memory disk.
10. In UCS Manager you see the namespace created under the regions.
Navigate to Server > Inventory > Persistent memory > Namespace you see the Regions with the namespace attached.
11. In Windows, navigate to the Disk Management console to view the new disk. initialize the disk using MBR or GPT partitioning before the logical disk manager can access it.
There is currently no verification procedure available for this configuration.
1. The command Remove-PmemDisk removes a specific persistent memory disk, which can be used if If you have to replace a failed module.
Caution: Remove a persistent memory disk cause data loss on that disk.
2. Verify with the command Get-PmemDisk the remaining available persistent memory disk.
3. In UCS Manager under Persistent Memory you see the region no longer has the namespace assigned as shown in the image.
4. Alternatively, use the IPMCTL utility to configure and manage the Intel Optane DC persistent memory modules.
Note: IPMCTL can be launched from a Unified Extensible Firmware Interface (UEFI) shell or a terminal window in an operating system.
5. The ipmctl show -dimm command displays the persistent memory modules discovered in the system and verifies that software can communicate with them. Among other information, this command outputs each DIMM ID, capacity, health state, and firmware version.
6. The ipmctlshow -memoryresources command displays the capacity provisioned.
7. The ipmctl show -region command displays available regions, you see the region 1 has free capacity.
8. The command ipmctl create -namespace create a namespace in the available regions.
9. Now all the regions are assigned to the namespace, as shown in the image
10. In UCS manager we can check the namespace created under Persistent Memory as shown in the image.
Note: Review all the available commands for IPMCTL :
IPMCTL User Guide