Comment faire évoluer les centres de données. Rapport Yandex

Nous avons développé une conception d'un réseau de centres de données, qui vous permet de déployer des clusters informatiques de plus de 100 000 serveurs avec une bande passante de bissection de plus d'un pétabit par seconde.

À partir du rapport de Dmitry Afanasyev, vous dĂ©couvrirez les principes de base de la nouvelle conception, la mise Ă  l'Ă©chelle des topologies qui surviennent avec ces problĂšmes, les options pour les rĂ©soudre, les caractĂ©ristiques du routage et la mise Ă  l'Ă©chelle des fonctions du plan de transfert des pĂ©riphĂ©riques rĂ©seau modernes dans des topologies fortement connectĂ©es avec un grand nombre de routes ECMP. . En outre, Dima a briĂšvement parlĂ© de l'organisation de la connectivitĂ© externe, du niveau physique, du systĂšme de cĂąbles et des moyens d'augmenter encore la capacitĂ©.



- Bonjour tout le monde! Je m'appelle Dmitry Afanasyev, je suis architecte réseau de Yandex et je m'occupe principalement de la conception de réseaux de centres de données.



Mon histoire portera sur le rĂ©seau de centres de donnĂ©es Yandex mis Ă  jour. Il s'agit en grande partie d'une Ă©volution de la conception que nous avions, mais en mĂȘme temps, il y a de nouveaux Ă©lĂ©ments. Il s'agit d'une prĂ©sentation de revue, car il a fallu ajuster beaucoup d'informations en peu de temps. Nous commençons par choisir une topologie logique. Ensuite, il y aura une vue d'ensemble du plan de contrĂŽle et des problĂšmes d'Ă©volutivitĂ© du plan de donnĂ©es, le choix de ce qui se passera au niveau physique, regardons quelques fonctionnalitĂ©s des appareils. Nous aborderons Ă©galement ce qui se passe dans le centre de donnĂ©es avec MPLS, dont nous avons parlĂ© il y a quelque temps.



Alors, qu'est-ce que Yandex en termes de charges de travail et de services? Yandex est un hyperscaler typique. Si vous regardez dans la direction des utilisateurs, nous traitons principalement les demandes des utilisateurs. En outre, divers services de streaming et sortie de données, car nous avons également des services de stockage. S'il est plus proche du backend, les charges et les services d'infrastructure y apparaissent, tels que les magasins d'objets distribués, la réplication de données et, bien sûr, les files d'attente persistantes. L'un des principaux types de charges est MapReduce et similaires, le traitement en streaming, l'apprentissage automatique, etc.



Comment est l'infrastructure au-dessus de laquelle tout cela se produit? Encore une fois, nous sommes un hyperskaler trĂšs typique, bien que nous soyons peut-ĂȘtre un peu plus prĂšs du cĂŽtĂ© du spectre oĂč se trouvent les plus petits hyperskalers. Mais nous avons tous les attributs. Dans la mesure du possible, nous utilisons du matĂ©riel de base et une mise Ă  l'Ă©chelle horizontale. Nous avons une croissance complĂšte de la mise en commun des ressources: nous ne travaillons pas avec des machines distinctes, des racks sĂ©parĂ©s, mais les combinons en un grand pool de ressources interchangeables avec quelques services supplĂ©mentaires qui sont engagĂ©s dans la planification et l'allocation, et nous travaillons avec tout ce pool.

Nous avons donc le niveau suivant - le cluster de calcul au niveau du systÚme d'exploitation. Il est trÚs important que nous contrÎlions entiÚrement la pile technologique que nous utilisons. Nous contrÎlons les terminaux (hÎtes), le réseau et la pile logicielle.

Nous avons plusieurs grands centres de données en Russie et à l'étranger. Ils sont unis par une épine dorsale utilisant la technologie MPLS. Notre infrastructure interne est presque entiÚrement basée sur IPv6, mais comme nous devons gérer le trafic externe, qui est toujours principalement acheminé via IPv4, nous devons en quelque sorte livrer les demandes provenant d'IPv4 aux serveurs frontaux et continuer à aller un peu vers IPv4 externe. Internet - par exemple, pour l'indexation.

Les derniĂšres itĂ©rations de la conception de rĂ©seaux de centres de donnĂ©es utilisent des topologies Clos Ă  plusieurs niveaux, et seul L3 y est utilisĂ©. Nous avons quittĂ© L2 il y a quelque temps et avons poussĂ© un soupir de soulagement. Enfin, notre infrastructure comprend des centaines de milliers d'instances informatiques (serveur). Il y a quelque temps, la taille maximale du cluster Ă©tait d'environ 10 000 serveurs. Cela est largement dĂ» Ă  la façon dont les mĂȘmes systĂšmes d'exploitation au niveau du cluster - ordonnanceurs, allocation des ressources, etc., peuvent fonctionner. Depuis que des progrĂšs ont Ă©tĂ© rĂ©alisĂ©s du cĂŽtĂ© des logiciels d'infrastructure, l'objectif est dĂ©sormais d'environ 100 000 serveurs dans un cluster informatique, et nous avions une tĂąche - ĂȘtre en mesure de construire des usines de rĂ©seau qui permettent une mise en commun efficace des ressources dans un tel cluster.



Que voulons-nous d'un réseau de centres de données? Tout d'abord - beaucoup de bande passante bon marché et assez uniformément répartie. Parce que le réseau est ce substrat à travers lequel nous pouvons faire la mise en commun des ressources. La nouvelle taille cible est d'environ 100 000 serveurs dans un cluster.

Bien sĂ»r, nous voulons Ă©galement un plan de contrĂŽle Ă©volutif et stable, car sur une si grande infrastructure, beaucoup de maux de tĂȘte surviennent mĂȘme Ă  cause d'Ă©vĂ©nements alĂ©atoires, et nous ne voulons pas que le plan de contrĂŽle nous apporte un mal de tĂȘte. En mĂȘme temps, nous voulons minimiser l'Ă©tat en son sein. Plus l'Ă©tat est petit, mieux tout est stable et plus il est facile Ă  diagnostiquer.

Bien sûr, nous avons besoin d'automatisation, car il est impossible de gérer une telle infrastructure manuellement, et c'était impossible il y a quelque temps. Dans la mesure du possible, nous avons besoin d'un soutien opérationnel et d'un soutien CI / CD dans la mesure du possible.

Avec de telles tailles de centres de donnĂ©es et de grappes, la tĂąche de prise en charge du dĂ©ploiement et de l'expansion incrĂ©mentiels sans interruption de service est devenue assez aiguĂ«. Si sur des clusters la taille d'un millier de voitures est probablement proche de dix mille voitures, elles pourraient toujours ĂȘtre dĂ©ployĂ©es en une seule opĂ©ration - c'est-Ă -dire que nous prĂ©voyons d'Ă©tendre l'infrastructure, et plusieurs milliers de machines sont ajoutĂ©es en une seule opĂ©ration, puis un cluster de la taille de cent mille voitures ne se pose pas juste comme ça, il a Ă©tĂ© construit depuis un certain temps. Et il est souhaitable que pendant tout ce temps ce qui a dĂ©jĂ  Ă©tĂ© pompĂ©, l'infrastructure qui est dĂ©ployĂ©e, soit disponible.

Et une exigence que nous avions et que nous avons quittée: il s'agit du support de la mutualisation, c'est-à-dire de la virtualisation ou de la segmentation du réseau. Maintenant, nous n'avons plus besoin de le faire au niveau de l'usine du réseau, car la segmentation est allée aux hÎtes, ce qui a rendu la mise à l'échelle trÚs facile pour nous. Grùce à IPv6 et à un grand espace d'adressage, nous n'avons pas eu besoin d'utiliser des adresses en double dans l'infrastructure interne, tout l'adressage était déjà unique. Et du fait que nous avons appliqué le filtrage et la segmentation du réseau aux hÎtes, nous n'avons pas besoin de créer d'entités de réseau virtuel dans les réseaux de centres de données.



Une chose trĂšs importante est que nous n'en avons pas besoin. Si certaines fonctions peuvent ĂȘtre supprimĂ©es du rĂ©seau, cela simplifie considĂ©rablement la vie et, en rĂšgle gĂ©nĂ©rale, Ă©largit le choix du matĂ©riel et des logiciels disponibles, et simplifie considĂ©rablement les diagnostics.

Alors, de quoi n'avons-nous pas besoin, de quoi avons-nous pu refuser, pas toujours avec joie au moment oĂč cela s'est produit, mais avec grand soulagement, une fois le processus terminĂ©?

Tout d'abord, le rejet de L2. Nous n'avons pas besoin de L2 réel ou émulé. Non utilisé dans une large mesure en raison du fait que nous contrÎlons la pile d'applications. Nos applications sont mises à l'échelle horizontalement, elles fonctionnent avec l'adressage L3, elles ne se soucient pas vraiment qu'une instance particuliÚre soit désactivée, elles en déploient simplement une nouvelle, elle n'a pas besoin de se déployer sur l'ancienne adresse, car il existe un niveau distinct de découverte de service et de surveillance des machines situées dans le cluster . Nous ne transférons pas cette tùche au réseau. La tùche du réseau est de livrer des paquets du point A au point B.

De plus, nous n'avons aucune situation oĂč les adresses se dĂ©placent au sein du rĂ©seau, et cela doit ĂȘtre surveillĂ©. Dans de nombreuses conceptions, cela est gĂ©nĂ©ralement nĂ©cessaire pour prendre en charge la mobilitĂ© des machines virtuelles. Nous n'utilisons pas la mobilitĂ© des machines virtuelles dans l'infrastructure interne du grand Yandex exactement, et, en outre, nous pensons que, mĂȘme si cela est fait, cela ne devrait pas se produire avec le support rĂ©seau. Si vous avez vraiment besoin de le faire, vous devez le faire au niveau de l'hĂŽte et conduire les adresses qui peuvent migrer dans des superpositions afin de ne pas toucher ou apporter trop de modifications dynamiques au systĂšme de routage lui-mĂȘme sous-jacent (rĂ©seau de transport).

Une autre technologie que nous n'utilisons pas est la multidiffusion. Je peux vous expliquer en dĂ©tail pourquoi. Cela rend la vie beaucoup plus facile, car si quelqu'un s'occupe de lui et regarde Ă  quoi ressemble exactement le plan de contrĂŽle d'une multidiffusion - dans toutes les installations, sauf la plus simple, c'est un gros casse-tĂȘte. Et de plus, il est difficile de trouver une implĂ©mentation open source qui fonctionne bien, par exemple.

Enfin, nous concevons nos réseaux pour qu'ils n'aient pas trop de changements. Nous pouvons compter sur le fait que le flux d'événements externes dans le systÚme de routage est faible.



Quels problĂšmes surviennent et quelles limites doivent ĂȘtre prises en compte lorsque nous dĂ©veloppons un rĂ©seau de centre de donnĂ©es? CoĂ»t bien sĂ»r. ÉvolutivitĂ©, Ă  quel niveau nous voulons grandir. La nĂ©cessitĂ© d'une expansion sans arrĂȘter le service. DisponibilitĂ© de la bande passante. La visibilitĂ© de ce qui se passe sur le rĂ©seau, pour les systĂšmes de surveillance, pour les Ă©quipes opĂ©rationnelles. La prise en charge de l'automatisation est, lĂ  encore, autant que possible, car diffĂ©rentes tĂąches peuvent ĂȘtre rĂ©solues Ă  diffĂ©rents niveaux, y compris l'introduction de couches supplĂ©mentaires. Eh bien et non - [dans la mesure du possible] - dĂ©pendance vis-Ă -vis des fournisseurs. Bien que dans diffĂ©rentes pĂ©riodes historiques, selon la section Ă  examiner, cette indĂ©pendance Ă©tait plus facile ou plus difficile Ă  rĂ©aliser. Si nous prenons une tranche des puces des pĂ©riphĂ©riques rĂ©seau, alors jusqu'Ă  rĂ©cemment, parlons d'indĂ©pendance vis-Ă -vis des fournisseurs, si nous voulions Ă©galement des puces Ă  haut dĂ©bit, cela pourrait ĂȘtre trĂšs arbitraire.



Quelle topologie logique utiliserons-nous pour construire notre rĂ©seau? Ce sera un Clos Ă  plusieurs niveaux. En fait, il n'existe actuellement aucune vĂ©ritable alternative. Et la topologie Clos est assez bonne, mĂȘme si nous la comparons avec diverses topologies avancĂ©es qui sont dĂ©sormais plus dans la sphĂšre d'intĂ©rĂȘt acadĂ©mique, si nous avons des commutateurs avec une grande radix.



Comment le rĂ©seau de Clos en couches est-il approximativement structurĂ© et quels sont les diffĂ©rents Ă©lĂ©ments qui y sont appelĂ©s? Tout d'abord, le vent s'est levĂ©, pour savoir oĂč le nord, oĂč le sud, oĂč l'est, oĂč l'ouest. Les rĂ©seaux de ce type sont gĂ©nĂ©ralement construits par ceux qui ont un trĂšs gros trafic ouest - est. Comme pour le reste des Ă©lĂ©ments, un commutateur virtuel assemblĂ© Ă  partir de commutateurs plus petits est illustrĂ© en haut. C'est l'idĂ©e de base de la construction rĂ©cursive de rĂ©seaux Clos. Nous prenons des Ă©lĂ©ments avec une sorte de radix et les connectons afin que ce qui s'est passĂ© puisse ĂȘtre considĂ©rĂ© comme un commutateur avec une radix plus grande. Si vous en avez besoin de plus, la procĂ©dure peut ĂȘtre rĂ©pĂ©tĂ©e.

Dans les cas, par exemple, avec un Clos à deux niveaux, lorsqu'il est possible de distinguer clairement les composants verticaux dans mon diagramme, ils sont généralement appelés plans. Si nous construisions Clos-avec trois niveaux de commutateurs vertébraux (tous ceux qui ne sont pas des commutateurs borderline et non ToR et qui ne sont utilisés que pour le transit), les avions auraient l'air plus compliqués, les deux niveaux ressembleraient exactement à cela. Le bloc de commutateurs ToR ou feuille et les commutateurs vertébraux associés de premier niveau que nous appelons Pod. Les commutateurs de niveau 1 de la colonne vertébrale en haut du pod sont le haut du pod, le haut du pod. Les commutateurs qui sont situés en haut de l'usine entiÚre sont la couche supérieure de l'usine, le haut du tissu.



Bien sĂ»r, la question se pose: les Clos-rĂ©seaux sont construits depuis un certain temps, l'idĂ©e elle-mĂȘme vient gĂ©nĂ©ralement de l'Ă©poque de la tĂ©lĂ©phonie classique, les rĂ©seaux TDM. Peut-ĂȘtre que quelque chose de mieux est apparu, peut-ĂȘtre que vous pouvez faire quelque chose de mieux d'une maniĂšre ou d'une autre? Oui et non. ThĂ©oriquement, oui, dans la pratique, dans un proche avenir, certainement pas. Parce qu'il existe un certain nombre de topologies intĂ©ressantes, certaines d'entre elles sont mĂȘme utilisĂ©es en production, par exemple, Dragonfly est utilisĂ© dans les applications HPC; Il existe Ă©galement des topologies intĂ©ressantes telles que Xpander, FatClique, Jellyfish. Si vous regardez des rapports lors de confĂ©rences telles que SIGCOMM ou NSDI ces derniers temps, vous pouvez trouver un assez grand nombre d'articles sur des topologies alternatives qui ont de meilleures propriĂ©tĂ©s (l'une ou l'autre) que Clos.

Mais toutes ces topologies ont une propriĂ©tĂ© intĂ©ressante. Il empĂȘche leur mise en Ɠuvre dans les rĂ©seaux de centres de donnĂ©es, que nous essayons de construire sur du matĂ©riel de base et qui coĂ»tent de l'argent raisonnablement raisonnable. Dans toutes ces topologies alternatives, la majeure partie de la bande n'est malheureusement pas accessible via les chemins les plus courts. Par consĂ©quent, nous perdons immĂ©diatement la possibilitĂ© d'utiliser le plan de contrĂŽle traditionnel.

ThĂ©oriquement, la solution au problĂšme est connue. Ce sont, par exemple, des modifications de l'Ă©tat de la liaison utilisant le chemin le plus court k, mais, encore une fois, il n'y a pas de protocoles qui seraient mis en Ɠuvre en production et massivement disponibles sur l'Ă©quipement.

De plus, comme la majeure partie de la capacité n'est pas accessible via les chemins les plus courts, nous devons modifier non seulement le plan de contrÎle afin qu'il sélectionne tous ces chemins (et, en passant, c'est un état beaucoup plus grand dans le plan de contrÎle). Nous devons encore modifier le plan de transfert et, en rÚgle générale, au moins deux fonctionnalités supplémentaires sont requises. C'est l'occasion de prendre toutes les décisions concernant le transfert de packages une seule fois, par exemple, sur un hÎte. Il s'agit en fait d'un routage source, parfois dans la littérature sur les réseaux d'interconnexion, il est appelé décision de transfert tout à la fois. Et le routage adaptatif est déjà une fonction dont nous avons besoin sur les éléments du réseau, ce qui se résume, par exemple, au fait que nous sélectionnons le saut suivant en fonction des informations sur la moindre charge dans la file d'attente. A titre d'exemple, d'autres options sont possibles.

Ainsi, la direction est intéressante, mais, hélas, nous ne pouvons pas l'appliquer maintenant.



D'accord, rĂ©glĂ© sur la topologie logique de Clos. Comment allons-nous l'adapter? Voyons comment cela fonctionne et ce qui peut ĂȘtre fait.



Dans le réseau Clos, il existe deux paramÚtres principaux que nous pouvons en quelque sorte varier et obtenir certains résultats: les éléments radix et le nombre de niveaux dans le réseau. Je décris schématiquement comment l'un et l'autre affectent la taille. Idéalement, nous combinons les deux.



On peut voir que la largeur totale du réseau Clos est un produit de tous les niveaux de commutateurs vertébraux du radix sud, du nombre de liens que nous avons, de la façon dont il se ramifie. C'est ainsi que nous adaptons la taille du réseau.



En ce qui concerne la capacité, en particulier sur les commutateurs ToR, il existe deux options de mise à l'échelle. Soit nous pouvons, tout en conservant la topologie générale, utiliser des liens plus rapides, soit nous pouvons ajouter plus de plans.

Si vous regardez la version détaillée du réseau Clos (dans le coin inférieur droit) et revenez à cette image avec le réseau Clos ci-dessous ...



... alors c'est exactement la mĂȘme topologie, mais sur cette diapositive, elle est rĂ©duite de maniĂšre plus compacte et les plans d'usine sont superposĂ©s les uns aux autres. C'est une seule et mĂȘme chose.



À quoi ressemble la mise Ă  l'Ă©chelle d'un rĂ©seau Clos en chiffres? Ici, j'ai des donnĂ©es sur la largeur maximale qu'un rĂ©seau peut obtenir, sur le nombre maximal de racks, de commutateurs ToR ou de commutateurs feuille, s'ils ne sont pas dans des racks, nous pouvons les obtenir en fonction de la gamme de commutateurs que nous utilisons pour les Ă©pines niveaux et combien de niveaux nous utilisons.

Il montre combien de racks nous pouvons avoir, combien de serveurs et combien tout cela peut consommer à raison de 20 kW par rack. Un peu plus tÎt, j'ai mentionné que nous visons une taille de cluster d'environ 100 000 serveurs.

On peut voir que dans toute cette construction, deux options et demie sont intĂ©ressantes. Il y a une option avec deux couches d'Ă©pines et des commutateurs 64 ports, ce qui est un peu court. Ensuite, des options parfaitement adaptĂ©es pour les commutateurs de colonne vertĂ©brale Ă  128 ports (avec 128 radix) Ă  deux niveaux, ou les commutateurs Ă  32 radix Ă  trois niveaux. Et dans tous les cas oĂč il y a plus de radix et plus de niveaux, vous pouvez faire un trĂšs grand rĂ©seau, mais si vous regardez la consommation attendue, en rĂšgle gĂ©nĂ©rale, il y a des gigawatts. Vous pouvez poser le cĂąble, mais il est peu probable que nous obtenions autant d'Ă©lectricitĂ© sur un seul site. Si vous regardez les statistiques, les donnĂ©es publiques sur les centres de donnĂ©es - trĂšs peu de centres de donnĂ©es peuvent ĂȘtre trouvĂ©s pour une capacitĂ© estimĂ©e Ă  plus de 150 MW. De plus, en rĂšgle gĂ©nĂ©rale, les campus de centres de donnĂ©es, plusieurs grands centres de donnĂ©es situĂ©s assez prĂšs les uns des autres.

Il y a un autre paramĂštre important. Si vous regardez la colonne de gauche, la bande passante utilisable y est indiquĂ©e. Il est facile de remarquer que dans un rĂ©seau Clos, une partie importante des ports est consacrĂ©e Ă  la connexion des commutateurs entre eux. La bande passante utilisable est ce que vous pouvez distribuer, vers les serveurs. Naturellement, je parle des ports conditionnels et de la bande. En rĂšgle gĂ©nĂ©rale, les liaisons au sein du rĂ©seau sont plus rapides que les liaisons vers les serveurs, mais par unitĂ© de bande, dans la mesure oĂč nous pouvons la distribuer Ă  notre Ă©quipement serveur, il y a encore plus de bandes au sein du rĂ©seau lui-mĂȘme. Et plus nous faisons de niveaux, plus les coĂ»ts unitaires pour fournir cette bande Ă  l'extĂ©rieur sont Ă©levĂ©s.

De plus, mĂȘme cette bande supplĂ©mentaire n'est pas exactement la mĂȘme. Bien que les portĂ©es soient courtes, nous pouvons utiliser quelque chose comme le DAC (cuivre Ă  connexion directe, c'est-Ă -dire des cĂąbles twinax) ou l'optique multimode, qui coĂ»te encore plus ou moins raisonnable. DĂšs que nous passons Ă  des portĂ©es plus authentiques - en rĂšgle gĂ©nĂ©rale, il s'agit d'optiques monomodes, et le coĂ»t de cette bande supplĂ©mentaire augmente considĂ©rablement.

Et encore une fois, en revenant Ă  la diapositive prĂ©cĂ©dente, si nous crĂ©ons un rĂ©seau Clos sans rĂ©abonnement, il est facile de regarder le diagramme, de voir comment le rĂ©seau est construit - en ajoutant chaque niveau de commutateurs vertĂ©braux, nous rĂ©pĂ©tons la bande entiĂšre qui Ă©tait en dessous. Niveau plus - plus toute la mĂȘme bande, le mĂȘme nombre de ports sur les commutateurs qu'au niveau prĂ©cĂ©dent, le mĂȘme nombre d'Ă©metteurs-rĂ©cepteurs. Par consĂ©quent, le nombre de niveaux de commutateurs vertĂ©braux est trĂšs souhaitable pour minimiser.

Sur la base de cette image, il est clair que nous voulons vraiment construire sur quelque chose comme des commutateurs avec 128 radix.



Ici, en principe, tout est le mĂȘme que je viens de le dire, cette diapositive est plus susceptible d'ĂȘtre examinĂ©e plus tard.



, ? , - . , . , . , . , , , , . ( ), control plane , , , , . , , .

, , , SerDes- — - . forwarding . , , , , , Clos-, . .

, , . , , , , , , , , , .



— , . , , . , , , - , . , , , , .

, , , . -, , . , , 128 , .

, , , data plane. . , , . , , , . , , , , 128 , . . . .

, - , . ( ), , — ToR- leaf-, . - , , , , - . , , , - .



, , .



? . , , , : leaf-, 1, 2. , — twinax, multimode, single mode. , , , , , .

. , , multimode , , , 100- . , , , single mode , , single mode, - CWDM, single mode (PSM) , , , .

: , 100 425 . SFP28 , QSFP28 100 . multimode .

- , - , - - . , . , - Pods twinax- ( ).

, , , CWDM. .



, , . , , 50- SerDes . , , 400G, 50G SerDes- , 100 Gbps per lane. , 50 100- SerDes 100 Gbps per lane, . , 50G SerDes , , , 100G SerDes . - , , .



. , 400- 200- 50G SerDes. , , , , , , . 128. , , , , .

, , . , , , , , 100- , .



— , . , . leaf- — , . , , — .

, , , -. , , - -, . . , , , . - -, -, , , , . : . - , « », Clos-, . , , .



. - , , , , -2-.

. , - 512 512 , , , -2. Pods -1, -, -2.



Voici à quoi ça ressemble. -2 () -. , . -, . , , .



: , . control plane-? , - , link state , , , , . , — , link state . , , , , fanout, control plane . link state .

— BGP. , RFC 7938 BGP -. : , , , path hunting. , , , valley free. , , , . , , . . .

, , BGP. eBGP, link local, : ToR, -1- Pod, Top of Fabric. , BGP , .



, , , , control plane. L3 , , . — , , , multi-path, multi-path , , , . , , , , , . , multi-path, ToR-.



, , — . , , , , BGP, . , corner cases , BGP .

RIFT, .



— , data plane , . : ECMP , Next Hop.

, , Clos- , , , , , . , ECMP, single path-. . , Clos- , Top of fabric, , . , , . , ECMP state.

data plane ? LPM (longest prefix match), , 100 . Next Hop , , 2-4 . , Next Hops ( adjacencies), - 16 64. . : MPLS -? , .



. , . white boxes MPLS. MPLS, , , , ECMP. Et voici pourquoi.



ECMP- IP. Next Hops ( adjacencies, -). , -, Next Hop. IP , , Next Hops.



MPLS , . Next Hops . , , .

, 4000 ToR-, — 64 ECMP, -1 -2. , , ECMP-, ToR , Next Hops.



, Segment Routing . Next Hops. wild card: . , .

, - . ? Clos- . , Top of fabric. . , , Top of fabric, , , . , , , , .

— . , Clos- , , , ToR, Top of fabric , . Pod, Edge Pod, .

. , , Facebook. Fabric Aggregator HGRID. -, -. , . , touch points, . , , -. , - , , . , , . overlays, .



? — CI/CD-. , , , . , , . , , .

, . . — .

. , RIFT. congestion control , , , , RDMA .

, , , , overhead. — HPC Cray Slingshot, commodity Ethernet, . overhead .



, , . — . — . - scale out — . , . . Je vous remercie

Source: https://habr.com/ru/post/fr476146/


All Articles