Bei Facebook legen wir großen Wert darauf, unsere Rechenzentren mit vollständig offener und disaggregierter Hardware zu bauen, die von unseren Ingenieuren entwickelt und über das Open Compute Project (OCP) Open-Source ist. Durch die Disaggregation unseres Stacks können wir Hardware oder Software ersetzen, sobald bessere Technologien verfügbar sind. Dieser Ansatz hat beeindruckende Leistungssteigerungen auf den Rechen-, Speicher- und Netzwerkebenen ermöglicht.
Da die Anforderungen an unsere Rechenzentren ständig steigen, suchen wir kontinuierlich nach Möglichkeiten, Daten effizienter und mit immer höheren Geschwindigkeiten zu verarbeiten. Unsere Strategie ist es, 100G-Rechenzentren zu bauen, und Wedge 100, unser Top-of-Rack-Netzwerk-Switch der zweiten Generation, ist eine der Schlüsselkomponenten, die uns dabei helfen, dieses Ziel zu erreichen.
Wir freuen uns, Ihnen heute mitteilen zu können, dass die Wedge 100-Spezifikation in OCP aufgenommen wurde. Die Branche hat bereits ein robustes Software-Ökosystem aufgebaut, und wir hoffen, dass diese Erweiterung der Community das Innovationstempo beschleunigen und es anderen ermöglichen wird, 100G auch in ihre Rechenzentren zu bringen.
In diesem Blogbeitrag beschreiben wir das aktuelle Hardware- und Software-Ökosystem und teilen einige unserer Erfahrungen mit Wedge 100 in der Produktion.Facebook Wedge 100
Bei Facebook Wedge 100
Bei Facebook verwenden wir Wedge 100 in unseren Produktionsumgebungen und setzen es weiterhin in großem Maßstab in unseren Rechenzentren ein. Es ist eine Komponente unserer 100G-Rechenzentrumsnetzwerkstrategie und ermöglicht es uns gleichzeitig, die Abwärtskompatibilität mit vorhandenen 40G-Geräten aufrechtzuerhalten. Auf der Softwareseite verwenden wir weiterhin FBOSS und OpenBMC, unsere eigenen Netzwerk-Stack- und Baseboard-Management-Implementierungen, die uns die Flexibilität geben, schnell zu iterieren und neue Funktionen und Innovationen in unser Netzwerk einzuführen.
Die Erstellung von Wedge 100 war ein komplexes Unterfangen, aber aufgrund unserer Erkenntnisse aus der Erstellung und Bereitstellung von Wedge 40 konnten wir die Hardware und Software mit Zuversicht durchlaufen. Wir haben viele der gleichen Hardwarekomponenten wiederverwendet und wichtige Änderungen vorgenommen, um die Probleme zu beheben, die wir mit Wedge 40 hatten. Auf Wedge 100 führen wir auch die gleiche FBOSS-Software wie Wedge 40 aus, aber wir haben sie erweitert, um die neue Plattform mit 100G ASIC-Chips und Optiken zu unterstützen.
Hardware-Updates
Wir bauten Wedge 100 mit einem COM-Express Typ 6 Modul im kompakten Formfaktor (95mm x 95mm) als Microserver; Dies ist ein gutes Zeichen für 100G und höhere Geschwindigkeit Switch-Plattformen. Wedge 100 unterstützt auch den COM-Express-Modulformfaktor (95 mm x 125 mm), der ein flexibles Design ermöglicht, falls für spezielle Anwendungen fortschrittlichere CPUs erforderlich sind.
Servicefreundlichkeit steht für uns bei Facebook im Vordergrund. Wir haben Tausende von Keilschaltern im Einsatz und nur wenige Techniker im Rechenzentrum, was bedeutet, dass wir in der Lage sein müssen, einen Switch schnell und mühelos ohne Werkzeug zu warten und zu reparieren. Mit Wedge 100 haben wir die Wartungsfreundlichkeit des Schalters erheblich verbessert. Die obere Abdeckung kann jetzt ohne Werkzeug entfernt werden und bietet unseren Technikern im Rechenzentrum einfachen Zugang zu den Switch-Einbauten. Die Hot-pluggable Fan Trays können nun durch Drücken auf einen Clip oder durch Entfernen einer Rändelschraube entfernt werden. Darüber hinaus können die Techniker des Rechenzentrums den Status des Lüfterfachs einfach über eine Status-LED neben jedem Lüfterfach anzeigen. Die Kombination dieser ermöglicht ein sehr schnelles Debuggen und bei Bedarf einen Austausch vor Ort.
Für die Uplinks von Wedge 100 in Facebooks Rechenzentren verwenden wir Optiken, die mit einer niedrigeren Temperaturgrenze von 55 C im Vergleich zum handelsüblichen Standardtemperaturbereich von 70 C ausgestattet sind. Wir haben viel Mühe in das thermische Design des Systems gesteckt, einschließlich des Hinzufügens einer weiteren Lüfterschale, Luftleitblechen zur Trennung der Luftwege zwischen dem Netzteil und der Hauptschalttafel und des Frontplattenöffnungsdesigns zur Maximierung des Luftstroms.
Das Wedge 100-Chassis ist für ein Industriestandard-19 „-Rack ausgelegt, sodass es von der Netzwerk-Community problemlos übernommen werden kann. Unsere Rechenzentren verwenden jedoch offene Racks, und wir möchten Wedge 100 auch mit den hocheffizienten Open Rack V2-Netzteilen mit Titan-Bewertung über die 12-V-Sammelschiene an der Rückseite des Racks mit Strom versorgen. Daher haben wir ein 21 „Offenes Rack-Adapterfach entwickelt, mit dem Wedge 100 in einem solchen Rack montiert werden kann. Wir haben auch ein Netzteil-Durchgangsmodul entwickelt, das die 12-V-Sammelschiene mit dem 12-V-Eingang der Wedge 100-Hauptschaltplatine verbindet. Es hat den gleichen Formfaktor wie das Standard-AC / DC-Netzteil und enthält einen 12-V-Hot-Swap-Controller.
Die Design-Spezifikationen für Wedge 100 finden Sie hier.
Software Updates
Unser Software Stack für Wedge100 ist nahezu identisch mit dem Stack für Wedge 40. Wir führen dieselben FBOSS-Switching- und Routing-Daemons aus und verwenden dieselben Tools, um die Switches in der Produktion zu verwalten. Es gibt immer Arbeit, die getan werden muss, um eine neue Plattform zu unterstützen, aber eines der Leitprinzipien für FBOSS ist es, den minimalen Funktionsumfang zu erstellen, den wir für unsere Umgebung benötigen. Dies ermöglicht es uns, unseren Code schlank zu halten und ihn einfach an neue Umgebungen und Plattformen anzupassen, anstatt bei Null anzufangen oder parallele Codebasen zu verwalten. Die von uns unterstützten Protokolle — NDP, DHCP, ARP, LLDP, ECMP, ICMP — und die Funktionen, die wir für den Betrieb benötigen — Warmstart — Die Arbeit an Wedge100 war eher eine iterative Übung, da wir Erfahrung mit Wedge 40 in der Produktion hatten. Dies ermöglichte es uns, das Wedge100-Projekt auf den Weg zu bringen und es als Gelegenheit zu nutzen, unseren FBOSS-Software-Stack zu härten.
Da wir Wedge 40s seit fast zwei Jahren in der Produktion verwalten und über die entsprechende Infrastruktur verfügten, begannen wir fast sofort mit dem Testen von Wedge100 in einer Produktionsumgebung. Die Ausführung von Switches, die den Produktionsverkehr bedienen, gibt uns das beste Signal für Änderungen, die wir vornehmen müssen. Wie sich herausstellte, lag unsere größte Herausforderung auf der Betriebsseite — insbesondere bei der Konfiguration, Bereitstellung und Verwaltung von Wedge 40 und Wedge 100 parallel in unserem Netzwerk. Bei Facebook schreibt das FBOSS-Team sowohl die Software, die die Paketweiterleitung durchführt, als auch die Tools, mit denen wir die Switches operativ verwalten. Aus diesem Grund hatten wir eine positive Rückkopplungsschleife und am Ende informierten die in der Produktion gewonnenen Erkenntnisse über Software— und sogar Hardwareentscheidungen. Auf diese Weise konnten wir uns auf die Funktionen konzentrieren, die wir tatsächlich benötigten, und Wedge 100 Switches dazu bringen, den Produktionsverkehr sehr schnell weiterzuleiten.
Eine weitere Herausforderung bei der Entwicklung von Wedge 100 bestand darin, unsere Softwareplattform flexibler zu gestalten. Bei der Bereitstellung von Wedge 40 profitierten wir von der Tatsache, dass die Konfigurationen, die wir unterstützen mussten, ziemlich eingeschränkt waren und wir sie problemlos unterstützen konnten. Bei Wedge 100 war dies nicht der Fall. Wir wollten einen Keil 100 an einer beliebigen Stelle in unserem Netzwerk ablegen, die einen Keil 40 hatte. Downlink-Geschwindigkeiten und Kabeltypen können variieren. Die Uplink-Geschwindigkeiten können zwischen alten und neuen Clustern variieren. Die korrekte Konfiguration ist besonders wichtig für 100G-Verbindungen, da sie eine viel geringere optische Leistungsspanne aufweisen und mehr Herausforderungen beim Aufbau einer Verbindung und der Optimierung der Leistung darstellen können, was eine viel sorgfältigere Konfiguration erfordert als 40G. Die Unterstützung dieser neuen Umgebungen erforderte Änderungen von der physischen Schicht bis hin zu unserem Monitoring-Stack. Wir haben unsere Unterstützung der SFF-Spezifikation erweitert, um CWDM4-Optiken mit verschiedenen Geschwindigkeiten betreiben zu können, indem wir die Leistungsklasse, CDR, Rate-Select, FEC, Pre-Emphasis und andere dynamisch ändern, um diese verschiedenen Einstellungen zu unterstützen. Wir haben auch viele unserer Konfigurations- und Bereitstellungsworkflows überarbeitet, um all diese Möglichkeiten unterstützen zu können.
Schließlich macht der Besitz eines eigenen Software-Stacks das Beheben von Fehlern oder das Hinzufügen von Funktionen zu diesen Geräten für Facebook viel schneller. Zum Beispiel haben wir beobachtet, dass 100G-Optiken höhere Betriebstemperaturen erreichen, daher haben wir die Lüftersteuerlogik in unserem Board-Management-Controller OpenBMC geändert, um ein besseres Wärmeprofil zu erzielen, wenn diese Module vorhanden sind. Zu anderen Zeiten stießen wir auf Kernel-Panik auf dem Mikroserver. Da wir ein Engineering-Team haben, das unsere eigenen Kernel-Releases verwaltet, konnten wir deren Fachwissen nutzen, um die Probleme zu beheben. Der Besitz des gesamten Stacks ermöglicht es uns auch, andere interessante Dinge zu tun, wie die Vereinfachung der Gerätewartungsverfahren, indem wir die Bedeutung der Frontplatten-LEDs auf diesen Switches ändern, basierend auf dem Feedback, das wir vom Rechenzentrumsbetriebsteam erhalten.
Der FBOSS-Code ist Open Source und auf GitHub verfügbar. Wir haben unsere Software letztes Jahr als Open Source veröffentlicht und sind seitdem zu einem kontinuierlichen Release-Zyklus übergegangen, bei dem interne Diffs automatisch auf GitHub übertragen werden. Wenn Sie mehr darüber erfahren möchten, woran wir arbeiten, lesen Sie bitte den Code.
Hardware- und Software-Ökosystem
Der Wedge 100 Switch ist ab sofort als kommerzielles Produkt von Edgecore Networks und seinen Channel-Partnern weltweit erhältlich. Der Wedge 100-32X von Edgecore entspricht vollständig der Wedge 100 OCP-Spezifikation und wird von der Muttergesellschaft von Edgecore, Accton Technology, hergestellt, die auch den Wedge 100 für unsere Netzwerkbereitstellung herstellt. Der Wedge 100-32X Hardware-Switch umfasst eine dreijährige Garantie und wird mit Diagnose, OpenBMC-Firmware und dem Open Network Install Environment Universal NOS Loader ausgeliefert.
Wir haben auch ein starkes Interesse von Transceiver-Anbietern gesehen, ihre Module auf der Plattform zu qualifizieren. Um dieser Nachfrage gerecht zu werden, arbeiten wir mit dem University of New Hampshire InterOperability Laboratory (UNH-IOL) zusammen, damit alle Module in ihren Einrichtungen professionell getestet werden können. Die UNH-IOL ist weiterhin führend bei der Bereitstellung neutraler, breit angelegter Test- und Standardkonformitätsdienste für die Netzwerkindustrie.
Auf der Softwareseite bauen mehrere Unternehmen ihre Lösungen auf der Wedge 100-Plattform auf. Auf der Betriebssystemschicht haben wir Big Switch Networks und Canonical; und auf den oberen Teilen des Stapels haben wir SnapRoute, FRINX und Apstra.
- Big Switch Networks treibt weiterhin Open Network Linux (ONL) voran, das erste Open-Source-Netzwerkbetriebssystem, das den ursprünglichen Wedge 40 und jetzt Wedge 100 unterstützt; Facebooks FBOSS ist jetzt auch auf ONL on Wedge 40 und bald Wedge 100 verfügbar. ONL ist Teil des Open Compute Project und unterstützt mehr als 30 verschiedene offene OCP- und Nicht-OCP-Netzwerk-Switches. Sie verwenden ONL auch intern als Basis für ihre kommerziellen Produkte Big Monitoring Fabric und Big Cloud Fabric.
- Canonical wird Ubuntu Core, sein neues Betriebssystem für Cloud- und IoT-Geräte, auf die Wedge 100-Plattform bringen. Ubuntu Core kann eine Reihe verschiedener Netzwerkstapel wie FBOSS oder SnapRoute als Snaps ausführen und die Bare-Metal-Bereitstellung für große Software wie OpenStack, Hadoop und Kubernetes auf der Rechenschicht des Rechenzentrums vom Top-of-Rack-Switch aus ermöglichen.
- SnapRoute gab die Verfügbarkeit der FlexSwitch-Software auf der Wedge 100-Plattform bekannt. FlexSwitch ist ein Open-Source-L2 / L3-Netzwerk-Stack, der auf mehreren Hardwareplattformen ausgeführt werden kann. Ziel ist es, die Wirtschaftlichkeit des Netzwerkbetriebs durch die Bereitstellung einer vollständig anpassbaren und programmierbaren Steuerungsebene und eines umfassenden Frameworks für die Lebenszyklusautomatisierung und Netzwerkanalyse zu ändern. Es basiert auf den Konzepten der vollständigen Modularität und fördert die Idee, nur die Funktionen auszuführen, die das Netzwerk benötigt, im Gegensatz zum traditionellen One Size Fits All-Ansatz.
- FRINX konzentriert sich auf die Integration von OpenDaylight, einer Open-Source-SDN-Plattform, in Wedge 100. Sie arbeiten an der Schaffung einer unterstützten Out-of-the-Box-Lösung für Rechenzentrumsbereitstellungen, die vollständig auf Open-Source-Komponenten basiert.
- Apstra arbeitet auf einer oberen Ebene mit dem Apstra Operating System (AOS), einem herstellerunabhängigen verteilten Betriebssystem, das Benutzerabsichten in eine kontinuierlich validierte Infrastruktur übersetzen kann. Sie arbeiten an einer Lösung, die Stacks basierend auf ONL und Snaproute sowie anderen Netzwerkbetriebssystemen verwalten kann, die Anfang 2017 verfügbar sind.
Wir freuen uns, über ein so umfassendes und vielfältiges Set an Technologien im Bereich der offenen Netzwerkhardware zu verfügen, und wir werden weiterhin mit anderen Unternehmen an Wedge 100 arbeiten. Anfang nächsten Jahres planen wir, diese Netzwerk-Software- und Hardwarelösungen aus der OCP-Community vorzustellen, einschließlich derjenigen, die auf Wedge 100 basieren, und wir werden weiterhin unsere Erfahrungen mit disaggregierten Netzwerken teilen. Bleiben Sie dran!
Vielen Dank an alle Teams und Personen, die zu diesem Projekt beigetragen haben.