Puede configurar un puerto para permitir el acceso directo de DirectPath I/O o de SR-IOV y, a continuación, crear instancias de OpenStack que usen interfaces de hardware físico.

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.

Este procedimiento utiliza OpenStack Neutron para habilitar el acceso directo de dispositivos de redes. Para los dispositivos que no sean de redes, consulte Configurar el acceso directo para los dispositivos que no sean de redes.

Requisitos previos

  • Habilite SR-IOV o DirectPath I/O en 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.

Procedimiento

  1. Inicie sesión en Servidor de administración de OpenStack como viouser.
  2. Si utiliza una implementación de NSX-T Data Center, especifique un conmutador distribuido para cada clúster de proceso en el que se habilita SR-IOV.
    1. Si la implementación no utiliza un archivo custom.yml, copie el archivo de plantilla custom.yml en el directorio /opt/vmware/vio/custom.
      sudo mkdir -p /opt/vmware/vio/custom
      sudo cp /var/lib/vio/ansible/custom/custom.yml.sample /opt/vmware/vio/custom/custom.yml
    2. Abra el archivo /opt/vmware/vio/custom/custom.yml en un editor de texto.
    3. Quite la marca de comentario del parámetro nova_dvs_moid.
    4. Especifique el nombre DNS de cada controlador informático en la implementación y el identificador de objeto administrado (Managed Object Identifier, MOID) de la instancia de VDS asociada a él.

      Por ejemplo:

      nova_dvs_moid:
         compute01: dvs-35
         compute02: dvs-36

      Tenga en cuenta que hay tres espacios antes del nombre de cada controlador informático.

    5. Implemente la configuración actualizada.
      sudo viocli deployment configure

      Al implementar la configuración, se interrumpen brevemente los servicios de OpenStack.

  3. Cambie al usuario root y cargue el archivo de credenciales del administrador de nube.
    sudo su -
    source ~/cloudadmin.rc
  4. 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.

    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 identificador de objeto administrado (Managed Object Identifier, 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 de grupo de puertos, especifique el MOID 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.

  5. Cree un puerto habilitado para acceso directo.
    neutron port-create network-id --tenant-id project-uuid --name port-name --vnic_type {direct | direct-physical}

    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.

    --vnic_type

    Introduzca direct para SR-IOV o direct-physical para el acceso directo.

    Nota:

    La seguridad del puerto no es compatible con los puertos direct y direct-physical, y se deshabilitará automáticamente para el puerto que se creó.

Resultados

Ahora puede implementar máquinas virtuales habilitadas para acceso directo configurándolas con el puerto que creó durante este procedimiento.