Persistent memory virtualization API

Persistent memory virtualization is a PowerVM® feature that allows you to create persistent memory volumes by using Dynamic Random Access Memory (DRAM) modules within IBM POWER9 and later servers.

Persistent memory virtualization API options

Table 1. Options for the clone virtual machine API
Method URI Description

POST

/v2.1/{tenant_id}/servers/{server_uuid}/action

Performs the following tasks on virtual machine:
  • Adds persistent memory volume
  • Deletes persistent memory volume
  • Adds persistent memory volume with aggregated memory
  • Deletes persistent memory volume with aggregated memory

GET

/v2.1/{tenant_id}/servers/{server_uuid}

Gets a server call with persistent memory volumes details.

GET

/v2.1/{tenant_id}/servers/detail

Gets all the servers call with persistent memory volumes details.

GET

/v2.1/{tenant_id}/servers?pmem_vol=true

Gets the list of servers that has persistent memory volumes with details.

GET

/v2.1/{tenant_id}/servers/detail?pmem_vol=true

This query parameter is applicable for detail call and lists additional server details.

GET

/v2.1/{tenant_id}/pmem_vol

Lists all the persistent memory volumes that are present on a workspace.

GET

/v2.1/{tenant_id}/pmem_vol?all_tenants=true

Lists all the persistent memory volumes across all the workspace.

PUT

/v2.1/{tenant_id}/pmem_vol/{pmem_vol_uuid}

Renames the persistent memory volume.

Add persistent memory volume API

This operation creates a persistent memory volume of the virtual machine. This API takes persistent memory volume as shown in the request parameter.

Response codes
  • Normal response code - Accepted (202)
  • Error response code - Bad Request (400), Forbidden (403), Not Found (404), Unauthorized (401), Conflict (409)
Request parameters
Table 2. Parameters in the request for adding persistent memory volume API
Name Style Type Description

name

Body

String

New persistent memory volume name. Persistent memory volume name must be unique.

size

Body

Integer

Size in MB

affinity

Body

Boolean

Affinity can be enable or disable.

device

Body

String

Name of the device

Request example
{
   "add-pmem-vol":[
      {
         "name":”pmem_vol1”,
         "size":1024,
         "affinity":"True",
         "device":"”DRAM”"
      },
      {
         "name":”pmem_vol2”,
         "size":1024,
         "affinity":"True",
         "device":"”DRAM”"
      }
   ]
}
Response example
{
	"pmem_vol": [
		{
			"created_at": "2025-10-21T15:06:54.738646",
			"uuid": "22f987ae-928e-4c75-84f5-b23cf6f6c4d9",
			"name": "pmem_vol1",
			"size": 1024,
			"affinity": "true",
			"type": "DRAM",
			"status": "CONFIGURING"
		},
		{
			"created_at": "2025-10-21T15:06:54.756241",
			"uuid": "2150eb7a-f99e-485e-9831-bd89db84e58b",
			"name": "pmem_vol2",
			"size": 1024,
			"affinity": "true",
			"type": "DRAM",
			"status": "CONFIGURING"
		}
	]
}

Delete persistent memory volume API

This operation deletes a persistent memory volume of the virtual machine. This API takes persistent memory volume as shown in the request parameter. This API does not return any response body.

Response codes
  • Normal response code - Accepted (202)
  • Error response code - Bad Request (400), Forbidden (403), Not Found (404), Unauthorized (401), Conflict (409)
Request body
Table 3. Parameters in the request for deleting persistent volume API
Name Style Type Description

volume_uuid

Body

String

Persistent memory volume ID that is retrieved from PHYP.

uuid

Body

String

Persistent memory volume ID that is generated by PowerVC.

Request example
{ “del-pmem-vol”:[{"volume_uuid":"uuid"}]}

or

{ “del-pmem-vol”:[{"uuid":"uuid"}]}

Add persistent memory volume with aggregated memory API

This operation creates a persistent memory volume with aggregated memory of the virtual machine. This API takes persistent memory volume as shown in the request parameter.

Response codes
  • Normal response code - Accepted (202)
  • Error response code - Bad Request (400), Forbidden (403), Not Found (404), Unauthorized (401), Conflict (409)
Request parameters
Table 4. Parameters in the request for adding persistent memory volume with aggregated memory API
Name Style Type Description

name

Body

String

New persistent memory volume name. Persistent memory volume name must be unique.

size

Body

Integer

Size in MB

affinity

Body

Boolean

Affinity can be enable or disable.

device

Body

String

Name of the device

Request example
"resize": {
   "add-pmem-vol":[
      {
         "name":”pmem_vol1”,
         "size":1024,
         "affinity":"True",
         "device":"”DRAM”"
      },
      {
         "name":”pmem_vol2”,
         "size":1024,
         "affinity":"True",
         "device":"”DRAM”"
      }
   ]
}
Response example
{
	"pmem_vol": [
		{
			"created_at": "2025-10-21T15:06:54.738646",
			"uuid": "22f987ae-928e-4c75-84f5-b23cf6f6c4d9",
			"name": "pmem_vol1",
			"size": 1024,
			"affinity": "true",
			"type": "DRAM",
			"status": "CONFIGURING"
		},
		{
			"created_at": "2025-10-21T15:06:54.756241",
			"uuid": "2150eb7a-f99e-485e-9831-bd89db84e58b",
			"name": "pmem_vol2",
			"size": 1024,
			"affinity": "true",
			"type": "DRAM",
			"status": "CONFIGURING"
		}
	]
}

Delete persistent memory volume with aggregated memory API

This operation deletes a persistent memory volume with aggregated memory of the virtual machine. This API takes persistent memory volume as shown in the request parameter. This API does not return any response body.

Response codes
  • Normal response code - Accepted (202)
  • Error response code - Bad Request (400), Forbidden (403), Not Found (404), Unauthorized (401), Conflict (409)
Request body
Table 5. Parameters in the request for deleting persistent volume with aggregated memory API
Name Style Type Description

uuid

Body

String

Persistent memory volume ID that is generated by PowerVC.

Request example
{ “resize”: { “del-pmem-vol”:[{"uuid":"uuid"}]}”

Rename persistent volume API

This operation renames a persistent memory volume of the virtual machine. This API takes persistent memory volume as shown in the request parameter. This API does not return any response body.

Response codes
  • Normal response code - OK (200)
  • Error response code - Bad Request (400), Forbidden (403), Not Found (404), Unauthorized (401), Conflict (409)
Request body
Table 6. Parameters in the request for renaming persistent volume API
Name Style Type Description

name

Body

String

New persistent memory volume name. Persistent memory volume name must be unique.

Request example
{
"update-pmem-vol": {
"name": "new_name"
}
}
Response example
{
	"pmem_vol": {
		"created_at": "2025-11-17T05:16:59.000000",
		"uuid": "985d8e48-3ecb-4cca-b469-b52c641b2dfa",
		"name": "new_name",
		"size": 1024,
		"affinity": "false",
		"type": "DRAM",
		"volume_uuid": "3F1CD829-17D6-4D7A-8EA9-3AF5EE1EBEFE",
		"status": "ACTIVE"
	}
}

The persistent memory virtualization APIs take extra request body attributes to store persistent memory volumes. For details, see Flavors extra-specs