Facebooks Wedge-svitsj kommer på markedet i år
Racksvitsj med åpent design, av standard komponenter med åpent operativsystem og styringssystem.
Facebooks innsats på maskinvarefronten begynner å bære frukter for fler enn bare selskapet selv. Da Facebook etablerte stiftelsen Open Compute Project (OCP) i 2011, var målet å dele selskapets datasenterdesign med alle andre fagmiljøer, for å oppmuntre til videre utvikling som kommer alle til gode. En «open source-tilnærming» til maskinvaredesign, om du vil.
I begynnelsen dreide OCP-design seg om rack, kraftforsyninger, serverblader og lagringsmoduler, men i mai 2013 startet Facebook opp et prosjekt for å utvikle en åpen top-of-rack-svitsj for å aggregere serverne i racket. Denne svitsjen heter Wedge, og den er allerede i bruk i Facebooks datasentre.
Nå kan vi lese i teknikkbloggen til Facebook at Wedge kommer til å bli kommersielt tilgjengelig for alle, ved at den taiwanske produsenten Accton med sine tilknyttete OEM-partnere kommer til å produsere svitsjen. Den skal bli tilgjengelig i løpet av året.
Sammen med denne svitsjen kommer også en Facebook-utviklet programvarepakke som også er åpen. Den heter FBOSS, kjører oppå Linux og kildekoden ligger ute på Github for bedrifter som ønsker å lage sine egne funksjoner og tilpasninger.
Facebook/OCP Wedge
Et av hovedmålene med utviklingen av svitsjen, har vært å få den til å føles og oppføre seg mer som en server enn som en tradisjonell svtisj. Dermed kan Facbooks driftssystemer også omfatte svitsjene, slik at drift og vedlikehold av svitsjene blir utført av de samme menneskene og systemene som tar seg av selskapets servere og lagringssystemer.
Selve svitsjen er en 1 RU racksvitsj med 16 porter med 40 Gbit/s Ethernet. Den er fullstendig basert på lett tilgjengelige komponenter - hyllevare. Sentralt i svitsjen sitter ASIC-en Broadcom Trident II, som yter 1,28 Tbit/s trafikkgjennomstrømming. Rundt denne brikken og tilhørende brikkesett finnes det redundant strømforsyning og vifter, alt pakket inn i et standard chassis som passer i racket.
I tillegg til dette har Facebook altså designet inn en mikroserver for å kontrollere svitsjen. Denne kjører Linux som operativsystem, og gjør det mulig å administrere og kontrollere svitsjen på en mer «server-aktig» måte. Denne arkitekturen gjør også svitsjen langt mer autonom, i tillegg til at det er mulig å utvikle og kjøre hvilken som helst programvare på svitsjen.
Siden designet er helt åpent, oppfordrer Facebook andre til å tilpasse designet til sine egne formål. Facebook har valgt å bruke Intel-prosessorer på mikroserveren, men det er ingen ting i veien for å bruke prosessorer fra andre leverandører, som ARM eller AMD.
Facebook FBOSS
I teknikkbloggen til Facebook gjøres det klart at FBOSS ikke er et operativsystem, det er en pakke med applikasjoner som kan kjøres oppå enhver standard Linux-distribusjon. Den viktigste delen av denne pakken er FBOSS agenten, som er den komponenten som kontrollerer svitsj-ASIC-en. Den programmerer tabellene som svitsjen bruker for å ta beslutningene om hvor pakkene skal, både på Lag 2, Lag 3 og i VLAN. I tillegg har agenten implementert deler av de grunnleggende protokollene som svitsjen trenger for grunnleggende virkemåte, og for å orientere seg - protokoller som ARP, IPv6 NDP, DHCPv4/v6 relay og LLDP. Agenten håndterer også grunnleggende ICMP/UDP-funksjonalitet.
Bloggen gjør det også klart at FBOSS er spesiallagd for å fungere i Facebooks datasentre, og dermed kun inneholder det minstemålet av funksjonalitet som trenges for den oppgaven. For eksempel er det ingen kontroll- og rutingfunksjonalitet innebygd, fordi Facebooks rutingkode er svært spesifikk for selskapets egne nettverk, og dermed ikke er relevant for andre. Derfor vil dagens utgave av programvaren behøve videreutvikling for å kunne fungere i et annet miljø, slik at dette ikke er en ferdig pakke som vil fungere i ethvert nettverk. Facebook peker imidlertid på at det ikke er umulig å modifisere eksisterende åpen rutingprogramvare for å jobbe sammen med FBOSS-agenten, men dette krever altså innsats fra utviklere.
Det er tydelig at Facebook ønsker å gå i bresjen for disaggregerte nettverk, og åpne opp de svært lukkede verdene som finnes i de tradisjonelle nettverkskomponentene på markedet. Det kan godt være at verdens nettverk står overfor en helt fundamental endring fremover, i takt med at selv de innerste og mest komplekse komponentene åpnes opp for helt ny tenking.