Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit le déploiement pas à pas de CPNR sur OpenStack Cisco Virtualized Infrastructure Manager (CVIM) à l'aide de SR-IOV et de la liaison Active-Backup.
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes
Dans l'environnement réseau actuel, les fonctions de réseau virtuel (VNF) jouent un rôle essentiel dans la mise en place de services réseau agiles, évolutifs et efficaces. Pour les VNF nécessitant une connectivité réseau hautes performances, SR-IOV est une technologie couramment utilisée. SR-IOV permet aux VNF de contourner le commutateur virtuel de l'hyperviseur et d'accéder directement aux ressources physiques du contrôleur d'interface réseau (NIC), réduisant ainsi la latence et augmentant le débit.
Avant de procéder au déploiement, assurez-vous que ces conditions préalables sont remplies.
Les cartes réseau Intel XL710 et E810CQDA2 sont couramment utilisées pour les réseaux SR-IOV hautes performances. Afin de vérifier le modèle de carte réseau sur l'hôte, référez-vous à ces étapes :
Exécutez cette commande pour répertorier les périphériques PCI (Peripheral Component Interconnect) associés aux contrôleurs réseau :
lspci | grep -i ethernet
Exemple de sortie :
81:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02)
82:00.0 Ethernet controller: Intel Corporation Ethernet Controller E810-C for QSFP (rev 03)
Si la carte réseau est Intel XL710, vous pouvez voir le contrôleur Ethernet XL710 dans la sortie.
Si la carte réseau est Intel E810CQDA2, vous pouvez voir la sortie du contrôleur Ethernet E810-Cin.
Afin de vérifier le pilote de la carte réseau en cours d'utilisation, exécutez :
ethtool -i
Exemple de sortie pour XL710 :
driver: i40e
version: 2.13.10
Exemple de sortie pour E810CQDA2 :
driver: ice
version: 1.7.12
Assurez-vous que la version du pilote correspond à la matrice de compatibilité de votre distribution OpenStack et Linux.
Assurez-vous que SR-IOV est activé dans le BIOS/UEFI des serveurs.
Intel VT-d ou AMD-Vi doivent être activés pour la fonctionnalité de transfert PCI et SR-IOV.
Assurez-vous que les services OpenStack tels que Nova, Neutron, Glance et Keystone sont installés et configurés.
Neutron doit prendre en charge Openswitch (OVS) pour les réseaux d'orchestration/gestion et SR-IOV pour les réseaux d'applications/services.
Les noeuds de calcul doivent être configurés pour prendre en charge SR-IOV, avec des fonctions virtuelles (VF) créées sur les cartes réseau.
L'image VNF CPNR doit prendre en charge les interfaces SR-IOV et inclure les pilotes nécessaires.
Assurez-vous que l'image CPNR VNF est disponible dans OpenStack Glance.
Assurez l'accès à l'interface de ligne de commande OpenStack pour créer des réseaux, des saveurs et lancer le VNF.
Accès racine ou administratif pour configurer la mise en réseau sur l'hôte Linux et au sein du VNF.
SRIOV
Voici un exemple de code XML de Cisco Elastic Services Controller (ESC), démontrant le déploiement d'une machine virtuelle (VM) à l'aide de la mise en réseau SR-IOV (avec type>direct</type>) pour un locataire nommé test-tenant et une VM nommée sriov-vm-1. Cela inclut plusieurs interfaces, y compris les interfaces SR-IOV (directes) :
test-tenant
true
false
sriov-vm-deployment
sriov-vm-1-group
vim1
default
sriov-image
custom-flavor
300
30
REBOOT_ONLY
0
mgmt-net
192.168.10.101
1
direct
sriov-net-1
0
sriov-subnet-1
10.10.10.10
2
direct
sriov-net-2
0
sriov-subnet-2
10.10.20.10
1
1
false
--user-data
file://tmp/init/sriov-vm-1.cfg
type>direct</type> sous <interface> active SR-IOV (PCI passthrough) pour cette carte réseau.
Chaque interface SR-IOV possède son propre réseau et sous-réseau.
Vous pouvez associer IPv4/IPv6 dans <adresses> selon les besoins.
Exemple de fichier Day0 à transmettre sur le fichier XML Cisco ESC :
Content-Type: multipart/mixed; boundary="===============2678395050260980330=="
MIME-Version: 1.0`
--===============2678395050260980330==
MIME-Version: 1.0
Content-Type: text/cloud-boothook; charset="us-ascii"
#cloud-boothook
#!/bin/bash
if [ ! -f /etc/cloud/cloud.cfg.orig ]; then
cp /etc/cloud/cloud.cfg /etc/cloud/cloud.cfg.orig
cp /etc/cloud/cloud.cfg.norootpasswd /etc/cloud/cloud.cfg
fi
--===============2678395050260980330==
MIME-Version: 1.0
Content-Type: text/cloud-config; charset="us-ascii"
#cloud-config
hostname: cpnr
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7pf8gvOWH/Zv8iAlTv6LWEiPGA3B6t96G6LwTHF6iXOqQxyIUkg8IkqZ6wNwxsDV8DYESOzFGp//aXO6wZDtoawMExe9sNEx0qVOt/ueP3IYQ8731fNJwFtWQsCQTM7VQjpcg5/d6eMxQ8zvmiIYo2huwfclE+zLdihjL/Y6v4HK760u/DQ+OaEIgqTgrwePJK5Db/gMDf+oXI9KvNxDb2vtxzroX0APEnZ9JX+Ic0JGWTkD4smMkTdWsjaqDYXqW6SUsyCc4Bf9tHL5Irr1AgUR4hEbLnbk6NlIqWrgVeI5CQVMMFpWqV0o2hyDz2rMA7tbBeYzD/ynslQAerU7DmBRb1FDVh79+JeaCNIM8EpwbCUKHT6CQAjPK8cYBieO1yEHKjHyFTsZgpvdi4rVMP+Qsvab+J5RPPcJeKj7o8KIrtyyESXbLNcZv1uGwZ8nLZKfZQSJP04HUkRKoQJ/JoMvMurEKG/cJ1VtocV4AJiRHj+367D3uzrKd6eHYlM9oD+zpPeJ1P1J2TDPUp2K7GcKCrItn9blSGo/n/+gYBO793QjSdkmc/Ag4TEVhUfG17l0WlSvAw4L0csMlYBAGGqKAUEEx3BJGYNJ851bj23m6JBe83OVWGRWrDIIE+G14/tx8qYXDaFxFUFPb2zj+gmDXq80hYpv++/yFtTocbw== cpnr@INVITN14SLM1BULD01CO
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDAmkQGCZUrYqkZ0C0J9t7mF9La9zYOqfzzFkk1wWtPga+aANOaFgjqbjj+VlBdd3zJy1p6BMWZhaZIcOh0+knCisJArcHM3HlurQZXO45zHtBcm7tB1FQ0W1HI9GbvJ+IPIe7kpPme/socd5ytTx0ZkYtlcRDDZuxTwYY4P4/vpnzXuwPS2dfcfQscubj6MkSlx4JHhc/hkDsmtJUipkWEungE/UsldjQzkj8oJorymYHQXE/czNxwzCGizK1YinhebeHFcmHd6Jcqd5oZZWnmkGKGeW6o0ddSFI5NmwzHd5RzwjztU2nqmiyOA8mu7YkCm6X82uhACwQlfY0pGRpTVkIhlf+tKDwKQRuwpcbR1ZUHmli0zi5QZtbzc31aLNlUPpR21BptS4GSfbKJaMOaDUClfe8rGk+9GCgm6wnZiT+SMa4/wEA9NILlwobrwHxVsb/kFlFKXg0aPkdvmqWPNcd09vF50enrs0aXFsqCyl6CPMJpZtGAgckvX8iU2bCJkxzD9F4rAu2D/FNb8KG5cbw7uptiwB4yoek6Q36NyxHYYJyOGiV4oQJ02T9MRPkvjLf7ASx9HA25nG+J4CZXWkuV7XYX1N5DFvOg/kwA7xMPyNgTEkblTRpIcfXU2PCWYSZcn1vYmsazf2uVCY+mjfLcvi85c/1mLnUGikiovQ== admin@invitn14slm1escx01co
runcmd:
- /usr/sbin/useradd FMLVL1 -d /home/FMLVL1 -s /bin/bash -g users; (/bin/echo changeme; /bin/echo changeme) | /usr/bin/passwd FMLVL1
- nmcli con add type ethernet con-name eth0 ifname eth0 ip4 10.xx.xx.xx/24
- nmcli con add type ethernet con-name eth1 ifname eth1 ip4 172.xx.xx.xx/23
- nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=1000,fail_over_mac=1" ipv4.addresses 'xx.xx.xx.xx/29' ipv4.gateway 'xx.xx.xx.xx' ipv4.method manual ipv6.addresses '2402:xxxx:xx:0025::5/64' ipv6.gateway '2402:xxxx:xx:0025::1' ipv6.method manual
- nmcli connection add type ethernet ifname ens6 master bond0
- nmcli connection add type ethernet ifname ens7 master bond0
- nmcli con up eth0
- nmcli con up eth1
- nmcli con up bond-slave-ens6
- nmcli con up bond-slave-ens7
- nmcli con down bond0
- nmcli con up bond0
- nmcli connection reload
- hostnamectl set-hostname CPNRDNS01CO
--===============2678395050260980330==
CPNR est une fonction de réseau virtuel (VNF) vitale qui fournit des services de gestion des adresses IP (IPAM), DHCP et DNS (Domain Name Server) pour les réseaux d'entreprise et de fournisseurs de services. Le déploiement de CPNR en tant que VNF dans OpenStack nécessite une planification minutieuse, en particulier lors de l'utilisation de ports SR-IOV, de configurations inter-NUMA, et d'une interface de liaison Active-Backup pour la redondance et les performances.
Cet article explique le processus détaillé de déploiement du VNF CPNR sur OpenStack. Elle comprend :
Sensibilisation à l'AMNUM :
Liaison Active-Backup :
Réseau OpenStack :
NUMA est une architecture de mémoire dans laquelle chaque processeur (et sa mémoire locale et ses périphériques) est regroupé en un noeud NUMA. Dans OpenStack, le positionnement compatible NUMA garantit que les VNF sont affectés de manière optimale aux ressources sur le même noeud NUMA afin de réduire la latence et d'optimiser les performances.
Les cartes réseau SR-IOV sont NUMA-Local :
Limitation du mode NUMA unique :
Le VNF CPNR nécessite l'accès à :
Dans ce déploiement, le VNF CPNR nécessite l'accès aux cartes réseau SR-IOV à partir de NUMA 0 (sriov0) et de NUMA 1 (sriov1) pour assurer la redondance et la haute disponibilité. Pour ce faire :
Conntrack est une fonctionnalité du noyau Linux utilisée pour suivre les connexions réseau, en particulier pour la traduction d'adresses de réseau (NAT) et les règles de pare-feu. Pour les ports basés sur OVS dans OpenStack, conntrack est utilisé pour gérer l'état de connexion et appliquer les règles de groupe de sécurité.
Table de suivi :
Limite par défaut :
Impact sur les ports OVS :
Augmenter la taille de la table Conntrack :
sysctl net.netfilter.nf_conntrack_max
sysctl -w net.netfilter.nf_conntrack_max=262144
echo "net.netfilter.nf_conntrack_max=262144" >> /etc/sysctl.conf
Surveiller l'utilisation du suivi :
Vérifiez les statistiques de suivi :cat /proc/sys/net/netfilter/nf_conntrack_count
Optimiser les règles de groupe de sécurité :
Réduisez le nombre de règles appliquées aux ports OVS afin de minimiser la surcharge de suivi de connexion.Les ports SR-IOV contournent le chemin de données OVS et les fonctionnalités du noyau Linux telles que conntrack. Cela supprime entièrement la surcharge de suivi de connexion.
Contrairement aux ports OVS, qui sont limités par la taille de la table conntrack (nf_contrack_max), les ports SR-IOV peuvent traiter un nombre pratiquement illimité de connexions.
En déchargeant le traitement des paquets sur le matériel de la carte réseau, les ports SR-IOV éliminent la latence introduite par le traitement logiciel contrack.
Le mode de liaison Active-Backup est particulièrement bien adapté à ce déploiement en raison de sa simplicité, de sa tolérance aux pannes et de sa compatibilité avec les interfaces SR-IOV. Voici pourquoi :
Le mode de sauvegarde active fonctionne indépendamment des commutateurs physiques ou du matériel sous-jacents. La logique de basculement réside entièrement dans le noyau Linux, ce qui le rend très portable et polyvalent.
Les VF SR-IOV sont liées à des cartes réseau physiques et à des noeuds NUMA spécifiques. En utilisant le mode Active-Backup, vous pouvez combiner des VF de différents noeuds NUMA dans une interface de liaison logique unique (bond0). Cela garantit une haute disponibilité tout en utilisant efficacement les ressources NUMA.
Le mode Active-Backup est l'un des modes les plus simples et les plus répandus dans le domaine de l'agrégation Linux. Il est conçu pour fournir une haute disponibilité en garantissant que le trafic continue à circuler de manière transparente même si l'une des interfaces liées échoue. Il s'agit d'une explication approfondie du fonctionnement du mode de sauvegarde active, de ses caractéristiques clés et de ses avantages.
Une interface de liaison dans Linux combine deux interfaces réseau ou plus dans une interface logique unique. Cette interface logique, appelée liaison (par exemple, liaison0), est utilisée pour fournir :
En mode de sauvegarde active, une seule interface (appelée interface active) est utilisée à un moment donné pour transmettre et recevoir du trafic. La ou les autres interfaces restent en mode veille. Si l'interface active échoue, l'une des interfaces de secours est promue à l'état active, et le trafic est automatiquement réacheminé vers la nouvelle interface active.
Interface active unique :
Basculement automatique :
Prise en charge de re-basculement :
Une fois l'interface défaillante restaurée, elle peut redevenir active automatiquement (si elle est configurée pour le faire) ou rester en mode veille, selon la configuration de liaison.Aucune configuration requise côté commutateur :
Surveillance :
du
paramètre imimon
(Media Independent Interface Monitor).Interface active :
Surveillance :
Échec de liaison sur l'interface active :
Si l'interface active (eth2) tombe en panne (par exemple, débranchement du câble, défaillance matérielle de la carte réseau ou liaison désactivée), la liaison détecte immédiatement la panne à l'aide de la surveillance mininor ARP.Basculement automatique :
Délai de basculement :
Le processus de basculement est quasi-instantané (généralement en quelques millisecondes, selon l'intervalle imino).Restauration de l'interface défaillante :
Continuité du trafic :
Le re-basculement est transparent et ne perturbe pas les flux de trafic en cours.Le mode de sauvegarde active est particulièrement adapté aux interfaces SR-IOV pour les raisons suivantes :
Exemple :
Le VNF CPNR nécessite les quatre réseaux suivants :
Déploiement pas à pas :
Réseau d'orchestration :
openstack network create --provider-network-type vxlan orchestration-network
Réseau de gestion :
openstack network create --provider-network-type vxlan management-network
Sous-réseau d'orchestration :
openstack subnet create --network orchestration-network \
--subnet-range 192.168.100.0/24 orchestration-subnet
Sous-réseau de gestion :
openstack subnet create --network management-network \
--subnet-range 10.10.10.0/24 management-subnet
Réseau 1 SR-IOV :
openstack network create --provider-network-type vlan \
--provider-physical-network sriov0 --provider-segment 101 sriov-network-1
Réseau SR-IOV 2 :
openstack network create --provider-network-type vlan \
--provider-physical-network sriov1 --provider-segment 102 sriov-network-2
Afin de s'assurer que le VNF peut accéder aux cartes réseau SR-IOV à partir des deux noeuds NUMA, créez un parfum avec la prise en charge de plusieurs NUMA :
openstack flavor create --ram 8192 --vcpus 4 --disk 40 cross-numa-flavor
Définissez les propriétés spécifiques à NUMA :
openstack flavor set cross-numa-flavor \
--property hw:numa_nodes=2 \
--property hw:cpu_policy=dedicated \
--property hw:mem_page_size=large
Après avoir lancé le VNF, configurez l'interface de liaison pour les ports SR-IOV (eth2 et eth3) sur le VNF.
Créez une interface bond (bond0) en mode Active-Backup :
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
BONDING_OPTS="mode=active-backup miimon=100"
IPADDR=172.16.1.10
NETMASK=255.255.255.0
GATEWAY=172.16.1.1
eth2 :
vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
ONBOOT=yes
MASTER=bond0
SLAVE=yes
eth3 :
vi /etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE=eth3
ONBOOT=yes
MASTER=bond0
SLAVE=yes
Redémarrez le service réseau afin d'appliquer la configuration :
systemctl restart network
Après avoir déployé le VNF, vérifiez son fonctionnement en procédant comme suit :
Vérifiez que l'instance VNF est active :
openstack server show cpnr-instance
Vérifiez que l'état est ACTIVE.
Test Ping : Vérifiez que le VNF peut communiquer sur tous les réseaux :
ping
ping
Interface de liaison :
Confirmez que bond0 est actif :
cat /proc/net/bonding/bond0
Cherchez :
Assurez-vous que le VNF utilise les ressources des deux noeuds NUMA :
nova show --human | grep numa
Surveillance et dépannage : Utilisez des outils tels que cpdumpandethtoolpour surveiller les interfaces SR-IOV.
Sécurité: Gérez soigneusement l'accès au réseau physique et appliquez un isolement strict entre les locataires.
Évolutivité : Planifiez la capacité physique de la carte réseau lors de l'évolution des déploiements SR-IOV, car le nombre de VF disponibles est limité par le matériel de la carte réseau.
Si le déploiement ne fonctionne pas comme prévu, reportez-vous aux étapes de dépannage suivantes :
dmesg | grep -i "SR-IOV"
lspci | grep Ethernet
Si le VNF ne peut pas accéder aux deux cartes réseau, assurez-vous que le mode Cross-NUMA est activé :
openstack flavor show cross-numa-flavor
cat /proc/net/bonding/bond0
systemctl restart network
openstack port list --server cpnr-instance
ip addr show
Le déploiement de VNF CPNR sur OpenStack avec des ports SR-IOV nécessite le mode Cross-NUMA pour permettre au VNF de se connecter aux cartes réseau à partir des deux noeuds NUMA. C'est essentiel parce qu'OpenStack limite les VNF en mode NUMA unique pour accéder uniquement aux ressources (cartes réseau, processeurs, mémoire) dans le noeud NUMA où le VNF est lancé. L'association du mode NUMA croisé et de la liaison Active-Backup garantit une haute disponibilité, une tolérance aux pannes et une utilisation efficace des ressources, ce qui rend ce déploiement hautement résilient et performant.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
10-Jul-2025 |
Première publication |