Puede configurar un puerto para permitir el acceso directo de SR-IOV y, a continuación, crear instancias de OpenStack que usen adaptadores de red física.

Si desea crear varios puertos con diferentes NIC físicas de SR-IOV a fin de proporcionar redundancia de red para una máquina virtual, siga los pasos opcionales del siguiente procedimiento.

Requisitos previos

  • Habilite SR-IOV en vSphere. Consulte Habilitar SR-IOV en un adaptador físico de host en Redes de vSphere.
  • Cree un clúster de proceso dedicado para los dispositivos de SR-IOV. Las reglas de DRS no se aplican a estos dispositivos.
  • Para mantener la persistencia de la dirección MAC de un dispositivo físico, agregue su clúster como un nodo informático antes de habilitar el acceso directo en el dispositivo. Si ya se habilitó el acceso directo, puede deshabilitarlo, reiniciar el clúster y volver a habilitar el acceso directo.
  • Habilite las funciones de VMware Integrated OpenStack Carrier Edition. Consulte Habilitar funciones de Carrier Edition.

Procedimiento

  1. Inicie sesión en Integrated OpenStack Manager como el usuario de root.
    ssh root@mgmt-server-ip
  2. Edite la configuración de proceso para Nova.
    viocli update nova-compute
  3. Añada la siguiente información en la sección nova_compute.
    pci:
      passthrough_whitelist:
        type: multistring
        values:
        - '{"product_id": "*", "vendor_id": "*", "physical_network": "*"}'
    
  4. 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 de SR-IOV.
  5. Abra el cuadro de herramientas y establezca la contraseña de la cuenta de admin.
    toolbox
    export OS_PASSWORD=admin-password
  6. (opcional) Si desea configurar la redundancia de puertos, cree un tipo de máquina virtual con la propiedad de aislamiento.
    La propiedad de aislamiento garantiza que los puertos de SR-IOV se creen con diferentes NIC físicas en el host del servidor ESXi según sea necesario para la redundancia de puertos.
    openstack flavor set <FLAVOR_ID> --property group_policy=isolate
    FLAVOR_ID es el UUID del tipo de Nova que se utilizará para las máquinas virtuales con puertos de SR-IOV aislados.
  7. Cree una red de proveedor para los dispositivos de SR-IOV.
    • Para las implementaciones de NSX Data Center for vSphere, cree una VLAN o una red de grupo de puertos.
    • Para las implementaciones de NSX-T Data Center, cree una VLAN o una red opaca.
    • Para las implementaciones de DVS, cree una red VLAN.
    neutron net-create network-name --tenant-id project-uuid --provider:network_type {vlan | portgroup | nsx-net} --provider:physical_network physical-id [--provider:segmentation_id vlan-id]
    Opción Descripción
    network-name

    Introduzca un nombre para la red.

    --tenant-id

    Especifique el UUID del proyecto para el que se va a crear el puerto. Puede encontrar el UUID de un proyecto ejecutando el comando openstack project list.

    --provider:network_type

    Introduzca vlan para una red VLAN, portgroup para una red de grupo de puertos o nsx-net para una red opaca.

    --provider:physical_network
    • Para una red VLAN en NSX Data Center for vSphere, especifique el MOID del conmutador distribuido.
    • Para una red VLAN en NSX-T Data Center, especifique el UUID de la zona de transporte VLAN.
    • Para una red VLAN en una implementación de DVS, especifique el nombre del conmutador virtual distribuido.
    • Para una red de grupo de puertos, especifique el nombre del grupo de puertos. El nombre de red debe coincidir con el nombre del grupo de puertos.
    • Para una red opaca, especifique el UUID del conmutador lógico.
    --provider:segmentation_id

    Si desea crear una red basada en VLAN, introduzca el identificador de VLAN.

  8. Cree una subred en la red externa.
    neutron subnet-create network-id --tenant-id project-uuid --name subnet-name
    Opción Descripción
    network-id

    Especifique el UUID de la red en la que se va a crear la subred. Puede encontrar el UUID de una red ejecutando el comando openstack network list.

    --tenant-id

    Especifique el UUID del proyecto para el que se va a crear la subred.

    --name

    Introduzca un nombre para la subred.

  9. Cree un puerto habilitado para acceso directo mediante el parámetro --vnic_type direct.
    neutron port-create network-id --tenant-id project-uuid --name port-name --vnic_type direct
    Opción Descripción
    network-id

    Especifique el UUID de la red en la que se va a crear el puerto. Puede encontrar el UUID de una red ejecutando el comando openstack network list.

    --tenant-id

    Especifique el UUID del proyecto para el que se va a crear el puerto.

    --name

    Introduzca un nombre para el puerto.

    Nota: La seguridad del puerto no es compatible con puertos habilitados para acceso directo, y se deshabilita automáticamente para el puerto que se creó.
    Para que la instancia de OpenStack tenga acceso a los adaptadores de red física, configure la instancia con este único puerto. O bien, para implementar una máquina virtual con varios puertos que proporcionen redundancia, anote el identificador de puerto en los resultados y repita este paso para crear un segundo puerto directo.
  10. (opcional) Implemente una máquina virtual con el tipo de máquina virtual y dos puertos directos.
    nova boot --flavor <FLAVOR_ID> --image <IMAGE_ID> --nic port-id=<port1-id> --nic port-id=<port2-id> <VM_NAME>
    Opción Descripción
    FLAVOR_ID

    Especifique el tipo creado en Paso 6.

    --nic

    Introduzca el identificador de puerto creado con cada puerto directo.