Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

DCQCN (Data Center Quantized Congestion Notification)

L’accès direct à la mémoire à distance (RDMA) offre un débit élevé et une latence ultra-faible, avec une faible charge de processeur, nécessaires aux applications de datacenter modernes. RDMA est déployé à l’aide du protocole RoCEv2, qui s’appuie sur le contrôle des flux prioritaires (PFC) pour permettre un réseau sans perte. DCQCN (Data Center Quantized Congestion Notification) est un schéma de contrôle de la congestion de bout en bout pour RoCEv2. Junos prend en charge DCQCN en combinant ECN et PFC pour surmonter les limitations du PFC et 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 sans perte et de décharge congestion qui fonctionne en fournissant un contrôle de flux granulaire au niveau de la liaison pour chaque point de code 802.1p IEEE (priorité) sur une liaison Ethernet full-duplex 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’expéditeur (l’homologue connecté) pour empêcher temporairement l’expéditeur de transmettre d’autres trames. Le seuil de mémoire tampon doit être suffisamment bas pour que l’expéditeur ait le temps d’arrêter les trames de transmission et que le récepteur puisse accepter les trames déjà présentes sur le fil 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 la perte de trame.

Lorsqu’une congestion force la suspension d’une priorité sur une liaison, 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 mise en pause du trafic peut entraîner une congestion des ports entrants et propager la congestion sur le réseau.

La notification explicite de congestion (ECN) permet une notification de congestion de bout en bout entre deux points de terminaison sur des réseaux TCP/IP. Les deux points de terminaison sont un émetteur et un récepteur ECN. Pour qu’ECN fonctionne correctement, vous devez activer ECN sur les deux terminaux et sur tous les appareils intermédiaires entre les terminaux. Tout équipement sur le chemin de transmission qui ne prend pas en charge l’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 le retard en faisant en sorte que l’appareil émetteur diminue le taux de transmission jusqu’à ce que la congestion se résorbe, sans perdre de paquets. La RFC 3168, Ajout d’ECN (Explicit Congestion Notification) à l’IP, définit l’ECN.

DCQCN est une combinaison d’ECN et de PFC pour prendre en charge l’Ethernet sans perte de bout en bout. ECN permet de surmonter les limites du PFC pour obtenir un Ethernet sans perte. L’idée derrière DCQCN est de permettre à ECN de contrôler le flux en diminuant le taux de transmission lorsque la congestion commence, minimisant ainsi le temps de déclenchement du PFC, qui arrête complètement le flux.

Le bon fonctionnement de DCQCN nécessite de concilier deux exigences contradictoires :

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

  2. S’assurer que le PFC ne se déclenche pas trop tard, entraînant une perte de paquets due au dépassement de tampon.

Pour satisfaire aux exigences clés ci-dessus, calculez et configurez correctement les trois paramètres importants suivants :

  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 de PAUSE doit réserver suffisamment de mémoire tampon pour traiter tous les paquets qu’il pourrait recevoir pendant ce temps. Cela inclut les paquets qui étaient en transit lorsque PAUSE a été envoyé, ainsi que les paquets envoyés par le périphérique en amont pendant qu’il traite le message PAUSE. Vous allouez des mémoires tampons par port et par priorité à partir de la mémoire tampon globale partagée. Vous pouvez contrôler la quantité de tampons de marge alloués à chaque port et priorité à l’aide des paramètres MRU et de longueur de câble dans le CNP. Si vous constatez des pertes d’entrée mineures même après le déclenchement du PFC, vous pouvez éliminer ces pertes en augmentant la marge de manœuvre pour cette combinaison de ports et de priorités.

  2. PFC Threshold: il s’agit d’un seuil entrant. Il s’agit de la taille maximale qu’un groupe de priorité entrante peut atteindre avant qu’un message PAUSE ne soit envoyé à l’équipement en amont. Chaque priorité PFC reçoit son propre groupe de priorités à chaque port entrant. Les seuils PFC sont définis par groupe de priorité sur chaque port entrant. Le seuil PFC comporte deux composantes : le PG MIN seuil et le PG shared seuil. Une fois PG MIN que les seuils sont PG shared atteints pour un groupe prioritaire, 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épart 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 le 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 bas augmente la probabilité de marquage ECN. Par exemple, avec le paramètre de mémoire tampon partagée par défaut, un niveau de remplissage de démarrage WRED de 10 % garantit que les paquets sans perte sont marqués ECN. Mais avec un niveau de remplissage plus élevé, la probabilité d’un marquage ECN est moindre. Par exemple, avec deux ports entrants avec un trafic sans perte vers le même port de sortie et un niveau de démarrage WRED de 50 %, aucun marquage ECN n’aura lieu, car les seuils PFC entrants seront atteints en premier.

Configuration de DCQCN (Junos OS)

Pour activer DCQCN, configurez 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 PFC sur le port entrant pour le même flux sans perte. Par exemple :
  4. Configurez les tampons partagés. Par exemple :
    Remarque :

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

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

    • 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 entrante pour toutes les partitions doit être de 100 %.

    • La somme de la configuration de la mémoire tampon partagée de sortie pour toutes les partitions doit être de 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 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 PFC sur le port entrant pour le même flux sans perte. Par exemple :
  4. Configurez les tampons partagés. Par exemple :
    Remarque :

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

    • Vous devez configurer les trois partitions entrantes.

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

    • Pour les partitions de mémoire tampon avec et sans perte, les pourcentages de partition de mémoire tampon entrante et de sortie doivent être égaux.

    • QFX5000 commutateurs exécutant Junos OS Evolved ne disposent pas d’un pool de services dédié pour le trafic multicast en raison de limitations matérielles, de sorte que multicast trafic utilise des tampons partagés avec perte.

    Le réglage dynamic-threshold de la partition de mémoire tampon entrante 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 utilisez 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.