Add parameters for vPMEM features
This change adds two new parameters to manage vPMEM configuration option and PMEM namespaces on the host server. * `NovaPMEMMappings` sets Nova's `pmem_namespaces` conf option. * `NovaPMEMNamespaces` creates PMEM namespaces on the host using `ndctl` tool and ansible tripleo_nvdimm role. Depends-On: https://review.opendev.org/717158 Change-Id: I270cb624a33a739aa06bba5e4faee4b01fb3cfb3 Closes-Bug: #1870455
This commit is contained in:
parent
29a7fb84ce
commit
9001136dd9
|
@ -397,6 +397,30 @@ parameters:
|
|||
default: -1
|
||||
tags:
|
||||
- role_specific
|
||||
NovaPMEMMappings:
|
||||
type: string
|
||||
description: >
|
||||
PMEM namespace mappings as backend for vPMEM feature. This parameter
|
||||
sets Nova's `pmem_namespaces` configuration options. PMEM namespaces
|
||||
needs to be create manually or with conjunction with `NovaPMEMNamespaces`
|
||||
parameter.
|
||||
Requires format: $LABEL:$NSNAME[|$NSNAME][,$LABEL:$NSNAME[|$NSNAME]].
|
||||
default: ""
|
||||
tags:
|
||||
- role_specific
|
||||
NovaPMEMNamespaces:
|
||||
type: string
|
||||
description: >
|
||||
Creates PMEM namespaces on the host server using `ndctl` tool
|
||||
through Ansible.
|
||||
Requires format: $SIZE:$NSNAME[,$SIZE:$NSNAME...].
|
||||
$SIZE supports the suffixes "k" or "K" for KiB, "m" or "M" for MiB, "g"
|
||||
or "G" for GiB and "t" or "T" for TiB.
|
||||
NOTE: This requires properly configured NVDIMM regions and enough space
|
||||
for requested namespaces.
|
||||
default: ""
|
||||
tags:
|
||||
- role_specific
|
||||
|
||||
# DEPRECATED: the following options are deprecated and are currently maintained
|
||||
# for backwards compatibility. They will be removed in future release.
|
||||
|
@ -494,6 +518,8 @@ resources:
|
|||
nova::ram_allocation_ratio: NovaRAMAllocationRatio
|
||||
nova::disk_allocation_ratio: NovaDiskAllocationRatio
|
||||
nova::compute::max_disk_devices_to_attach: NovaMaxDiskDevicesToAttach
|
||||
nova::compute::libvirt::pmem_namespaces: NovaPMEMMappings
|
||||
nova_pmem_namespaces: NovaPMEMNamespaces
|
||||
- values: {get_param: [RoleParameters]}
|
||||
- values:
|
||||
NovaVcpuPinSet: {get_param: NovaVcpuPinSet}
|
||||
|
@ -566,6 +592,8 @@ resources:
|
|||
NovaRAMAllocationRatio: {get_param: NovaRAMAllocationRatio}
|
||||
NovaDiskAllocationRatio: {get_param: NovaDiskAllocationRatio}
|
||||
NovaMaxDiskDevicesToAttach: {get_param: NovaMaxDiskDevicesToAttach}
|
||||
NovaPMEMMappings: {get_param: NovaPMEMMappings}
|
||||
NovaPMEMNamespaces: {get_param: NovaPMEMNamespaces}
|
||||
|
||||
conditions:
|
||||
enable_instance_ha: {equals: [{get_param: EnableInstanceHA}, true]}
|
||||
|
@ -1069,6 +1097,14 @@ outputs:
|
|||
- container_cli == 'podman'
|
||||
- not container_healthcheck_disabled
|
||||
- step|int == 6 #FIXME: there is no step6
|
||||
- name: manage PMEM namespaces for vPMEM
|
||||
include_role:
|
||||
name: tripleo_nvdimm
|
||||
vars:
|
||||
tripleo_nvdimm_pmem_namespaces: {get_attr: [RoleParametersValue, value, nova_pmem_namespaces]}
|
||||
when:
|
||||
- step|int == 1
|
||||
- tripleo_nvdimm_pmem_namespaces != ''
|
||||
external_post_deploy_tasks: {get_attr: [NovaComputeCommon, nova_compute_common_deploy_steps_tasks]}
|
||||
upgrade_tasks:
|
||||
- name: Remove openstack-nova-compute and python-nova package during upgrade
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Adding two parameters to manage vPMEM [0] configuration parameters.
|
||||
`NovaPMEMMappings` parameter set Nova's configuration option
|
||||
`pmem_namespaces` that reflects mappings between vPMEM
|
||||
and physical PMEM namespaces. `NovaPMEMNamespaces` creates
|
||||
and manages physical backend PMEM namespaces which win
|
||||
be used as backend for vPMEM.
|
||||
`NovaPMEMMappings` example: 6GB:ns0|ns1|ns2,LARGE:ns3
|
||||
will expose namespaces ns0, ns1, ns2 using label `6GB`
|
||||
and namespace ns3 using label `LARGE`.
|
||||
`NovaPMEMNamespaces` example: 100G:ns0|14096M:ns1
|
||||
will create two namespaces: ns0 - size 100G, ns1 - size 14096M.
|
Loading…
Reference in New Issue