Facebook brukte rundt seks timer på å få tjenestene på nett igjen etter at de ble utilgjengelige for alle mandag kveld norsk tid. Nå har selskapet gått ut med flere detaljer om hva som egentlig skjedde og hvorfor jobben med å komme på nett igjen tok så lang tid.
Men først litt flere detaljer om det som skjedde før gjenopprettingsarbeidet startet.
Store og små datasentre
Facebook har en ganske omfattende, global infrastruktur med eget stamnett og både store og små datasentre. Det er færrest av de store, men til gjengjeld inneholder disse millioner av servere hvor dataene er lagret og prosesseres.
De store datasenterne er ikke direkte koblet til internett. I stedet går forbindelsen via de små datasenterne. Blant de øvrige oppgavene som gjøres i de små datasenterne, er å svare på DNS-forespørsler, altså oversette mellom domenenavn og IP-adresser. Dette er Facebooks autorative DNS-server.
Kommandoen ble ikke stoppet
Rett før Facebook-tjenestene ble utilgjengelige, utførte ansatte i Facebook noe rutinepreget vedlikehold. I forbindelse med dette ble det i stamnettet sendt ut en kommando som tok ned alle serverforbindelsene mellom datasenterne og internett.
Dette skriver Santosh Janardhan, infrastrukturdirektør i Facebook, i et blogginnlegg.
Systemene til Facebook er designet slik at denne type kommandoer blir revidert før de utføres for å hindre at slike feil gjøres, men denne gangen ble ikke kommandoen stoppet, noe som skyldtes en feil i revideringsverktøyet.
DNS-serverne koblet seg fra
I tillegg var det funksjonalitet i DNS-serverne som ifølge Janardhan gjorde situasjonen enda verre. Disse serverne annonserer over for resten av internett sine egne IP-adresser via protokollen BGP (Border Gateway Protocol). Men for å sikre pålitelig drift, slutter de med dette dersom de selv ikke lenger kan snakke med datasenterne.
I hendelsen på mandag var det nettopp dette som skjedde, og resultatet var at også DNS-serverne ble utilgjengelige for resten av verden, selv om de egentlig fungerte.
Samtidig kan en spørre seg om det hadde hjulpet noe at DNS-serverne hadde fungert, så lenge stamnettet var utilgjengelig.
Fysisk sikkerhet til hinder
Uansett. Med både stamnett og alternativt nett ute av drift, måtte Facebook sende teknikere til de ulike datasenterne for at de skulle kunne feilsøke og restarte systemene der.
Dette skal ikke ha vært enkelt, rett og slett fordi datasenterne er bygget på en slik måte at det er tidkrevende å komme seg inn i byggene, og når man først har kommet seg inn, så er serverne og ruterne også bygget på en slik måte at det er vanskelig å gjøre endringer på dem, selv med fysisk tilgang.
Det måtte aktiveres egne, sikre aksessprotokoller, og også dette tok tid.
Måtte åpne slusene gradvis
Da teknikerne hadde fått feilsøkt og fått i gang stamnettet igjen, kom resten opp sammen med dette, men ifølge Janardhan var det ikke bare å åpne slusene for brukerne. Dette kunne nemlig føre til en ny runde med krasj på grunn av voldsom pågang. I tillegg var det risiko for at de elektriske anleggene ville svikte dersom belastningen økte for brått.
Facebook har øvd på scenarioer som dette gjennom det selskapet kaller for «storm»-øvelser, som blant annet har tatt for seg at en hel region er nede. Men de hadde ikke øvd på at hele stamnettet blir frakoblet.
– Vi vil definitivt se på måter å simulere hendelser som dette i framtiden, skriver Janardhan.