Facebook Engineering

Chez Facebook, nous mettons l’accent sur la construction de nos centres de données avec du matériel entièrement ouvert et désagrégé conçu par nos ingénieurs et open source via l’Open Compute Project (OCP). En désagrégeant notre pile, nous pouvons remplacer le matériel ou les logiciels dès qu’une meilleure technologie devient disponible. Cette approche a permis des gains de performances impressionnants sur les couches de calcul, de stockage et de réseau.

Alors que la demande de nos centres de données ne cesse de croître, nous cherchons continuellement des moyens de gérer les données de manière plus efficace et à des vitesses toujours plus rapides. Notre stratégie consiste à construire des centres de données 100G, et Wedge 100, notre commutateur réseau haut de gamme de deuxième génération, est l’un des éléments clés qui nous aident à atteindre cet objectif.

Aujourd’hui, nous sommes ravis d’annoncer que la spécification Wedge 100 a été acceptée dans OCP. L’industrie a déjà construit un écosystème logiciel robuste autour d’elle, et nous espérons que cet ajout à la communauté accélérera le rythme de l’innovation et permettra à d’autres d’apporter également 100G à leurs centres de données.

Dans cet article de blog, nous décrirons l’écosystème matériel et logiciel actuel, et nous partagerons certaines de nos expériences d’utilisation de Wedge 100 en production.Chez Facebook Facebook, nous utilisons Wedge 100 dans nos environnements de production et nous continuons à le déployer à grande échelle dans nos centres de données. Il s’agit d’un élément de notre stratégie de réseau de centres de données 100G, tout en nous permettant de maintenir une rétrocompatibilité avec les appareils 40G existants. Côté logiciel, nous continuons à utiliser FBOSS et OpenBMC, nos propres implémentations de gestion de pile réseau et de plinthes, ce qui nous donne la flexibilité d’itérer rapidement et d’introduire de nouvelles fonctionnalités et innovations dans notre réseau.

La création de Wedge 100 a été une entreprise complexe, mais nous avons pu itérer sur le matériel et les logiciels en toute confiance grâce à nos enseignements tirés de la création et du déploiement de Wedge 40. Nous avons réutilisé bon nombre des mêmes composants matériels et apporté des modifications clés pour résoudre les points douloureux que nous ressentons avec Wedge 40. Sur Wedge 100, nous utilisons également le même logiciel FBOSS que Wedge 40, mais nous l’avons étendu pour prendre en charge la nouvelle plate-forme avec des puces et des optiques ASIC 100G.

Mises à jour matérielles

Nous avons construit le Wedge 100 avec un module COM-Express Type 6 au format compact (95 mm x 95 mm) comme microserveur; cela est de bon augure pour les plates-formes de commutation 100G et plus rapides. Wedge 100 prend également en charge le facteur de forme du module COM-Express (95 mm x 125 mm), ce qui permet une conception flexible au cas où des PROCESSEURS plus avancés seraient nécessaires pour des applications spéciales.

La facilité d’entretien est un objectif clé pour nous chez Facebook. Nous avons des milliers de commutateurs à coin déployés et seulement quelques techniciens de centre de données, ce qui signifie que nous devons être en mesure de réparer et de réparer un commutateur rapidement et sans effort, sans aucun outil. Nous avons apporté des améliorations majeures à la facilité d’entretien de l’interrupteur avec Wedge 100. Le capot supérieur peut maintenant être retiré sans outils, offrant un accès facile aux composants internes de commutation pour nos techniciens de centre de données. Les plateaux de ventilateur enfichables à chaud peuvent maintenant être retirés en appuyant sur un clip plutôt qu’en retirant une vis à molette. De plus, les techniciens du centre de données peuvent facilement visualiser l’état du plateau du ventilateur via une LED d’état à côté de chaque plateau du ventilateur. La combinaison de ceux-ci permet un débogage très rapide et un remplacement sur le terrain si nécessaire.

Pour les liaisons montantes de Wedge 100 dans les centres de données de Facebook, nous utilisons des optiques avec une limite de température inférieure de 55 C, par opposition à la plage de température commerciale standard de 70 C. Nous avons consacré beaucoup d’efforts à la conception thermique du système, y compris l’ajout d’un plateau de ventilateur supplémentaire, de chicanes d’air pour séparer les trajets d’air entre le bloc d’alimentation et la carte de commutation principale, et la conception de l’ouverture du panneau avant pour maximiser le flux d’air.

Le châssis Wedge 100 est conçu pour un rack 19″ standard de l’industrie, il peut donc être facilement adopté par la communauté des réseaux. Cependant, nos centres de données utilisent des Racks ouverts, et nous aimerions également alimenter Wedge 100 en utilisant les unités d’alimentation Open Rack V2 hautement efficaces et cotées en titane via la barre omnibus 12V à l’arrière du rack. Nous avons donc conçu un plateau adaptateur pour rack ouvert de 21  » qui permet de monter Wedge 100 dans un tel rack. Nous avons également conçu un module de passage d’alimentation qui relie la barre omnibus 12V à l’entrée 12V de la carte de commutation principale Wedge 100. Il est dans le même facteur de forme que le bloc d’alimentation CA / CC standard et contient un contrôleur d’échange à chaud 12V.

Vous pouvez trouver les spécifications de conception pour Wedge 100 ici.

Adaptateur Wedge100 Open Rack V2

Mises à jour logicielles

Notre pile logicielle pour Wedge100 est presque identique à celle pour Wedge 40. Nous exécutons les mêmes démons de commutation et de routage FBOSS, et nous utilisons le même ensemble d’outils pour gérer les commutateurs en production. Il y a toujours du travail à faire pour prendre en charge une nouvelle plate-forme, mais l’un des principes directeurs de FBOSS est de créer l’ensemble de fonctionnalités minimal dont nous avons besoin pour notre environnement. Cela nous permet de garder notre code lean et de l’adapter facilement à de nouveaux environnements et plates-formes, au lieu de partir de zéro ou de gérer des bases de code parallèles. Obtenir l’ensemble des protocoles que nous prenons en charge — NDP, DHCP, ARP, LLDP, ECMP, ICMP — et les fonctionnalités dont nous avons besoin pour fonctionner — démarrage à chaud — travailler sur Wedge100 était plus un exercice itératif puisque nous avions l’expérience de l’exécution de Wedge 40 en production. Cela nous a permis de lancer le projet Wedge100 et de l’utiliser comme une opportunité de durcir notre pile logicielle FBOSS.

Comme nous gérions les Wedge 40 en production depuis près de deux ans et que l’infrastructure était en place, nous avons commencé à tester Wedge100 dans un environnement de production presque immédiatement. L’exécution de commutateurs desservant le trafic de production nous donne le meilleur signal pour les changements que nous devons apporter. En fin de compte, nous avons constaté que notre plus grand défi était du côté opérationnel — en particulier la configuration, le provisionnement et la gestion de Wedge 40 et Wedge 100 en parallèle dans notre réseau. Chez Facebook, l’équipe FBOSS écrit à la fois le logiciel qui effectue le transfert de paquets et la suite d’outils que nous utilisons pour gérer les commutateurs de manière opérationnelle. Pour cette raison, nous avons eu une boucle de rétroaction positive et, en fin de compte, les leçons tirées des décisions en matière de logiciels — et même de matériel — éclairées par la production. De cette façon, nous avons pu nous concentrer sur les fonctionnalités dont nous avions réellement besoin et obtenir des commutateurs Wedge 100 transmettant très rapidement le trafic de production.

Un autre défi auquel nous avons été confrontés lors de la construction de Wedge 100 était de rendre notre plate-forme logicielle plus flexible. Lorsque nous avons déployé Wedge 40, nous avons profité du fait que l’ensemble des configurations que nous devions prendre en charge était assez contraint et que nous pouvions facilement les supporter. Avec Wedge 100, ce n’était pas le cas. Nous voulions déposer un Coin 100 à n’importe quel endroit de notre réseau qui avait un coin 40. Les vitesses de liaison descendante et les types de câbles peuvent varier. Les vitesses de liaison montante peuvent varier entre les anciens et les nouveaux clusters. Une configuration correcte est particulièrement importante pour les liaisons 100G car elles ont une marge de puissance optique beaucoup plus petite et peuvent présenter plus de défis pour établir la liaison et optimiser les performances, nécessitant une configuration beaucoup plus soignée que celle de 40G. La prise en charge de ces nouveaux environnements a nécessité des modifications de la couche physique jusqu’à notre pile de surveillance. Nous avons étendu notre prise en charge de la spécification SFF pour pouvoir utiliser des optiques CWDM4 fonctionnant à différentes vitesses en modifiant dynamiquement la classe de puissance, le CDR, la sélection de taux, la FEC, la pré-accentuation et d’autres pour prendre en charge ces différents paramètres. Nous avons également retravaillé une grande partie de nos workflows de configuration et de provisionnement pour pouvoir prendre en charge toutes ces possibilités.

Enfin, posséder notre propre pile logicielle permet de corriger les bugs ou d’ajouter des fonctionnalités à ces appareils beaucoup plus rapidement pour Facebook. Par exemple, nous avons observé que les optiques 100G atteignaient des températures de fonctionnement plus élevées, nous avons donc modifié la logique de contrôle du ventilateur de notre contrôleur de gestion de carte, OpenBMC, pour obtenir un meilleur profil thermique lorsque ces modules sont présents. D’autres fois, nous avons rencontré des panique du noyau sur le microserveur. Étant donné que nous avons une équipe d’ingénierie qui gère nos propres versions du noyau, nous pourrions tirer parti de leur expertise pour déboguer les problèmes. Posséder l’ensemble de la pile nous permet également de faire d’autres choses intéressantes, comme la simplification des procédures de maintenance des appareils en modifiant la signification des LED du panneau avant sur ces commutateurs, en fonction des commentaires que nous recevons de l’équipe des opérations du centre de données.

Le code FBOSS est entièrement open source et disponible sur GitHub. Nous avons ouvert notre logiciel l’année dernière et nous sommes depuis passés à un cycle de publication continu, poussant automatiquement les diff internes vers GitHub. Si vous souhaitez en savoir plus sur ce sur quoi nous travaillons, veuillez consulter le code.

Écosystème matériel et logiciel

Le commutateur Wedge 100 est maintenant disponible en tant que produit commercial auprès d’Edgecore Networks et de ses partenaires de distribution dans le monde entier. Le Wedge 100-32X d’Edgecore est entièrement conforme à la spécification Wedge 100 OCP et est fabriqué par la société mère d’Edgecore, Accton Technology, qui fabrique également le Wedge 100 pour notre déploiement réseau. Le commutateur matériel Wedge 100-32X comprend une garantie de trois ans et est livré avec des diagnostics, un micrologiciel OpenBMC et le chargeur universel NOS de l’environnement d’installation Réseau ouvert.

Nous avons également constaté un fort intérêt de la part des fournisseurs d’émetteurs-récepteurs pour qualifier leurs modules sur la plate-forme. Pour répondre à cette demande, nous travaillons en partenariat avec le Laboratoire d’interopérabilité de l’Université du New Hampshire (UNH-IOL) afin que tous les modules puissent être testés professionnellement dans leurs installations. L’UNH-IOL continue d’être un chef de file dans la fourniture de services de test et de conformité aux normes neutres et généralisés pour l’industrie des réseaux.

Du côté des logiciels, plusieurs entreprises construisent leurs solutions sur la plate-forme Wedge 100. Sur la couche système d’exploitation, nous avons de gros réseaux de commutateurs et Canoniques; et sur les parties supérieures de la pile, nous avons SnapRoute, FRINX et Apstra.

  • Big Switch Networks continue de piloter Open Network Linux (ONL), le premier système d’exploitation réseau open source à prendre en charge le Wedge 40 d’origine, et maintenant le Wedge 100; Le FBOSS de Facebook est également disponible dès maintenant en plus de ONL sur Wedge 40 et bientôt Wedge 100. ONL fait partie du projet Open Compute et prend en charge plus de 30 commutateurs réseau ouverts OCP et non OCP différents. Ils utilisent également ONL en interne comme base de leurs produits commerciaux Big Monitoring Fabric et Big Cloud Fabric.
  • Canonical apportera Ubuntu Core, son nouveau système d’exploitation pour les appareils cloud et IoT, à la plate-forme Wedge 100. Ubuntu Core peut exécuter un certain nombre de piles réseau différentes comme FBOSS ou SnapRoute sous forme de snaps, et activer le provisionnement bare-metal pour les gros logiciels comme OpenStack, Hadoop et Kubernetes sur la couche de calcul du centre de données à partir du commutateur haut de rack.
  • SnapRoute a annoncé la disponibilité du logiciel FlexSwitch au-dessus de la plate-forme Wedge 100. FlexSwitch est une pile réseau L2 /L3 open source qui peut être exécutée sur plusieurs plates-formes matérielles. Il vise à changer l’économie du fonctionnement du réseau en fournissant un plan de contrôle entièrement personnalisable et programmable et en offrant un cadre complet pour l’automatisation du cycle de vie et l’analyse du réseau. Il est construit autour des concepts de modularité totale, promouvant l’idée de n’exécuter que l’ensemble des fonctionnalités requises par le réseau, par opposition à l’approche traditionnelle unique.
  • FRINX se concentre sur l’intégration d’OpenDaylight, une plate-forme SDN open source, sur Wedge 100. Ils travaillent à la création d’une solution prête à l’emploi prise en charge pour les déploiements de centres de données, entièrement basée sur des composants open source.
  • Apstra fonctionne sur une couche supérieure avec le système d’exploitation Apstra (AOS), un système d’exploitation distribué indépendant du fournisseur qui peut traduire l’intention de l’utilisateur en une infrastructure validée en continu. Ils travaillent sur une solution capable de gérer les piles basées sur ONL et Snaproute ainsi que d’autres systèmes d’exploitation réseau, disponible début 2017.

Nous sommes ravis d’avoir un ensemble de technologies aussi complet et diversifié dans l’espace matériel de réseau ouvert, et nous continuerons à travailler avec d’autres entreprises sur Wedge 100. Au début de l’année prochaine, nous prévoyons de présenter ces solutions logicielles et matérielles de réseau de la communauté OCP, y compris celles construites sur Wedge 100, et nous continuerons à partager nos expériences avec les réseaux désagrégés. Restez à l’écoute !

Merci à toutes les équipes et personnes qui ont contribué à ce projet.

You might also like

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.