Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Notification de congestion quantifiée pour datacenter (DCQCN)

L’accès direct à la mémoire distante (RDMA) offre un débit élevé et une latence ultra-faible, avec une faible surcharge de processeur, ce qui est nécessaire aux applications de centre de données modernes. Le RDMA est déployé à l’aide du protocole RoCEv2, qui s’appuie sur le contrôle de flux basé sur la priorité (PFC) pour permettre un réseau sans perte. Data Center Quantized Congestion Notification (DCQCN) est un schéma de contrôle de congestion de bout en bout pour RoCEv2. Junos prend en charge DCQCN en combinant les fonctionnalités ECN (Explicit Congestion Notification) et PFC afin de surmonter les limitations de PFC et de prendre en charge l’Ethernet sans perte de bout en bout.

Comprendre DCQCN

Le contrôle de flux basé sur la priorité (PFC) est une fonctionnalité de transport et de décongestion sans perte qui fonctionne en fournissant un contrôle de flux granulaire au niveau de la liaison pour chaque point de code IEEE 802.1p (priorité) sur une liaison Ethernet en duplex intégral. Lorsque la mémoire tampon de réception d’une interface de commutateur atteint un certain seuil, le commutateur transmet une trame de pause à l’émetteur (l’homologue connecté) pour empêcher temporairement l’expéditeur de transmettre d’autres trames. Le seuil de la mémoire tampon doit être suffisamment bas pour que l’émetteur ait le temps d’arrêter la transmission des trames et que le récepteur puisse accepter les trames déjà présentes sur le câble avant que la mémoire tampon ne déborde. Le commutateur définit automatiquement des seuils de mémoire tampon de file d’attente pour éviter toute perte de trame.

Lorsque l’encombrement force une priorité sur une liaison à se mettre en pause, toutes les autres priorités sur la liaison continuent d’envoyer des trames. Seules les trames de la priorité suspendue ne sont pas transmises. Lorsque la mémoire tampon de réception se vide en dessous d’un autre seuil, le commutateur envoie un message qui redémarre le flux. Toutefois, en fonction de la quantité de trafic sur une liaison ou affectée à une priorité, la suspension du trafic peut entraîner une congestion des ports entrants et se propager sur le réseau.

La notification explicite d’encombrement (ECN) permet d’envoyer des notifications d’encombrement de bout en bout entre deux points de terminaison sur les réseaux TCP/IP. Les deux points de terminaison sont un émetteur compatible ECN et un récepteur compatible ECN. Pour que l’ECN fonctionne correctement, vous devez activer ECN sur les deux points de terminaison et sur tous les périphériques intermédiaires entre les points de terminaison. Tout périphérique sur le chemin de transmission qui ne prend pas en charge ECN interrompt la fonctionnalité ECN de bout en bout.

L’ECN avertit les réseaux de la congestion dans le but de réduire la perte de paquets et les retards en obligeant l’appareil émetteur à réduire le taux de transmission jusqu’à ce que la congestion disparaisse, sans perdre de paquets. La RFC 3168, L’ajout de la notification explicite de congestion (ECN) à l’IP, définit l’ECN.

La norme DCQCN (Data Center Quantized Congestion Notification) combine ECN et PFC pour prendre en charge l’Ethernet sans perte de bout en bout. L’ECN permet de s’affranchir des limites du PFC pour obtenir un réseau Ethernet sans perte. L’idée derrière DCQCN est de permettre à l’ECN d’effectuer un contrôle de flux en diminuant le débit de transmission lorsque la congestion commence, minimisant ainsi le temps de déclenchement du PFC, ce qui arrête complètement le flux.

Le bon fonctionnement de DCQCN nécessite de trouver un équilibre entre deux exigences contradictoires :

  1. S’assurer que le PFC ne se déclenche pas trop tôt, c’est-à-dire avant de donner à l’ECN une chance d’envoyer un retour d’information sur la congestion pour ralentir le flux.

  2. S’assurer que le PFC est ne se déclenche pas trop tard, entraînant ainsi une perte de paquets due à un débordement de la mémoire tampon.

Il y a trois paramètres importants que vous devez calculer et configurer correctement pour répondre aux exigences clés ci-dessus :

  1. Headroom Buffers—Un message PAUSE envoyé à un périphérique en amont met un certain temps à arriver et à prendre effet. Pour éviter les pertes de paquets, l’expéditeur PAUSE doit réserver suffisamment de mémoire tampon pour traiter tous les paquets qu’il peut recevoir pendant cette période. Cela inclut les paquets qui étaient en transit lorsque la commande PAUSE a été envoyée et les paquets envoyés par l’équipement en amont pendant qu’il traite le message PAUSE. Vous allouez des tampons de marge de manœuvre par port et par priorité à partir de la mémoire tampon partagée globale. Vous pouvez contrôler la quantité de tampons de marge alloués à chaque port et priorité à l’aide des paramètres MRU et longueur de câble dans le profil de notification d’encombrement. Si vous constatez des pertes d’entrée mineures même après le déclenchement du PFC, vous pouvez les éliminer en augmentant la marge tampon pour cette combinaison de ports et de priorités.

  2. PFC Threshold: il s’agit d’un seuil d’entrée. Il s’agit de la taille maximale qu’un groupe de priorité d’entrée peut atteindre avant qu’un message PAUSE ne soit envoyé à l’équipement en amont. Chaque priorité PFC reçoit son propre groupe de priorité à chaque port d’entrée. Les seuils PFC sont définis par groupe de priorité à chaque port d’entrée. Il y a deux composantes dans le seuil PFC : le seuil et le PG MIN PG shared seuil. Une fois PG MIN que les seuils et PG shared sont atteints pour un groupe de priorités, le PFC est généré pour cette priorité correspondante. Le commutateur envoie un message RESUME lorsque la file d’attente tombe en dessous des seuils PFC.

  3. ECN Threshold: il s’agit d’un seuil de sortie. Le seuil ECN est égal à la valeur du niveau de démarrage et de remplissage WRED. Dès qu’une file d’attente de sortie dépasse ce seuil, le commutateur lance le marquage ECN des paquets de cette file d’attente. Pour que DCQCN soit efficace, ce seuil doit être inférieur au seuil PFC d’entrée afin de garantir que le PFC ne se déclenche pas avant que le commutateur n’ait eu la possibilité de marquer les paquets avec ECN. Le réglage d’un niveau de remplissage WRED très faible augmente la probabilité de marquage ECN. Par exemple, avec le paramètre de mémoire tampon partagée par défaut, un niveau de démarrage et de remplissage WRED de 10 % garantit que les paquets sans perte sont marqués ECN. Mais avec un niveau de remplissage plus élevé, la probabilité de marquage ECN est moindre. Par exemple, avec deux ports d’entrée avec un trafic sans perte vers le même port de sortie et un niveau de démarrage et de remplissage WRED de 50 %, aucun marquage ECN ne se produira, car les seuils PFC d’entrée seront atteints en premier.

configuration de DCQCN (Junos OS)

Pour activer DCQCN, configurez à la fois ECN et PFC pour un flux de trafic.

  1. Configurez des classificateurs pour le trafic ROCEv2 et pour les paquets de notification de congestion (CNP). Par exemple:
  2. Configurez ECN sur le port de sortie pour un flux sans perte. Par exemple:
  3. Configurez le PFC sur le port d’entrée pour le même flux sans perte. Par exemple:
  4. Configurez les tampons partagés. Par exemple:
    Note:

    Vous devez suivre les règles suivantes pour valider la configuration sur les plates-formes exécutant Junos OS :

    • Vous devez configurer les trois partitions d’entrée ou aucune.

    • Vous devez configurer les trois partitions de sortie ou aucune d’entre elles.

    • La somme de la configuration de la mémoire tampon partagée d’entrée pour toutes les partitions doit être égale à 100 %.

    • La somme de la configuration de la mémoire tampon partagée de sortie pour toutes les partitions doit être égale à 100 %.

  5. Configurez les classes de transfert et attribuez des files d’attente. Par exemple:
  6. Vérifiez votre configuration. Par exemple:
  7. Validez votre configuration.

Configuration de DCQCN (Junos OS Evolved)

Pour activer DCQCN, configurez à la fois ECN et PFC pour un flux de trafic.

  1. Configurez des classificateurs pour le trafic ROCEv2 et pour les paquets de notification de congestion (CNP). Par exemple:
  2. Configurez ECN sur le port de sortie pour un flux sans perte. Par exemple:
  3. Configurez le PFC sur le port d’entrée pour le même flux sans perte. Par exemple:
  4. Configurez les tampons partagés. Par exemple:
    Note:

    Vous devez suivre les règles suivantes pour valider la configuration sur les plates-formes exécutant Junos OS Evolved :

    • Vous devez configurer les trois partitions d’entrée.

    • La somme de la configuration de la mémoire tampon partagée d’entrée pour toutes les partitions doit être égale à 100 %.

    • Pour les partitions de mémoire tampon avec et sans perte, les pourcentages d’entrée et de sortie de la partition de mémoire tampon doivent être égaux.

    • QFX5000 commutateurs exécutant Junos OS Evolved ne disposent pas d’un pool de services dédié au trafic multicast en raison de limitations matérielles. Le trafic multicast utilise donc des tampons partagées avec perte de pool de services.

    Le paramètre dynamic-threshold de la partition de tampon d’entrée sans perte est facultatif. ECN utilise cette option pour le calcul du seuil sur les files d’attente sans perte. Si vous ne configurez pas cette option, dynamic-threshold utilise sa valeur par défaut de 7.

  5. Configurez les classes de transfert et attribuez des files d’attente. Par exemple:
  6. Vérifiez votre configuration. Par exemple:
  7. Validez votre configuration.