VMware Integrated OpenStack unterstützt NUMA-basierte (Non-Uniform Memory Access, nicht einheitlicher Speicherzugriff) Platzierung von OpenStack-Instanzen in der zugrundeliegenden vSphere-Umgebung.

Wichtig: Diese Funktion wird nur in der VMware Integrated OpenStack Carrier Edition angeboten. Weitere Informationen finden Sie unter VMware Integrated OpenStack-Lizenzierung.

NUMA verknüpft kleine kostengünstige Knoten mithilfe einer Hochleistungsverbindung, um geringe Latenz und hohen Durchsatz bereitzustellen. Diese Leistung wird häufig für virtuelle Netzwerkfunktionen (VNFs) in Telekommunikationsumgebungen benötigt. Weitere Informationen zu NUMA in vSphere finden Sie unter Verwenden von NUMA-Instanzen mit ESXi in vSphere-Ressourcenverwaltung.

Führen Sie folgenden Befehl auf Ihren ESXi-Hosts aus, um Informationen zu Ihrer aktuellen NUMA-Konfiguration zu erhalten:

vsish -e get /net/pNics/vmnic<id>/properties | grep 'Device NUMA Node'

Voraussetzungen

  • Stellen Sie sicher, dass für den VM-Datenverkehr vorgesehene vCPUs, Arbeitsspeicher und physische Netzwerkkarten auf demselben Knoten platziert werden.
  • Erstellen Sie in vSphere eine Teaming-Richtlinie, die alle physischen Netzwerkkarten auf dem NUMA-Knoten umfasst. Weitere Informationen finden Sie unter Teaming- und Failover-Richtlinie in vSphere-Netzwerk.

Prozedur

  1. Melden Sie sich beim Integrated OpenStack Manager als root-Benutzer an.
    ssh root@mgmt-server-ip
  2. Öffnen Sie die Toolbox und legen Sie das Kennwort für das admin-Konto fest.
    toolbox
    export OS_PASSWORD=admin-account-password
  3. Erstellen Sie ein Neutron-Netzwerk, in dem sich alle physischen Netzwerkkarten auf einem einzelnen NUMA-Knoten befinden.
  4. Erstellen Sie einen OpenStack-Typ, der die Eigenschaft numa.nodeAffinity enthält.
    nova flavor-key flavor-id set vmware:extra_config='{"numa.nodeAffinity": "numa-node-id"}'
  5. Starten Sie eine OpenStack-Instanz, indem Sie den Typ und das Netzwerk verwenden, die in diesem Verfahren erstellt wurden.

    Instanz mit mehreren SRIOVs

    Sie können zur Verteilung der Arbeitslast auf mehreren physischen Netzwerkadaptern (pNIC) VM-vNICs mit mehreren SRIOVs konfigurieren, um eine Überlastung des Netzwerkdatenverkehrs auf einem pNIC zu vermeiden, während es auf einem anderen pNIC keinen Datenverkehr gibt. Diese Anwendung kann NUMA-ausgerichtet mit pNIC sein, um einen Leistungsverlust zu vermeiden. Zwei pNICs fungieren als Paare für die Redundanz der physischen Konnektivität und es gibt verschiedene Paare für unterschiedlichen Datenverkehr oder unterschiedliche VLANs.
    Hinweis: Wenn Sie in VMware Integrated OpenStack 7.2 den Parameter nodeAffinity angeben möchten, müssen Sie ihn im Typ festlegen. Sie können die Instanz nach ihrer Erstellung nicht konfigurieren. Wenn also numa.nodeAffinity bereits im Typ angegeben ist, wird die NUMA-Einstellung von pNIC überschrieben.
    In den folgenden Schritten wird die Vorgehensweise zum Erstellen einer Instanz mit mehreren SRIOVs beschrieben:
    • Konfigurieren Sie nova-compute.conf.
      Für die PCI-Definition in Nova Compute CR können Sie das folgende Format verwenden, um den Inhalt in den Abschnitt values einzugeben:
      '{"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"}'
    • Erstellen Sie ein Anbieternetzwerk und -subnetz.
      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
      
    • Erstellen Sie SRIOV-Ports.
      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
    • Starten Sie eine Instanz mit dem angegebenen Port. Sie können den Netzwerkadapter sehen, der der virtuellen Maschine hinzugefügt wurde und mit vmnic2 verbunden ist.
      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>