Créer des instances Compute Engine à très faible latence
Cette page explique comment créer des instances Compute Engine à très faible latence à l'aide des types de machines U4P ou U4C de la famille de machines U4.
Pour obtenir une présentation du processus de configuration de l'infrastructure à très faible latence, consultez la section Présentation de la configuration de la solution à très faible latence.
Avant de commencer
Avant de créer des instances de calcul à très faible latence, consultez les sections suivantes.
Créer des réseaux VPC
Si vous ne l'avez pas déjà fait, créez des réseaux VPC pour chacune des interfaces réseau de votre instance, comme décrit dans la section Présentation de la configuration de la solution à très faible latence.
Créer une stratégie d'emplacement
Vous pouvez éventuellement appliquer une stratégie d'emplacement par répartition à votre instance à très faible latence pour une résilience accrue. Pour en savoir plus, consultez la section Créer et appliquer des stratégies d'emplacement par répartition dans la documentation Compute Engine.
Définir votre projet
Définissez gcloud CLI pour utiliser votre projet. Vous pouvez également inclure
l'option --project=PROJECT_ID pour chaque commande
des procédures suivantes.
gcloud config set project PROJECT_ID
Remplacez PROJECT_ID par l'ID de votre projet.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer des instances Compute Engine, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Pour créer et gérer des instances de calcul :
administrateur d'instances Compute (
compute.instanceAdmin) sur votre projet
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Présentation de la configuration des instances à très faible latence
Pour créer une instance de calcul à très faible latence et la configurer pour envoyer ou recevoir du trafic unidiffusion et multidiffusion à très faible latence, procédez comme suit :
| Étape | Description |
|---|---|
| Créer une instance à très faible latence | Créez une instance à l'aide d'un type de machine U4P ou U4C, puis connectez ses interfaces réseau à un réseau VPC à usage général et à un réseau VPC à très faible latence. Si vous prévoyez d'utiliser l'instance en tant que client multidiffusion, définissez l'option igmp-query sur IGMP_QUERY_V2. |
Configurer le routage pour les interfaces non-nic0 pour le trafic unidiffusion à très faible latence |
Configurez le routage basé sur la source dans l'OS invité pour vous assurer que les paquets de sortie passent par la bonne interface et éviter le routage asymétrique. |
| Configurer une instance en tant que client multidiffusion à très faible latence |
Effectuez chacune des opérations suivantes pour recevoir le trafic multidiffusion
sur les interfaces réseau à très faible latence :
|
De plus, vous pouvez utiliser les exemples de commandes de cette page pour tester la connectivité multidiffusion.
Créer une instance à très faible latence
Cette section explique comment créer une instance à utiliser pour l'unidiffusion et la multidiffusion à très faible latence.
Pour obtenir des informations générales sur la création d'instances de calcul, y compris des options de configuration supplémentaires, consultez la section Créer et démarrer une instance Compute Engine.
gcloud
Pour créer une instance à très faible latence, utilisez la
compute instances create commande.
Le type d'interface réseau compatible pour les instances à très faible latence est GVNIC.
Vous devez inclure le champ queue-count et spécifier la valeur 32 pour la prise en charge de XDP.
Pour les interfaces réseau qui se connectent à un réseau VPC à très faible latence, no-address doit être spécifié.
De plus, la commande suivante inclut l'option igmp-query pour permettre à l'instance d'être un client multidiffusion. Cette option n'est pas obligatoire si l'instance est uniquement un producteur multidiffusion, ou si elle n'envoie et ne reçoit que de l'unidiffusion.
gcloud compute instances create INSTANCE_NAME \
--zone=ZONE \
--machine-type=MACHINE_TYPE \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY \
--maintenance-policy=TERMINATE \
--network-interface=nic-type=GVNIC,queue-count=32,network=GENERAL_PURPOSE_VPC_NETWORK,subnet=GENERAL_PURPOSE_SUBNET \
--network-interface=nic-type=GVNIC,queue-count=32,network=ULL_VPC_NETWORK,subnet=ULL_SUBNET_1,no-address,igmp-query=IGMP_QUERY_V2 \
--network-interface=nic-type=GVNIC,queue-count=32,network=ULL_VPC_NETWORK,subnet=ULL_SUBNET_2,no-address,igmp-query=IGMP_QUERY_V2
Remplacez les valeurs suivantes :
ZONE: zone dans laquelle créer l'instance.INSTANCE_NAME: nom de l'instance.MACHINE_TYPE: type de machine U4P ou U4C de l'instance.IMAGE_PROJECT: le projet d'image, tel querhel-cloud. Consultez la section Systèmes d'exploitation compatibles avec les types de machines U4.IMAGE_FAMILY: la famille d'images, telle querhel-10-2-eus-gvnic-baremetal. Consultez la section Systèmes d'exploitation compatibles avec les types de machines U4.La spécification d'une famille d'images crée l'instance à partir de la version la plus récente, non obsolète de l'image d'OS de la famille d'images. Vous pouvez également utiliser l'option
--imageet spécifier une version d'image.GENERAL_PURPOSE_VPC_NETWORK,GENERAL_PURPOSE_SUBNET: réseau VPC et sous-réseau auxquels associer l'interfacenic0de l'instance.ULL_VPC_NETWORK: réseau VPC à très faible latence auquel associer les interfaces non-nic0.ULL_SUBNET_1: sous-réseau du réseau VPC à très faible latence auquel associer l'interfacenic1.ULL_SUBNET_2: sous-réseau du réseau VPC à très faible latence auquel associer l'interfacenic2.
Configurer le routage pour les interfaces non-nic0 pour le trafic unidiffusion à très faible latence
Par défaut, une instance utilise la route par défaut associée à son interface nic0 pour envoyer du trafic vers n'importe quelle destination en dehors de son sous-réseau directement connecté. Pour
en savoir plus, consultez la présentation des configurations utilisant plusieurs interfaces réseau.
Pour que les interfaces nic1 et nic2 de votre instance puissent envoyer et recevoir du trafic unidiffusion à très faible latence, vous devez configurer le routage basé sur la source dans l'OS invité. Cette configuration garantit que les paquets de sortie passent par la bonne interface et empêche le routage asymétrique, où le trafic entre dans une interface, mais tente de sortir via nic0.
Pour obtenir un exemple de configuration du routage basé sur des règles, consultez la section Configurer le routage basé sur des règles du tutoriel Configurer le routage pour une interface réseau supplémentaire.
Configurer une instance en tant que client multidiffusion à très faible latence
Cette section explique comment configurer une instance à très faible latence existante en tant que client multidiffusion.
Activer la requête IGMP sur une instance à très faible latence existante
Si vous n'avez pas activé IGMP lors de la création de votre instance, vous pouvez l'activer sur votre instance existante, comme décrit dans cette section.
gcloud
Pour activer la requête IGMP sur une instance à très faible latence existante, utilisez la
compute instances network-interfaces update commande.
Répétez la commande suivante pour chaque interface réseau sur laquelle vous souhaitez recevoir du trafic multidiffusion.
gcloud compute instances network-interfaces update INSTANCE_NAME \
--zone=ZONE \
--network-interface=NETWORK_INTERFACE_NAME \
--igmp-query=IGMP_QUERY_V2
Remplacez les valeurs suivantes :
INSTANCE_NAME: nom de l'instance.ZONE: zone de l'instance.NETWORK_INTERFACE_NAME: nom de l'interface réseau sur laquelle activer la requête IGMP. Dans Google Cloud, le format estnicNUMBER, tel quenic0,nic1, ounic2.
Définir IGMPv2 dans l'OS invité
Pour définir IGMPv2 dans l'OS invité de votre instance, procédez comme suit :
Connectez-vous à l'instance à l'aide de SSH.
Exécutez la commande suivante et identifiez les noms d'appareils des interfaces réseau sur lesquelles vous souhaitez recevoir du trafic multidiffusion.
sudo ifconfig
Pour chaque interface réseau applicable, exécutez la commande suivante pour forcer IGMPv2.
sudo -i echo "2" > /proc/sys/net/ipv4/conf/NETWORK_INTERFACE_DEVICE_NAME/force_igmp_version
Remplacez
NETWORK_INTERFACE_DEVICE_NAMEpar le nom de l'appareil de l'interface réseau, tel queeth0,eth1oueth2.
Configurer le filtrage du chemin inverse (rp_filter)
Dans certains cas, comme avec les instances à plusieurs cartes réseau, la validation stricte de la source par le filtrage du chemin inverse (rp-filter) peut entraîner la suppression de paquets multidiffusion légitimes. Pour éviter cela, vous pouvez configurer le filtrage du chemin inverse afin d'assouplir ou de désactiver la validation de la source sur les interfaces réseau non-nic0 qui reçoivent du trafic multidiffusion.
Par exemple, les commandes suivantes configurent le filtrage du chemin inverse pour désactiver la validation de la source sur eth1 et eth2 en définissant rp_filter sur 0.
sudo sysctl -w net.ipv4.conf.all.rp_filter=0 sudo sysctl -w net.ipv4.conf.eth1.rp_filter=0 sudo sysctl -w net.ipv4.conf.eth2.rp_filter=0
Pour en savoir plus sur rp_filter, consultez
IP Sysctl de la documentation du noyau Linux.
Augmenter la taille de la mémoire tampon circulaire du pilote réseau
Cette section explique comment augmenter la taille de la mémoire tampon circulaire du pilote réseau sur votre instance.
Pour les clients multidiffusion qui reçoivent des niveaux de trafic élevés, augmentez la taille de la mémoire tampon circulaire du pilote réseau à la valeur 2048 pour éviter la perte de paquets. Effectuez cette opération pour chaque interface réseau qui reçoit du trafic multidiffusion.
Consultez les exemples de commandes suivants, qui configurent nic1 et nic2 :
sudo ethtool -G eth1 rx 2048 tx 2048 sudo ethtool -G eth2 rx 2048 tx 2048
Exemples de commandes pour tester la connectivité multidiffusion à très faible latence
Cette section fournit des exemples de commandes permettant de tester le trafic multidiffusion sans
démarrer de charge de travail d'application à l'aide de l'
iperfoutil. Les étapes de cette section
nécessitent que la configuration multidiffusion décrite dans Présentation de la configuration de la solution à très faible latence soit
terminée.
Envoyer du trafic multidiffusion à très faible latence à partir d'un producteur multidiffusion
Connectez-vous à l'instance à l'aide de SSH.
Installez
iperfsi ce n'est pas déjà fait.iperf3n'est pas compatible avec la multidiffusion. La commande suivante utiliseiperf, qui installeiperf2.sudo yum install iperf
Pour envoyer du trafic multidiffusion à l'adresse IP du groupe multidiffusion, exécutez la commande suivante :
iperf -c MULTICAST_GROUP_ADDRESS%NIC -p 1234 -l 512 -i 1 -u -b 1000pps -t 999999 -B NIC_IP_ADDRESS
Remplacez les valeurs suivantes :
MULTICAST_GROUP_ADDRESS: adresse IP du groupe multidiffusion.NIC: nom de l'appareil de l'interface réseau, tel queeth1oueth2.NIC_IP_ADDRESS: adresse IP attribuée à la carte d'interface réseau que vous avez spécifiée.
Rejoindre un groupe et recevoir du trafic multidiffusion à très faible latence à partir d'un client multidiffusion
Connectez-vous à l'instance à l'aide de SSH.
Installez
iperfsi ce n'est pas déjà fait.sudo yum install iperf
Pour rejoindre un groupe multidiffusion et enregistrer le trafic que vous recevez, exécutez la commande suivante :
iperf -s -p 1234 -B MULTICAST_GROUP_ADDRESS%NIC -l 512 -u -i 1
Remplacez les valeurs suivantes :
MULTICAST_GROUP_ADDRESS: adresse IP du groupe multidiffusion.NIC: nom de l'appareil de l'interface réseau, tel queeth1oueth2.
Par exemple, la commande suivante rejoint un groupe avec l'adresse IP
224.1.0.176pour recevoir des paquets de 512 octets maximum et enregistre le trafic reçu :iperf -s -p 1234 -B 224.1.0.176%eth1 -l 512 -u -i 1
Vérifier l'état et la vitesse de la liaison à très faible latence
Sur les interfaces réseau à très faible latence de votre instance, ethtool affiche l'état réel de la liaison du port physique (up/down) et les vitesses de liaison physiques.
Pour vérifier l'état et la vitesse de la liaison physique d'une interface réseau à très faible latence, exécutez la commande suivante :
sudo ethtool NIC
Remplacez NIC par le nom de l'interface réseau attribuée par l'OS invité, tel que ens8f0 ou ens48f0.
Étape suivante
- Pour obtenir des informations générales sur le dépannage des performances réseau pour les instances Bare Metal, consultez la section Dépannage des performances réseau dans la documentation Compute Engine. Par exemple, vous pouvez désactiver les états de veille du processeur pour obtenir des performances de bande passante réseau complètes.
- Pour activer l'interrogation active et tester les fonctionnalités Onload pour les instances de calcul à très faible latence, consultez la section Utiliser Onload.
- Pour synchroniser l'horloge système de votre instance avec l'horloge de la carte réseau physique de son serveur hôte, consultez la section Configurer l'heure exacte.