Sie können einen Port konfigurieren, um SR-IOV-Passthrough zuzulassen, und anschließend OpenStack-Instanzen erstellen, die physische Netzwerkadapter verwenden.

Wenn Sie mehrere Ports mit unterschiedlichen physischen SR-IOV-Netzwerkkarten erstellen möchten, um Netzwerkredundanz für eine VM bereitzustellen, führen Sie die optionalen Schritte im folgenden Verfahren durch.

Voraussetzungen

  • Aktivieren Sie SR-IOV in vSphere. Weitere Informationen finden Sie unter „Aktivieren von SR-IOV auf einem physischen Hostadapter“ in vSphere-Netzwerk.
  • Erstellen Sie einen dedizierten Computing-Cluster für SR-IOV-Geräte. DRS-Regeln gelten nicht für diese Geräte.
  • Zum Beibehalten der MAC-Adresse eines physischen Geräts fügen Sie den zugehörigen Cluster vor dem Aktivieren von Passthrough auf dem Gerät als Computing-Knoten hinzu. Wenn Passthrough bereits aktiviert wurde, können Sie es deaktivieren, den Cluster neu starten und direktes Passthrough erneut aktivieren.
  • Aktivieren Sie die Funktionen von VMware Integrated OpenStack Carrier Edition. Weitere Informationen finden Sie unter „Aktivieren von Carrier Edition-Funktionen“ im Installations- und Konfigurationshandbuch für VMware Integrated OpenStack.

Prozedur

  1. Melden Sie sich beim Integrated OpenStack Manager als root-Benutzer an.
    ssh root@mgmt-server-ip
  2. Bearbeiten Sie die Nova Compute-Konfiguration.
    viocli update nova-compute
  3. Fügen Sie die folgenden Angaben im Abschnitt nova_compute hinzu.
    pci:
      passthrough_whitelist:
        type: multistring
        values:
        - '{"product_id": "*", "vendor_id": "*", "physical_network": "*"}'
    
  4. Wenn Sie eine DVS- oder NSX-T Data Center-Bereitstellung verwenden, fügen Sie den Parameter dvs_moid im Abschnitt vmware hinzu.
    dvs_moid: sriov-vds-moid
    Legen Sie den Wert von dvs_moid auf den MOID (Managed Object Identifier) des Distributed Switch fest, der dem Computing-Cluster für SR-IOV-Geräte zugeordnet ist.
  5. Öffnen Sie die Toolbox und legen Sie das Kennwort für das admin-Konto fest.
    toolbox
    export OS_PASSWORD=admin-password
  6. (Optional) Wenn Sie Portredundanz konfigurieren möchten, erstellen Sie einen VM-Typ mit der Eigenschaft „isolate“.
    Die Eigenschaft „isolate“ stellt sicher, dass die SR-IOV-Ports nach verschiedenen physischen Netzwerkkarten auf dem ESXi-Serverhost vorhanden sind, wie für Portredundanz erforderlich.
    openstack flavor set <FLAVOR_ID> --property group_policy=isolate
    FLAVOR_ID ist die UUID des Nova-Typs, der für die VMs mit isolierten SR-IOV-Ports verwendet werden soll.
  7. Erstellen Sie ein Provider-Netzwerk für SR-IOV-Geräte.
    • Erstellen Sie für NSX Data Center for vSphere-Bereitstellungen ein VLAN- oder Portgruppennetzwerk.
    • Erstellen Sie für NSX-T Data Center-Bereitstellungen ein VLAN- oder Opaque-Netzwerk.
    • Erstellen Sie für DVS-Bereitstellungen ein VLAN-Netzwerk.
    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]
    Option Beschreibung
    network-name

    Geben Sie einen Namen für das Netzwerk ein.

    --tenant-id

    Geben Sie die UUID des Projekts an, für das der Port erstellt werden soll. Sie können mithilfe des Befehls openstack project list nach der UUID eines Projekts suchen.

    --provider:network_type

    Geben Sie vlan für ein VLAN-Netzwerk, portgroup für ein Portgruppennetzwerk oder nsx-net für ein Opaque-Netzwerk ein.

    --provider:physical_network
    • Geben Sie für ein VLAN-Netzwerk in NSX Data Center for vSphere den MOID des Distributed Switch an.
    • Geben Sie für ein VLAN-Netzwerk in NSX-T Data Center die UUID der VLAN-Transportzone an.
    • Geben Sie für ein VLAN-Netzwerk in einer DVS-Bereitstellung den Namen des Distributed vSwitch (DVS) an.
    • Geben Sie für ein Portgruppennetzwerk den Namen der Portgruppe an. Der Netzwerkname muss mit dem Portgruppennamen übereinstimmen.
    • Geben Sie für ein Opaque-Netzwerk die UUID des logischen Switches an.
    --provider:segmentation_id

    Geben Sie die VLAN-ID ein, wenn Sie ein VLAN-basiertes Netzwerk erstellen möchten.

  8. Erstellen Sie ein Subnetz im Netzwerk.
    neutron subnet-create network-id --tenant-id project-uuid --name subnet-name
    Option Beschreibung
    network-id

    Geben Sie die UUID des Netzwerks an, in dem das Subnetz erstellt werden soll. Sie können nach der UUID eines Netzwerks suchen, indem Sie den Befehl openstack network list ausführen.

    --tenant-id

    Geben Sie die UUID des Projekts an, für das das Subnetz erstellt werden soll.

    --name

    Geben Sie einen Namen für das Subnetz ein.

  9. Erstellen Sie mithilfe des --vnic_type direct-Parameters einen Port mit aktiviertem Passthrough.
    neutron port-create network-id --tenant-id project-uuid --name port-name --vnic_type direct
    Option Beschreibung
    network-id

    Geben Sie die UUID des Netzwerks an, in dem der Port erstellt werden soll. Sie können nach der UUID eines Netzwerks suchen, indem Sie den Befehl openstack network list ausführen.

    --tenant-id

    Geben Sie die UUID des Projekts an, für das der Port erstellt werden soll.

    --name

    Geben Sie einen Namen für den Port ein.

    Hinweis: Portsicherheit wird für Ports mit aktiviertem Passthrough nicht unterstützt und für den erstellten Port automatisch deaktiviert.
    Um Ihrer OpenStack-Instanz Zugriff auf physische Netzwerkadapter zu gewähren, konfigurieren Sie Ihre Instanz mit diesem einzelnen Port. Oder notieren Sie sich zur Bereitstellung einer VM mit mehreren Ports, die Redundanz bieten, die Port-ID in der Ausgabe und wiederholen Sie diesen Schritt, um einen zweiten direkten Port zu erstellen.
  10. (Optional) Stellen Sie eine VM mit dem VM-Typ und zwei direkten Ports bereit.
    nova boot --flavor <FLAVOR_ID> --image <IMAGE_ID> --nic port-id=<port1-id> --nic port-id=<port2-id> <VM_NAME>
    Option Beschreibung
    FLAVOR_ID

    Geben Sie den in Schritt 6 erstellten Typ an.

    --nic

    Geben Sie die für jeden direkten Port erstellte Port-ID ein.