på Facebook lægger vi vægt på at opbygge vores datacentre med fuldt åbent og opdelt udstyr designet af vores ingeniører og åbent indkøbt gennem Open Compute Project (OCP). Ved at opdele vores stack kan vi udskifte udstyr eller programmer, så snart bedre teknologi bliver tilgængelig. Denne tilgang har muliggjort imponerende ydelsesgevinster på tværs af computere, opbevaring og netværkslag.
da kravene til vores datacentre fortsætter med at vokse, forfølger vi løbende måder at håndtere data mere effektivt og med stadig hurtigere hastigheder. Vores strategi er at opbygge 100g datacentre, og kile 100, vores anden generation af top-of-rack netværkskontakt, er en af nøglekomponenterne, der hjælper os med at nå dette mål.
i dag er vi glade for at meddele, at kile 100 specifikation er blevet accepteret i OCP. Industrien har allerede bygget et robust systemøkosystem omkring det, og vi håber, at denne tilføjelse til samfundet vil fremskynde innovationshastigheden og give andre mulighed for også at bringe 100g til deres datacentre.
i dette blogindlæg skitserer vi det nuværende system-og programøkosystem, og vi deler nogle af vores erfaringer med at bruge kile 100 i produktionen.
kile 100 på Facebook
på Facebook bruger vi kile 100 i vores produktionsmiljøer, og vi fortsætter med at implementere det i skala på tværs af vores datacentre. Det er en del af vores 100g datacenter netværksstrategi, samtidig med at vi også kan opretholde bagudkompatibilitet med eksisterende 40g-enheder. På programmelsiden fortsætter vi med at bruge fboss og openbmc, vores egne implementeringer af netværksstak og baseboardstyring, hvilket giver os fleksibilitet til hurtigt at gentage og introducere nye funktioner og innovationer i vores netværk.
oprettelse af kile 100 var en kompleks bestræbelse, men vi var i stand til at gentage på udstyr og programmer med tillid på grund af vores erfaringer fra at skabe og implementere kile 40. Vi genbrugte mange af de samme udstyrskomponenter og foretog nøgleændringer for at adressere smertepunkter, vi følte med kile 40. På kile 100 kører vi også det samme fboss-program som kile 40, men vi udvidede det til at understøtte den nye platform med 100g ASIC-chips og optik.
Udstyrsopdateringer
vi byggede kile 100 med et COM-Ekspres type 6-modul i den kompakte formfaktor (95mm * 95mm) som mikroserver; dette lover godt for 100g og højere hastighedsomskifterplatforme. Kile 100 understøtter også COM-Ekspresmodulformfaktor (95 mm * 125 mm), hvilket giver mulighed for et fleksibelt design, hvis der kræves mere avancerede CPU ‘ er til specielle applikationer.
servicevenlighed er et centralt fokus for os på Facebook. Vi har tusindvis af Kilekontakter implementeret og kun få datacenterteknikere, hvilket betyder, at vi skal kunne servicere og reparere en kontakt hurtigt og ubesværet uden værktøj. Vi har foretaget store forbedringer af brugbarheden af kontakten med kile 100. Topdækslet kan nu fjernes uden værktøj, hvilket giver nem adgang til at skifte intern til vores datacenterteknikere. De varmstikbare ventilatorbakker kan nu fjernes ved at trykke på et klip versus ved at fjerne en tommelfingerskrue. Derudover kan datacenterteknikerne nemt se status for ventilatorbakken via en status-LED ved siden af hver ventilatorbakke. Kombinationen af disse giver mulighed for meget hurtig debug og I felt udskiftning, hvis det er nødvendigt.
for uplinks af kile 100 i Facebook ‘ s datacentre bruger vi optik, der kommer med en lille temperaturgrænse på 55 C, i modsætning til standard 70 C kommercielle temperaturområde. Vi lægger en stor indsats i systemets termiske design, herunder tilføjelse af endnu en ventilatorbakke, luftbafler til at adskille luftstierne mellem PSU og hovedafbryderkortet og frontpanelets åbningsdesign for at maksimere luftstrømmen.
kile 100-chassiset er designet til et industristandard 19″ – rack, så det let kan vedtages af netværkssamfundet. Vores datacentre bruger dog åbne stativer, og vi vil også gerne drive kile 100 ved hjælp af de meget effektive, Titaniumklassificerede åbne Rack V2 strømforsyningsenheder gennem 12V busstangen bag på stativet. Så vi designede en 21 ” åben Rackadapterbakke, der hjælper med at montere kile 100 i et sådant rack. Vi har også designet et PSU-gennemgangsmodul, der forbinder 12V busstangen til 12v-indgangen på kile 100 hovedkontaktkort. Det er i samme formfaktor som standard AC/DC PSU, og indeholder en 12V hot bytte controller.
du kan finde designspecifikationerne til kile 100 her.
programopdateringer
vores programstabel til Kile100 er næsten identisk med stakken til Kile40. Vi kører de samme fboss skifte-og routingdæmoner, og vi bruger det samme sæt værktøjer til at styre omskifterne i produktionen. Der er altid arbejde, der skal gøres for at understøtte en ny platform, men et af de vejledende principper for FBOSS er at opbygge det minimale funktionssæt, vi har brug for til vores miljø. Dette giver os mulighed for at holde vores kode mager og let tilpasse den til nye miljøer og platforme i stedet for at starte fra bunden eller styre parallelle kodebaser. At få det sæt protokoller, vi understøtter-NDP, DHCP, ARP, LLDP, ECMP, ICMP — og de funktioner, vi har brug for til at betjene — varm boot — at arbejde på Kile100 var mere en iterativ øvelse, da vi havde erfaring med at køre kile 40 i produktion. Dette gjorde det muligt for os at ramme jorden, der kører på Kile100-projektet og bruge det som en mulighed for at hærde vores fboss-programstabel.
fordi vi havde styret kile 40s i produktion i næsten to år og havde infrastrukturen på plads, begyndte vi at teste Kile100 i et produktionsmiljø næsten øjeblikkeligt. Løbende kontakter, der betjener produktionstrafik, giver os det bedste signal for ændringer, vi skal foretage. Som det viser sig, fandt vi, at vores største udfordring var på den operationelle side — specifikt konfiguration, klargøring og styring af kile 40 og kile 100 parallelt i vores netværk. På Facebook skriver fboss-teamet både det program, der udfører pakkeforsendelse, og den pakke med værktøjer, vi bruger til at styre omskifterne operationelt. På grund af dette, vi havde en positiv feedback loop og, i sidste ende, erfaringer i produktion informeret programmel — og endda udstyr — beslutninger. På denne måde var vi i stand til at fokusere på de funktioner, vi faktisk havde brug for, og få kile 100-afbrydere, der videresender produktionstrafikken meget hurtigt.
en anden udfordring, vi stod overfor, da vi byggede kile 100, var at gøre vores platform mere fleksibel. Når vi indsat kile 40, vi nydt godt af det faktum, at det sæt af konfigurationer, vi havde brug for at støtte var temmelig begrænset, og vi kunne nemt støtte dem. Med kile 100 var dette ikke tilfældet. Vi ønskede at droppe en kile 100 på ethvert sted i vores netværk, der havde en kile 40. Hastigheder og kabeltyper kan variere. Uplink hastigheder kan variere mellem gamle og nye klynger. Korrekt konfiguration er især vigtig for 100g-links, da de har en meget mindre optisk effektmargin og kan give flere udfordringer med at etablere link og optimere ydeevnen, hvilket kræver meget mere omhyggelig konfiguration end 40g gjorde. Understøttelse af disse nye miljøer krævede ændringer fra det fysiske lag helt op til vores overvågningsstak. Vi udvidede vores støtte til SFF spec for at kunne betjene cdm4 optik kører ved forskellige hastigheder ved at ændre strømklasse, CDR, rate-select, FEC, pre-vægt og andre Dynamisk for at understøtte disse forskellige indstillinger. Vi omarbejdede også mange af vores konfigurations-og klargøringsarbejdsgange for at kunne understøtte alle disse muligheder.
endelig gør det at rette fejl eller tilføje funktionalitet til disse enheder meget hurtigere for Facebook. For eksempel observerede vi, at 100g optik opnår højere driftstemperaturer, så vi ændrede ventilatorstyringslogikken på vores board management controller, openbmc, for at opnå en bedre termisk profil, når disse moduler er til stede. Andre gange stødte vi på kernepanik på microserver. Da vi har et ingeniørteam, der administrerer vores egne kerneudgivelser, kunne vi udnytte deres ekspertise til at fejle problemerne. At eje hele stakken giver os også mulighed for at gøre andre interessante ting som at forenkle enhedsvedligeholdelsesprocedurer ved at ændre betydningen af frontpanelets LED ‘ er på disse kontakter, baseret på feedback, som vi får fra datacenteroperationsteamet.
fboss-koden er alle åbne og tilgængelige på GitHub. Vi åbnede vores program sidste år og er siden flyttet til en kontinuerlig frigivelsescyklus, skubber interne diffs automatisk til GitHub. Hvis du gerne vil vide mere om, hvad vi arbejder på, bedes du tjekke koden.
udstyr og programmel økosystem
kile 100 kontakten er nu tilgængelig som et kommercielt produkt fra Edgecore netværk og dets kanalpartnere over hele verden. Edgecores kile 100-32 er fuldt kompatibel med kile 100 OCP specifikationen og er fremstillet af Edgecores moderselskab, Accton Technology, som også fremstiller kile 100 til vores netværksinstallation. Kile 100-32h udstyrsomskifteren indeholder en tre års garanti og leveres med diagnostik, openbmc-firma og det åbne Netværksinstallationsmiljø universal nos loader.
vi har også set stor interesse fra transceiverleverandører for at kvalificere deres moduler på platformen. For at imødekomme denne efterspørgsel samarbejder vi med University of Hampshire InterOperability Laboratory (UNH-IOL), så alle moduler kan testes professionelt på deres faciliteter. UNH-IOL er fortsat førende inden for levering af neutrale, bredt baserede test-og standardkonformitetstjenester til netværksbranchen.
på programmelsiden bygger flere virksomheder deres løsninger oven på kile 100-platformen. På operativsystemlaget har vi Store kontaktnetværk og kanoniske; og på de øverste dele af stakken har vi SnapRoute, Frink og Apstra.
- Store Afbrydernetværk fortsætter med at køre åbent netværk (ONL), det første åbne netoperativsystem, der understøtter den originale kile 40, Og nu kile 100; Facebook ‘ s FBOSS er også tilgængelig lige nu på toppen af ONL på kile 40 og snart kile 100. ONL er en del af Open Compute-projektet og understøtter 30+ forskellige OCP-og ikke-OCP-åbne netværkskontakter. De bruger også ONL internt som grundlag for deres kommercielle produkter Big Monitoring Fabric og Big Cloud Fabric.
- Canonical vil bringe Ubuntu Core, deres nye operativsystem til cloud-og IoT-enheder, til kile 100-platformen. Ubuntu Core kan køre en række forskellige netværksstakke som FBOSS eller SnapRoute som snaps, og muliggøre levering af bare metal til store programmer som OpenStack, Hadoop og Kubernetes på datacenterets compute-lag fra top-of-rack-kontakten.
- SnapRoute annoncerede tilgængeligheden af Fleksomskifterprogrammer oven på kile 100-platformen. En open source L2 / L3 netværksstabel, der kan køres på tværs af flere udstyrsplatforme. Det sigter mod at ændre økonomien i netværksdrift ved at levere et fuldt tilpasseligt og programmerbart kontrolplan og tilbyde en omfattende ramme til automatisering af livscyklus og netværksanalyse. Det er bygget op omkring begreberne fuld modularitet og fremmer ideen om kun at køre det sæt funktionalitet, som netværket kræver, i modsætning til den traditionelle En størrelse passer til alle tilgange.
- Frink er fokuseret på at integrere OpenDaylight, en open source SDN-platform, på kile 100. De arbejder hen imod oprettelsen af en understøttet løsning uden for boksen til datacenterinstallationer, der udelukkende er baseret på open source-komponenter.
- Apstra opererer på et øverste lag med Apstra-operativsystemet (aos), et leverandør-agnostisk distribueret operativsystem, der kan oversætte brugerens hensigt til en kontinuerligt valideret infrastruktur. De arbejder på en løsning, der kan styre stakke baseret på ONL og Snaproute samt andre netværksoperativsystemer, der er tilgængelige i begyndelsen af 2017.
vi er begejstrede for at have et så komplet og mangfoldigt sæt teknologier i det åbne netværksareal, og vi vil fortsætte med at arbejde med andre virksomheder på kile 100. I begyndelsen af næste år planlægger vi at fremvise disse netværksprogrammer og udstyrsløsninger fra OCP-samfundet, herunder dem, der er bygget på kile 100, og vi vil fortsætte med at dele vores erfaringer med disaggregerede netværk. Stay tuned!
tak til alle de teams og personer, der har bidraget til dette projekt.