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 :
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.
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 :
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.
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 foisPG MIN
que les seuils etPG 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.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.
Configuration de DCQCN (Junos OS Evolved)
Pour activer DCQCN, configurez à la fois ECN et PFC pour un flux de trafic.