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.

Importante: Esta función solo está disponible en VMware Integrated OpenStack Carrier Edition. Para obtener más información, consulte Licencias de VMware Integrated OpenStack.

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

  1. Inicie sesión en Integrated OpenStack Manager como el usuario de root.
    ssh root@mgmt-server-ip
  2. Abra el cuadro de herramientas y establezca la contraseña de la cuenta de admin.
    toolbox
    export OS_PASSWORD=admin-account-password
  3. Cree una red de Neutron en la que se encuentren todas las NIC físicas en un único nodo de NUMA.
  4. 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"}'
  5. 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>