Virtual Persistent Memory (PMEM) is an enhancement to the IBM Power Systems advanced virtualization platform (PowerVM) which provides the ability to configure persistent volumes using the existing DRAM (dynamic RAM) technology. This persistent memory solution on Power is being made available on POWER9 processor-based systems with just a firmware upgrade at no additional cost. There are no additional hardware components or memory modules required on Power with this solution. This functionality is built using the standard memory DIMMs that are available on Power servers.
DRAM-based memory volumes presented as virtual persistent memory volumes are engineered to allow Power clients to restart VMs faster for most planned maintenance and unplanned outages without compromising the performance of applications during normal use. One such example use case is for SAP HANA which is aware of the various memory types and can directly store data according to its type, i.e., working memory or persistent memory. Since Virtual PMEM is designed according to industry standards, it works with software versions which support Persistent Memory without any modifications. Virtual PMEM will significantly reduce the shutdown and start-up time of the database compared to disk-based reloads from storage. This significantly improves serviceability for SAP HANA and Linux software maintenance, for large-scale databases. You can refer to the SAP HANA and PowerVM Virtual Persistent Memory whitepaper for more details on use of the Virtual PMEM technology with SAP HANA.
Virtual PMEM functionality has been added in HMC V9.1.940.0 and in Power firmware FW940.
The following functions have been added to manage persistent memory DRAM volumes.
- List virtual persistent memory DRAM volumes
- Create virtual persistent memory DRAM volumes
- Remove virtual persistent memory DRAM volumes
- Change virtual persistent memory DRAM volume name
The following interfaces can be used to manage Virtual Persistent Memory
- Graphical User interface.
- REST API
- Command Line Interface
Graphical User Interface to Manage Virtual PMEM volumes:
HMC GUI to List Virtual persistent memory volume:
To list all virtual PMEM volumes associated with a partition.
Select the partition and click Actions > View Partition Properties to open Partition properties window. Click on Persistent Memory under Properties to open Persistent Memory Window.
The Persistent Memory window displays all the persistent memory volumes. Click and expand Virtual Persistent Memory to display virtual persistent memory volumes as shown in the below image.
As shown in the above image, there is currently one virtual persistent volume associated to the partition. The table displays the volume name, size, current size and volume affinity. Select the Affinity check box if the vPMEM volumes should be provisioned by NUMA node.
HMC GUI to Create Virtual persistent memory volume:
A Virtual PMEM volume can be created and assigned to the partition by navigating to Partition -> Properties -> Persistent Memory. To create and add a virtual persistent memory volume to a partition, the partition has to be in powered off state. Before creating a virtual persistent memory DRAM volume for a partition, base memory should be assigned to the partition. DRAM volumes are not allowed for partition which are in shared memory mode. User can use HMC commands or REST/GUI interfaces to assign the memory and other resources to the partition.
Click on Add button shown in Figure 1 to create and add a volume to a partition. Enter Volume Name and Volume Size and Select the Affinity check box if the volumes should be provisioned by NUMA node. As shown in the image below, Click on OK button to create the volume.
As seen in the below image, a new volume Test2 has been created.
HMC GUI to Remove Virtual persistent memory volume:
To remove a Virtual PMEM volume from a partition, the partition has to be powered off. Once a volume is removed, data on volume will also be deleted and cannot be recovered.
When you delete a partition, DRAM volumes which are associated with the partition, will be deleted along with the partition and data on the volumes and cannot be recovered.
Select volume and click on Actions > Remove as shown below in the image
A pop-up confirmation window will open before removing the volume as shown below. Click on OK button to remove the volume.
As shown in below image, volume Test2 has been removed.
HMC GUI to Change virtual persistent memory volume name:
Partition can be in running state or in powered off state to change the volume name.
To change volume name, select volume and click on Actions > Modify as shown in the below image
A pop-up window will open. Enter the new volume name and click OK
As shown in the below image, volume name has been changed to NewName.
Command Line Interface to Manage Virtual PMEM Volumes:
HMC CLI to List persistent memory DRAM volumes:
To list all the persistent memory DRAM volumes on a managed system use
lshwres -r pmem -m <managed-system> --rsubtype volume
It will display volume name, volume id, volume size, volume current size, partition name and partition id to which the volume is associated, volume uuid, volume affinity, volume type and device on which the volume is created. Device type dram indicates volume is created on the Managed System DRAM.
To list the persistent memory DRAM volumes on a managed system for a specific partition, filter can be used on the CLI command
lshwres -r pmem -m <managed-system> --rsubtype volume –filter lpar_ids=2
HMC CLI to Create persistent memory DRAM volume:
To create and add a persistent memory DRAM volume to an inactive partition use
chhwres -r pmem -m <managed-system> -o a --rsubtype volume --volume volumeName --device dram -p <partition-name> -a "size=512,affinity=1"
HMC CLI to Remove persistent memory DRAM volume:
To remove a persistent memory DRAM volume from an inactive partition use
chhwres -r pmem -m <managed-system> -o r --rsubtype volume --volume volumeName -p <partition-name>
HMC CLI to Change persistent memory DRAM volume name
To change a persistent memory DRAM volume name use
chhwres -r pmem -m <managed-system> -o s --rsubtype volume --volume volumeName -p <partition-name> -a new_name=<volume-new-name>
Rest API Interface to Manage Virtual PMEM Volumes:
User can also manage persistent memory DRAM volumes via REST API.
Virtual Persistent Memory volumes using REST API:
API to list all the persistent memory volumes that exist on the managed system that are specified by a ManagedSystem_uuid:
API to lists persistent memory volumes that are assigned to the logical partition that are specified by a Partition_id:
API to retrieve information about a single persistent memory volume that is specified by the VirtualPersistentMemoryVolume_uid. Same API can be used to modify the volume or to remove the volume:
You can refer to the documentation https://www.ibm.com/docs/en/power9/0000-FUL?topic=system-virtual-persistent-memory-volume for more details on rest api's for managing persistent memory volumes.
- Partition which has at least one persistent memory DRAM volume, cannot be migrated.
- Memory mode of partition cannot be changed to shared from dedicated, if the partition has persistent memory DRAM volumes.
- Simplified remote restart capable partitions cannot have persistent memory volumes.
- Backup profile data will take the backup of the volume configuration and Volumes can be restored using the Restore profile data. Only volumes will be created and added to partitions, but data on the volumes cannot be restored.
Contacting the PowerVM Team
Have questions for the PowerVM team or want to learn more? Follow our discussion group on LinkedIn IBM PowerVM or IBM Community Discussions