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 crea una instancia con un adaptador de red SRIOV, esa instancia se ubica automáticamente en el mismo nodo NUMA del pnic de la SRIOV si no se especifica numa.nodeAffinity en el tipo. Si ya se especificó numa.nodeAffinity en el tipo, eso anula la configuración de NUMA de pnic.
  • Con esta función, puede especificar a qué PF de SRIOV se puede conectar el puerto de SRIOV. Puede ver la información de asignación definida en nova_compute/pci/passthrough_whitelist. El puerto de SRIOV de la red física se puede vincular a la PF de SRIOV especificada por la dirección.
  • No se puede cambiar el número de VF en ESXi después de la implementación. Si desea aumentar el número de VF, debe reiniciar el pod de proceso para Nova correspondiente. No hay compatibilidad para la reducción del número de VF en VMware Integrated OpenStack.

Procedimiento

  1. 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-network>"}'  
    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"}'
    Si utiliza una implementación de DVS o de NSX-T Data Center, agregue el parámetro dvs_moid en la sección vmware.
    dvs_moid: sriov-vds-moid

    Establezca el valor de dvs_moid como el identificador de objeto administrado (Managed Object Identifier, MOID) del conmutador distribuido asociado con el clúster de proceso para dispositivos SRIOV.

  2. 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
    
  3. 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
  4. 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>