VMware Integrated OpenStack admite la colocación con reconocimiento de acceso no uniforme a memoria (Non-Uniform Memory Access, NUMA) de las instancias de OpenStack en el entorno de vSphere subyacente.
NUMA vincula nodos pequeños y rentables mediante una conexión de alto rendimiento para proporcionar baja latencia y alta productividad. Este rendimiento a menudo es necesario para las funciones de red virtual (Virtual Network Function, VNF) de los entornos de telecomunicaciones. Para obtener información sobre NUMA en vSphere, consulte Utilizar instancias de NUMA con ESXi en Administrar recursos de vSphere.
Para obtener información sobre la configuración actual de NUMA, ejecute el siguiente comando en los hosts ESXi:
vsish -e get /net/pNics/vmnic<id>/properties | grep 'Device NUMA Node'
Requisitos previos
- Asegúrese de que las vCPU, la memoria y las NIC físicas destinadas al tráfico de máquina virtual se coloquen en el mismo nodo.
- En vSphere, cree una directiva de formación de equipos que incluya todas las NIC físicas en el nodo de NUMA. Consulte Directiva de formación de equipos y conmutación por error en Redes de vSphere.
Procedimiento
- Inicie sesión en Integrated OpenStack Manager como el usuario de
root
.
- Abra el cuadro de herramientas y establezca la contraseña de la cuenta de
admin
.
toolbox
export OS_PASSWORD=admin-account-password
- Cree una red de Neutron en la que se encuentren todas las NIC físicas en un único nodo de NUMA.
- Cree un tipo de OpenStack que incluya la propiedad
numa.nodeAffinity
.
nova flavor-key flavor-id set vmware:extra_config='{"numa.nodeAffinity": "numa-node-id"}'
- Inicie una instancia de OpenStack con el tipo y la red que creó en este procedimiento.
Instancia con varias SRIOV
Puede configurar una vNIC de máquina virtual con varias SRIOV para equilibrar la carga de trabajo en varios adaptadores de redes físicas (Physical Network Adapters, pnic) a fin de evitar la congestión del tráfico de red en un pnic mientras no hay tráfico en otro pnic. Esta aplicación puede se NUMA alineado con pnic para evitar la pérdida de rendimiento. Dos pnic funcionan como pares para redundancia de conectividad física y diferentes pares para tráfico o VLAN diferenciados.
Nota: En
VMware Integrated OpenStack 7.2, si desea especificar
nodeAffinity, debe establecerla en Tipo. No se puede configurar después de crear la instancia. Además, si ya se especificó
numa.nodeAffinity
en el tipo, eso anula el ajuste NUMA de pnic.
Los siguientes pasos describen el procedimiento para crear una instancia con varias SRIOV:
- Configure
nova-compute.conf
.
Para la definición de PCI en el CR de proceso para Nova, puede utilizar el siguiente formato para introducir el contenido en la sección
values
:
'{"address": "<PCI address of vmnicX>", "product_id": "*", "vendor_id": "*", "physical_network":"<uuid of vlan transport zone of provider-networkA>"}'
viocli update novacompute <nova-compute-cr-name>
conf:
nova_compute:
DEFAULT:
......
pci:
passthrough_whitelist:
type: multistring
values:
- '{"address": "0000:1a:00.0", "product_id": "*", "vendor_id": "*", "physical_network":"bf86b52f-a629-4c07-a8bd-14b4b46ba384"}'
- '{"address": "0000:5e:00.1", "product_id": "*", "vendor_id": "*", "physical_network":"c12a7025-22bc-403c-8ff9-9a25a236704a"}'
- '{"address": "0000:d8:00.0", "product_id": "*", "vendor_id": "*", "physical_network":"801cd687-b65b-449c-9892-c22647851bf3"}'
- '{"address": "0000:d8:00.1", "product_id": "*", "vendor_id": "*", "physical_network":"7ab64053-9e48-416d-8b1e-80e1fccd3dcd"}'
- Cree la red y la subred del proveedor.
neutron --insecure net-create 3158-net --provider:network_type vlan --provider:physical_network c12a7025-22bc-403c-8ff9-9a25a236704a --provider:segmentation_id 3158
openstack --insecure subnet create --network 3158-net --allocation-pool start=172.17.2.1,end=172.17.2.254 --gateway 172.17.0.1 --subnet-range 172.17.0.0/22 3158-subnet
- Cree puertos de SRIOV.
neutron --insecure port-create 3158-net --name 3158-p1 --vnic_type direct
neutron --insecure port-create 3158-net --name 3158-p2 --vnic_type direct
neutron --insecure port-create 3158-net --name 3158-p3 --vnic_type direct
- Inicie una instancia con el puerto especificado. Puede ver que el adaptador de red se agregó a la máquina virtual y que está conectado a
vmnic2
nova boot --flavor m1.tiny --image a133ffd7-1601-42e5-a66f-1eb6130db093 --nic port-id=031e14e3-cf06-40e1-addf-3f13f5b5da66 --nic port-id=25c6ce90-2cff-4189-ae21-abc27a131ae7 <vm-name>