In Facebook, abbiamo posto l’accento sulla costruzione dei nostri data center con hardware completamente aperto e disaggregato progettato dai nostri ingegneri e open-source attraverso l’Open Compute Project (OCP). Disaggregando il nostro stack, possiamo sostituire hardware o software non appena la tecnologia migliore diventa disponibile. Questo approccio ha consentito notevoli guadagni in termini di prestazioni in tutti i livelli di elaborazione, storage e rete.
Poiché le richieste dei nostri data center continuano a crescere, stiamo perseguendo continuamente modi per gestire i dati in modo più efficiente e a velocità sempre più elevate. La nostra strategia è quella di costruire data center 100G e Wedge 100, il nostro switch di rete top-of-rack di seconda generazione, è uno dei componenti chiave che ci aiuta a raggiungere questo obiettivo.
Oggi, siamo entusiasti di annunciare che la specifica Wedge 100 è stata accettata in OCP. L’industria ha già costruito un ecosistema software robusto intorno ad esso, e speriamo che questa aggiunta alla comunità accelererà il ritmo di innovazione e consentire ad altri di portare 100G ai loro data center pure.
In questo post del blog, descriveremo l’attuale ecosistema hardware e software e condivideremo alcune delle nostre esperienze con Wedge 100 in produzione.
Wedge 100 su Facebook
Su Facebook utilizziamo Wedge 100 nei nostri ambienti di produzione e continuiamo a distribuirlo su larga scala nei nostri data center. Si tratta di un componente della nostra strategia di rete 100G data center, mentre ci permette anche di mantenere la compatibilità con i dispositivi 40G esistenti. Sul lato software, continuiamo a utilizzare FBOSS e OpenBMC, le nostre implementazioni di gestione dello stack di rete e del battiscopa, che ci offrono la flessibilità di iterare rapidamente e introdurre nuove funzionalità e innovazioni nella nostra rete.
Creare Wedge 100 è stato uno sforzo complesso, ma siamo stati in grado di iterare sull’hardware e sul software con sicurezza grazie ai nostri apprendimenti dalla creazione e dalla distribuzione di Wedge 40. Abbiamo riutilizzato molti degli stessi componenti hardware e apportato modifiche chiave per affrontare i punti dolenti che abbiamo sentito con Wedge 40. Su Wedge 100, eseguiamo anche lo stesso software FBOSS di Wedge 40, ma lo abbiamo ampliato per supportare la nuova piattaforma con chip ASIC 100G e ottica.
Aggiornamenti hardware
Abbiamo costruito Wedge 100 con un modulo COM-Express Type 6 nel fattore di forma compatto (95mm x 95mm) come microserver; questo fa ben sperare per piattaforme di switch 100G e velocità superiori. Wedge 100 supporta anche il fattore di forma del modulo COM-Express (95mm x 125mm), che consente un design flessibile nel caso in cui siano necessarie CPU più avanzate per applicazioni speciali.
La manutenzione è un obiettivo chiave per noi di Facebook. Abbiamo migliaia di switch Wedge distribuiti e solo pochi tecnici del data center, il che significa che dobbiamo essere in grado di assistere e riparare uno switch in modo rapido e senza sforzo, senza strumenti. Abbiamo apportato importanti miglioramenti alla funzionalità dell’interruttore con Wedge 100. Il coperchio superiore può ora essere rimosso senza attrezzi, fornendo un facile accesso agli interni degli switch per i nostri tecnici del data center. I vassoi del ventilatore hot-pluggable possono ora essere rimossi premendo su una clip contro rimuovendo una vite di pollice. Inoltre, i tecnici del data center possono visualizzare facilmente lo stato del vassoio ventola tramite un LED di stato accanto a ciascun vassoio ventola. La combinazione di questi consente il debug molto rapido e la sostituzione in campo, se necessario.
Per gli uplink di Wedge 100 nei data center di Facebook, utilizziamo ottiche con un limite di temperatura minuscola di 55 C, in contrasto con l’intervallo di temperatura commerciale standard di 70 C. Abbiamo messo un sacco di sforzo nel design termico del sistema, tra cui l’aggiunta di un altro vassoio del ventilatore, deflettori aria per separare i percorsi d’aria tra l’alimentatore e la scheda principale, e il design di apertura del pannello frontale per massimizzare il flusso d’aria.
Il telaio Wedge 100 è progettato per un rack da 19″ standard del settore, quindi può essere facilmente adottato dalla comunità di networking. Tuttavia, i nostri data center utilizzano rack aperti e vorremmo anche alimentare Wedge 100 utilizzando le unità di alimentazione Open Rack V2 ad alta efficienza in titanio attraverso la barra bus 12V nella parte posteriore del rack. Quindi abbiamo progettato un vassoio adattatore Rack aperto da 21 ” che aiuta a montare Wedge 100 in un rack di questo tipo. Abbiamo anche progettato un PSU pass through module che collega la barra bus 12V all’ingresso 12V della scheda switch principale Wedge 100. È nello stesso fattore di forma dell’alimentatore AC/DC standard e contiene un controller hot swap 12V.
Puoi trovare le specifiche di progettazione per Wedge 100 qui.
Aggiornamenti software
Il nostro stack software per Wedge100 è quasi identico allo stack per Wedge 40. Eseguiamo gli stessi demoni di commutazione e routing FBOSS e usiamo lo stesso set di strumenti per gestire gli switch in produzione. C’è sempre del lavoro da fare per supportare una nuova piattaforma, ma uno dei principi guida per FBOSS è costruire il set di funzionalità minimo di cui abbiamo bisogno per il nostro ambiente. Questo ci permette di mantenere il nostro codice snello e adattarlo facilmente a nuovi ambienti e piattaforme, invece di partire da zero o gestire basi di codice parallele. Ottenere il set di protocolli che supportiamo-NDP, DHCP, ARP, LLDP, ECMP, ICMP — e le funzionalità di cui abbiamo bisogno per operare — avvio a caldo — lavorare su Wedge100 è stato più di un esercizio iterativo da quando abbiamo avuto esperienza con Wedge 40 in produzione. Questo ci ha permesso di iniziare a lavorare sul progetto Wedge100 e usarlo come un’opportunità per indurire il nostro stack software FBOSS.
Poiché avevamo gestito Wedge 40s in produzione per quasi due anni e avevamo l’infrastruttura in atto, abbiamo iniziato a testare Wedge100 in un ambiente di produzione quasi immediatamente. L’esecuzione di switch che servono il traffico di produzione ci dà il miglior segnale per le modifiche che dobbiamo apportare. A quanto pare, abbiamo scoperto che la nostra sfida più grande era sul lato operativo, in particolare la configurazione, il provisioning e la gestione di Wedge 40 e Wedge 100 in parallelo nella nostra rete. Su Facebook, il team FBOSS scrive sia il software che esegue l’inoltro dei pacchetti che la suite di strumenti che utilizziamo per gestire gli switch operativamente. Per questo motivo, abbiamo avuto un ciclo di feedback positivo e, alla fine, le lezioni apprese nella produzione hanno informato le decisioni sul software e persino sull’hardware. In questo modo, siamo stati in grado di concentrarci sulle funzionalità di cui avevamo effettivamente bisogno e ottenere gli switch Wedge 100 che inoltrano il traffico di produzione molto rapidamente.
Un’altra sfida che abbiamo affrontato quando abbiamo costruito Wedge 100 stava rendendo la nostra piattaforma software più flessibile. Quando abbiamo implementato Wedge 40, abbiamo beneficiato del fatto che l’insieme di configurazioni che dovevamo supportare era piuttosto limitato e potevamo facilmente supportarle. Con Wedge 100, questo non era il caso. Volevamo far cadere un Wedge 100 in qualsiasi posizione della nostra rete che avesse un Wedge 40. Velocità di downlink e tipi di cavo possono variare. Le velocità di uplink possono variare tra cluster vecchi e nuovi. La configurazione corretta è particolarmente importante per i collegamenti 100G in quanto hanno un margine di potenza ottica molto più piccolo e possono presentare più sfide nello stabilire il collegamento e ottimizzare le prestazioni, richiedendo una configurazione molto più accurata rispetto a 40G. Il supporto di questi nuovi ambienti richiedeva modifiche dal livello fisico fino al nostro stack di monitoraggio. Abbiamo ampliato il nostro supporto delle specifiche SFF per poter utilizzare l’ottica CWDM4 a varie velocità modificando dinamicamente la classe di potenza, CDR, rate-select, FEC, pre-emphasis e altri per supportare queste diverse impostazioni. Abbiamo anche rielaborato molti dei nostri flussi di lavoro di configurazione e provisioning per poter supportare tutte queste possibilità.
Infine, possedere il nostro stack software rende la correzione di bug o l’aggiunta di funzionalità a questi dispositivi molto più veloce per Facebook. Ad esempio, abbiamo osservato che l’ottica 100G raggiunge temperature operative più elevate, quindi abbiamo cambiato la logica di controllo della ventola sul nostro controller di gestione della scheda, OpenBMC, per ottenere un profilo termico migliore quando tali moduli sono presenti. Altre volte, abbiamo incontrato kernel panics sul microserver. Dal momento che abbiamo un team di ingegneri che gestisce i nostri rilasci del kernel, potremmo sfruttare la loro esperienza per eseguire il debug dei problemi. Possedere l’intero stack ci consente anche di fare altre cose interessanti come semplificare le procedure di manutenzione del dispositivo modificando il significato dei LED del pannello frontale su questi switch, in base al feedback che otteniamo dal team di operazioni del data center.
Il codice FBOSS è tutto open source e disponibile su GitHub. Abbiamo aperto il nostro software l’anno scorso e da allora siamo passati a un ciclo di rilascio continuo, spingendo automaticamente le differenze interne su GitHub. Se vuoi saperne di più su ciò su cui stiamo lavorando, consulta il codice.
Ecosistema hardware e software
Lo switch Wedge 100 è ora disponibile come prodotto commerciale da Edgecore Networks e dai suoi partner di canale in tutto il mondo. Il cuneo 100-32X di Edgecore è pienamente compatibile con la specifica Wedge 100 OCP ed è prodotto dalla società madre di Edgecore, Accton Technology, che produce anche il cuneo 100 per la nostra distribuzione di rete. Lo switch hardware Wedge 100 – 32X include una garanzia di tre anni e viene fornito con diagnostica, firmware OpenBMC e l’ambiente di installazione di rete aperta universal NOS loader.
Abbiamo anche visto un forte interesse da parte dei fornitori di ricetrasmettitori per qualificare i loro moduli sulla piattaforma. Per soddisfare questa richiesta, stiamo collaborando con il Laboratorio di interoperabilità dell’Università del New Hampshire (UNH-IOL) in modo che tutti i moduli possano essere testati professionalmente presso le loro strutture. L’UNH-IOL continua ad essere un leader nella fornitura di servizi di test e conformità agli standard neutri e su ampia base per l’industria del networking.
Sul lato software, più aziende stanno costruendo le loro soluzioni sulla piattaforma Wedge 100. Sul livello del sistema operativo, abbiamo Big Switch Networks e Canonical; e sulle parti superiori dello stack, abbiamo SnapRoute, FRINX e Apstra.
- Big Switch Networks continua a guidare Open Network Linux (ONL), il primo sistema operativo di rete open source per supportare l’originale Wedge 40 e ora Wedge 100; FBOSS di Facebook è disponibile anche in questo momento in cima ONL su Wedge 40 e presto Wedge 100. ONL fa parte del progetto Open Compute e supporta oltre 30 diversi switch di rete aperti OCP e non OCP. Usano anche ONL internamente come base dei loro prodotti commerciali Big Monitoring Fabric e Big Cloud Fabric.
- Canonical porterà Ubuntu Core, il loro nuovo sistema operativo per dispositivi cloud e IoT, sulla piattaforma Wedge 100. Ubuntu Core può eseguire un certo numero di diversi stack di rete come FBOSS o SnapRoute come snap e abilitare il provisioning bare-metal per software di grandi dimensioni come OpenStack, Hadoop e Kubernetes sul livello di elaborazione del data center dallo switch top-of-rack.
- SnapRoute ha annunciato la disponibilità del software FlexSwitch sulla piattaforma Wedge 100. FlexSwitch è uno stack di rete L2/L3 open source che può essere eseguito su più piattaforme hardware. Mira a cambiare l’economia del funzionamento della rete fornendo un piano di controllo completamente personalizzabile e programmabile e offrendo un quadro completo per l’automazione del ciclo di vita e l’analisi della rete. È costruito attorno ai concetti di piena modularità, promuovendo l’idea di eseguire solo l’insieme di funzionalità che la rete richiede, in contrasto con il tradizionale approccio one size fits all.
- FRINX si concentra sull’integrazione di OpenDaylight, una piattaforma SDN open source, su Wedge 100. Stanno lavorando per la creazione di una soluzione pronta all’uso supportata per le distribuzioni di data center, basata interamente su componenti open source.
- Apstra opera a livello superiore con Apstra Operating System (AOS), un sistema operativo distribuito indipendente dal fornitore in grado di tradurre l’intento dell’utente in un’infrastruttura continuamente convalidata. Stanno lavorando a una soluzione in grado di gestire stack basati su ONL e Snaproute e altri sistemi operativi di rete, disponibili all’inizio del 2017.
Siamo entusiasti di avere un set così completo e diversificato di tecnologie nello spazio hardware di rete aperto e continueremo a lavorare con altre aziende su Wedge 100. All’inizio del prossimo anno, abbiamo in programma di mostrare queste soluzioni software e hardware di rete dalla comunità OCP, compresi quelli costruiti su Wedge 100, e continueremo a condividere le nostre esperienze con reti disaggregate. Restate sintonizzati!
Grazie a tutti i team e le persone che hanno contribuito a questo progetto.