Add ability to collocate pinned and unpinned instance on same host

Add role parameter `NovaComputeCpuDedicatedSet` which allows
to set `compute/cpu_dedicated_set` parameter value to specify
list or range of physical CPU cores to reserve for allocating
PCPU resources to use for virtual machine processes.

Deprecate `NovaVcpuPinSet` option as it is deprecated from config
options in nova [1] as well.
[1] https://review.opendev.org/#/c/671793

Depends-On: I40e0ed0bba93bfcdc4cf157195c3e9fbcfce0776
Change-Id: Ibba4273526392985ede6da2ef3fec66a61407777
This commit is contained in:
Rajesh Tailor 2019-09-05 12:39:36 +05:30
parent e8211bdb7c
commit d68e709b2c
2 changed files with 50 additions and 8 deletions

View File

@ -147,20 +147,22 @@ parameters:
default: ''
tags:
- role_specific
NovaVcpuPinSet:
NovaComputeCpuSharedSet:
description: >
A list or range of physical CPU cores to reserve for virtual machine
processes.
Ex. NovaVcpuPinSet: ['4-12','^8'] will reserve cores from 4-12 excluding 8
A list or range of host CPU cores to which emulator threads can be scheduled,
if NovaVcpuPinSet is set, or to which both emulator threads and processes for
unpinned instance CPUs (VCPUs) can be scheduled, if NovaVcpuPinSet is unset.
Ex. NovaComputeCpuSharedSet: [4-12,^8,15] will reserve cores from 4-12
and 15, excluding 8.
type: comma_delimited_list
default: []
tags:
- role_specific
NovaComputeCpuSharedSet:
NovaComputeCpuDedicatedSet:
description: >
A list or range of physical CPU cores will be used for best-effort guest
vCPU resources (e.g. emulator threads in libvirt/QEMU).
Ex. NovaComputeCpuSharedSet: [4-12,^8,15] will reserve cores from 4-12
A list or range of host CPU cores to which processes for pinned instance
CPUs (PCPUs) can be scheduled.
Ex. NovaComputeCpuDedicatedSet: [4-12,^8,15] will reserve cores from 4-12
and 15, excluding 8.
type: comma_delimited_list
default: []
@ -337,6 +339,31 @@ parameters:
tags:
- role_specific
# DEPRECATED: the following options are deprecated and are currently maintained
# for backwards compatibility. They will be removed in future release.
NovaVcpuPinSet:
description: >
A list or range of host CPU cores to which processes for unpinned instance
CPUs (VCPUs) can be scheduled, if NovaCpuSharedSet is set, or to which
both emulator threads and processes for unpinned instance CPUs (VCPUs)
can be scheduled, if NovaCpuSharedSet is unset.
Ex. NovaVcpuPinSet: ['4-12','^8'] will reserve cores from 4-12 excluding 8
type: comma_delimited_list
default: []
tags:
- role_specific
parameter_groups:
- label: deprecated
description: |
The following parameters are deprecated and will be removed. They should not
be relied on for new deployments. If you have concerns regarding deprecated
parameters, please contact the TripleO development team on IRC or the
Openstack mailing list.
parameters:
- NovaVcpuPinSet
resources:
ContainersCommon:
@ -382,6 +409,7 @@ resources:
- map_replace:
- nova::compute::vcpu_pin_set: NovaVcpuPinSet
nova::compute::cpu_shared_set: NovaComputeCpuSharedSet
nova::compute::cpu_dedicated_set: NovaComputeCpuDedicatedSet
nova::compute::reserved_host_memory: NovaReservedHostMemory
nova::compute::neutron_physnets_numa_nodes_mapping: NeutronPhysnetNUMANodesMapping
nova::compute::neutron_tunnel_numa_nodes: NeutronTunnelNUMANodes
@ -409,6 +437,7 @@ resources:
- values:
NovaVcpuPinSet: {get_param: NovaVcpuPinSet}
NovaComputeCpuSharedSet: {get_param: NovaComputeCpuSharedSet}
NovaComputeCpuDedicatedSet: {get_param: NovaComputeCpuDedicatedSet}
NovaReservedHostMemory: {get_param: NovaReservedHostMemory}
NeutronPhysnetNUMANodesMapping: {get_param: NeutronPhysnetNUMANodesMapping}
NeutronTunnelNUMANodes: {get_param: NeutronTunnelNUMANodes}

View File

@ -0,0 +1,13 @@
---
features:
- |
Add new role parameter ``NovaComputeCpuDedicatedSet`` to specify
list or range of physical CPU cores to reserve to be used for
allocating PCPU resources to virtual machines.
Defaults to []
deprecations:
- |
The ``NovaVcpuPinSet`` parameter is deprecated and superseded by
``NovaComputeCpuSharedSet`` and ``NovaComputeCpuDedicatedSet``
parameters, which are used to define list or range of VCPU and PCPU
resources for virtual machine processes.