Créer des instances Compute Engine ULL
Cette page explique comment créer des instances Compute Engine à latence ultra-faible (ULL) à 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 ULL, consultez Présentation de la configuration de la solution ULL.
Avant de commencer
Avant de créer des instances de calcul ULL, 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 Présentation de la configuration de la solution ULL.
Créer une stratégie d'emplacement
Vous pouvez éventuellement appliquer une stratégie d'emplacement par répartition à votre instance ULL pour améliorer la résilience. Pour en savoir plus, consultez Créer et appliquer des stratégies d'emplacement de répartition dans la documentation Compute Engine.
Définir votre projet
Définissez la gcloud CLI pour utiliser votre projet. Vous pouvez également inclure l'option --project=PROJECT_ID pour chaque commande dans les 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 avec des rôles personnalisés ou d'autres rôles prédéfinis.
Présentation de la configuration des instances ULL
Pour créer une instance de calcul ULL et la configurer pour qu'elle envoie ou reçoive du trafic ULL en mode monodiffusion et multidiffusion, procédez comme suit :
| Étape | Description |
|---|---|
| Créer une instance ULL | 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 ULL. Si vous prévoyez d'utiliser l'instance en tant que consommateur multicast, définissez l'indicateur igmp-query sur IGMP_QUERY_V2. |
Configurer le routage pour les interfaces non-nic0 pour le trafic ULL en mode monodiffusion |
Configurez le routage basé sur des règles 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 consommateur multicast ULL |
Pour recevoir le trafic multicast sur les interfaces réseau ULL, procédez comme suit :
|
Vous pouvez également utiliser les exemples de commandes sur cette page pour tester la connectivité multicast.
Créer une instance ULL
Cette section explique comment créer une instance à utiliser pour l'unicast et le multicast ULL.
Pour obtenir des informations générales sur la création d'instances de calcul, y compris sur les options de configuration supplémentaires, consultez Créer et démarrer une instance Compute Engine.
gcloud
Pour créer une instance ULL, utilisez la commande compute instances create.
Pour les interfaces réseau qui se rattachent à un réseau VPC ULL, no-address doit être spécifié.
De plus, la commande suivante inclut l'indicateur igmp-query pour permettre à l'instance d'être un consommateur multicast. Cette option n'est pas requise si l'instance est un producteur multicast uniquement ou si elle n'envoie et ne reçoit que des unicasts.
gcloud compute instances create INSTANCE_NAME \
--zone=ZONE \
--machine-type=MACHINE_TYPE \
--image-project=IMAGE_PROJECT \
--image=IMAGE_NAME \
--maintenance-policy=TERMINATE \
--network-interface=nic-type=NIC_TYPE,queue-count=QUEUES,network=GENERAL_PURPOSE_VPC_NETWORK,subnet=GENERAL_PURPOSE_SUBNET \
--network-interface=nic-type=NIC_TYPE,queue-count=QUEUES,network=ULL_VPC_NETWORK,subnet=ULL_SUBNET_1,no-address,igmp-query=IGMP_QUERY_V2 \
--network-interface=nic-type=NIC_TYPE,queue-count=QUEUES,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'instanceINSTANCE_NAME: nom de l'instance.MACHINE_TYPE: type de machine U4P ou U4C de l'instanceIMAGE_PROJECT: projet d'image. Pour les tests pendant la version Preview, utilisez le projet d'image fourni par Google. Consultez la page Compatibilité des systèmes d'exploitation avec les types de machines U4.IMAGE_NAME: nom de l'image. Pour les tests pendant la version Preview, utilisez l'image fournie par Google. Consultez la page Compatibilité des systèmes d'exploitation avec les types de machines U4.NIC_TYPE: type d'interface réseau à utiliser. Utilisez le type d'interface réseau compatible avec la zone spécifique dans laquelle vous créez votre instance :- Pour
us-south1-d, spécifiezIDPF. - Pour
us-south1-e, spécifiezGVNIC.
- Pour
QUEUES: nombre de files d'attente de réception et de transmission pour le traitement des paquets provenant du réseau :- Pour
GVNIC, vous devez inclure le champqueue-countet spécifier la valeur32pour la compatibilité avec XDP. - Pour
IDPF, omettezqueue-count=QUEUESde la commande.
- Pour
GENERAL_PURPOSE_VPC_NETWORK,GENERAL_PURPOSE_SUBNET: réseau VPC et sous-réseau auxquels associer l'interfacenic0de l'instanceULL_VPC_NETWORK: réseau VPC ULL auquel associer les interfaces non-nic0.ULL_SUBNET_1: sous-réseau du réseau VPC ULL auquel associer l'interfacenic1ULL_SUBNET_2: sous-réseau du réseau VPC ULL auquel associer l'interfacenic2
Configurer le routage pour les interfaces non-nic0 pour le trafic ULL en mode monodiffusion
Par défaut, une instance utilise la route par défaut associée à son interface nic0 pour envoyer du trafic vers toute 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 ULL en mode unicast, vous devez configurer le routage des règles 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 par une interface, mais tente de sortir par nic0.
Pour obtenir un exemple de configuration du routage basé sur des règles, consultez Configurer le routage basé sur des règles dans le tutoriel Configurer le routage pour une interface réseau supplémentaire.
Configurer une instance en tant que client multicast ULL
Cette section explique comment configurer une instance ULL existante pour qu'elle devienne un consommateur multidiffusion.
Activer la requête IGMP sur une instance ULL 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 ULL existante, utilisez la commande compute instances network-interfaces update.
Répétez la commande suivante pour chaque interface réseau sur laquelle vous souhaitez recevoir du trafic multicast.
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'instanceZONE: zone de l'instanceNETWORK_INTERFACE_NAME: nom de l'interface réseau sur laquelle activer la requête IGMP. Dans Google Cloud, le format estnicNUMBER, tel quenic0,nic1ounic2.
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'appareil des interfaces réseau que vous souhaitez utiliser pour recevoir le trafic multicast.
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'interface réseau, par exempleeth0,eth1oueth2.
Configurer le filtrage du chemin d'accès inverse (rp_filter)
Dans certains cas, comme avec les instances multi-NIC, la validation stricte de la source par filtrage du chemin inverse (rp-filter) peut entraîner la suppression de paquets multicast 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 d'accès 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 dans la documentation du noyau Linux.
Augmenter la taille de la mémoire tampon en anneau 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 consommateurs multicast qui reçoivent des niveaux de trafic élevés, augmentez la taille de la mémoire tampon circulaire du pilote réseau à une valeur de 2048 pour éviter la perte de paquets. Effectuez cette opération pour chaque interface réseau qui reçoit du trafic multicast.
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é multicast ULL
Cette section fournit des exemples de commandes permettant de tester le trafic multicast sans démarrer de charge de travail d'application à l'aide de l'outil iperf. Les étapes de cette section nécessitent que la configuration multicast décrite dans Présentation de la configuration de la solution ULL soit terminée.
Envoyer du trafic multicast ULL depuis un producteur multicast
Connectez-vous à l'instance à l'aide de SSH.
Si ce n'est pas déjà fait, installez
iperf.iperf3n'est pas compatible avec le multicast. La commande suivante utiliseiperf, qui installeiperf2.sudo yum install iperf
Pour envoyer du trafic multicast à l'adresse IP du groupe multicast, 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 multicastNIC: nom de l'interface réseau, tel queeth1oueth2NIC_IP_ADDRESS: adresse IP attribuée à la carte d'interface réseau que vous avez spécifiée
Rejoindre un groupe et recevoir le trafic multicast ULL d'un consommateur multicast
Connectez-vous à l'instance à l'aide de SSH.
Si ce n'est pas déjà fait, installez
iperf.sudo yum install iperf
Pour rejoindre un groupe multicast et consigner 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_ADDRESSl'adresse IP du groupe multicastNIC: nom 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 jusqu'à 512 octets et enregistre le trafic reçu :iperf -s -p 1234 -B 224.1.0.176%eth1 -l 512 -u -i 1
Étapes suivantes
- Pour activer l'interrogation d'occupation et tester les fonctionnalités Onload pour les instances de calcul ULL, consultez Utiliser Onload.
- Pour synchroniser l'horloge système de votre instance avec l'horloge de la carte d'interface réseau physique de son serveur hôte, consultez Configurer une heure précise.