VMware Integrated OpenStack prend en charge le placement d'accès mémoire non uniforme (NUMA, Non-Uniform Memory Access) des instances d'OpenStack dans l'environnement vSphere sous-jacent.
NUMA permet de lier des nœuds petits et économiques à l'aide d'une connexion hautes performances pour garantir une faible latence et un débit élevé. Les environnements de télécommunications exigent souvent cette efficacité pour les fonctions de réseau virtuel (VNF, Virtual Network Functions). Pour plus d'informations à propos de NUMA dans vSphere, reportez-vous à la section Utilisation des instances NUMA avec ESXi dans Gestion des ressources vSphere.
Pour obtenir des informations sur la configuration NUMA actuelle, exécutez la commande suivante sur les hôtes ESXi :
vsish -e get /net/pNics/vmnic<id>/properties | grep 'Device NUMA Node'
Conditions préalables
- Assurez-vous que les vCPU, la mémoire et les cartes réseau physiques qui doivent servir au trafic de machine virtuelle se trouvent sur le même nœud.
- Dans vSphere, créez une stratégie d'association qui inclut toutes les cartes réseau physiques qui se trouvent sur le nœud NUMA. Reportez-vous à Stratégie d'association et de basculement dans Mise en réseau vSphere.
Procédure
- Connectez-vous à Integrated OpenStack Manager en tant qu'utilisateur
root
.
- Ouvrez la boîte à outils et définissez le mot de passe du compte
admin
.
toolbox
export OS_PASSWORD=admin-account-password
- Créez un réseau Neutron dans lequel toutes les cartes réseau physiques sont placées sur le même nœud NUMA.
- Créez un type OpenStack qui inclut la propriété
numa.nodeAffinity
.
nova flavor-key flavor-id set vmware:extra_config='{"numa.nodeAffinity": "numa-node-id"}'
- Lancez une instance d'OpenStack en utilisant le type et le réseau créés dans cette procédure.
Instance disposant de plusieurs SRIOV
Vous pouvez configurer une vNIC de machine virtuelle avec plusieurs SRIOV pour équilibrer la charge de travail sur plusieurs adaptateurs de réseau physique (pnic) afin d'éviter la congestion du trafic réseau sur un pnic sans trafic sur un autre pnic. Cette application peut être alignée sur NUMA avec le pnic pour éviter toute perte de performances. Deux pnic fonctionnent comme des paires pour la redondance de la connectivité physique et des paires différentes pour le trafic ou le VLAN différent.
Note : Dans
VMware Integrated OpenStack 7.2, si vous souhaitez spécifier
nodeAffinity, vous devez le définir dans le type. Vous ne pouvez pas effectuer la configuration après la création de l'instance. De plus, si
numa.nodeAffinity
est déjà spécifié dans le type, il remplace le paramètre NUMA de pnic.
Les étapes suivantes décrivent la procédure de création d'une instance avec plusieurs SRIOV :
- Configurez
nova-compute.conf
.
Pour la définition du PCI dans la CR de calcul Nova, vous pouvez utiliser le format suivant pour entrer le contenu dans la section
values
:
'{"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"}'
- Créez un réseau et un sous-réseau de fournisseurs.
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
- Créez des ports 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
- Lancer une instance avec le port spécifié. Vous pouvez voir l'adaptateur réseau ajouté à la machine virtuelle, et il est connecté à
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>