Afgelopen dinsdag, 23 juni 2015, gebeurde rond 8:30 uur het ergste wat een hostingprovider kan overkomen: er was een volledige black-out in één van de datacenters, waarin wij het merendeel van onze servers hebben geplaatst. Het gevolg: alle apparatuur down en tienduizenden klanten onbereikbaar. Een fantastisch begin van de dag. Het kan nóg erger: totale verwoesting van het datacenter in kwestie, maar dat was gelukkig niet aan de orde. Wat dan wel? Nou, een stroomstoring…
Ik hoor het je denken: “Hè, wat?! Dat kan toch niet? Alles in zo’n datacenter is beveiligd, dubbel uitgevoerd, heeft noodaggregaten en zo?” Inderdaad, dat is er allemaal en in veel gevallen zelfs vierdubbel uitgevoerd. In theorie kan stroomuitval dus niet voorkomen. Echter, door de meest ongelukkige samenloop van omstandigheden gebeurde het toch. Een goed voorbeeld van hoe theorie en praktijk soms ver uit elkaar liggen.
Naast dat het voor iedereen zeer vervelend is, was het voor ons ook een ultieme proef of we spoedig konden herstellen van zo’n grote storing. Daarnaast was het de vuurdoop voor ons nieuwe platform, waarin duidelijk werd of het in de praktijk deed wat het moest doen. Omdat jij ook recht hebt op deze informatie, hebben we een gedetailleerd verslag geschreven.
Inhoudsopgave
- Antagonist zegt sorry!
- Klein team, veel klanten
- Prioriteit tijdens calamiteit
- Hoe kan dat dan, geen stroom?
- De gevolgen voor Antagonist
- Opstarten na stroomuitval
- Nazorg, totdat alles weer in orde is
- Wat is de schade?
- Communicatie
- Hoe gaan we dit voorkomen?
- One more thing…
Antagonist zegt sorry!
Maar eerst zeggen we: “Sorry!” Een storing is altijd hinderlijk. Helemaal als klanten er de dupe van worden. Door de stroomstoring in het datacenter heeft ons gehele platform er even uit gelegen. Al onze klanten hebben daardoor downtime ondervonden. Daarnaast hebben enkele klanten langer last gehad vanwege herstelwerkzaamheden.
Het ‘uitvallen’ van de stroom heeft dus een behoorlijke impact. Dat vinden we erg vervelend en daarom bieden we onze excuses aan. Dat is tevens één van de redenen voor dit blog. Daarnaast willen we je een eerlijk en helder inzicht geven in wat er precies is gebeurd.
Tijdens de storing hebben we regelmatig updates geplaatst. Het waren vooral beknopte berichten over de voortgang van de situatie en het herstel. Daarnaast hebben we twee ‘post incident’-berichten geschreven. Deze gaven inzicht in de toedracht. De werkelijke gevolgen zijn voor een buitenstaander wellicht lastig voor te stellen. Vandaar dat we je graag een kijkje in de keuken geven, hoe het er dinsdag aan toe ging.
Klein team, veel klanten
Antagonist heeft tienduizenden klanten en 12 medewerkers. Zodoende moet je tijdens een grote storing, als een geoliede machine te werk gaan. Alles moet vanzelfsprekend zijn, want tijd is er niet. Met een klein en hecht team moet je handelen vanuit instincten. Juist daarom vinden we het zo belangrijk dat een medewerker goed moet passen binnen ons team. Naast de juiste kennis en vaardigheden zoeken we dus naar de perfecte match.
Als het misgaat, dan is het heel simpel. Er zijn drie dingen die er toe doen. Eén: onze klanten moeten zo snel mogelijk weer online. Twee: voorkom zoveel mogelijk schade en dataverlies. Drie: zorg voor een vlotte en oprechte communicatie, waarin vragen van klanten zorgvuldig worden beantwoord.
Qua prioriteit ligt het ietsje ingewikkelder. De hoogste prioriteit is bij Antagonist altijd data-integriteit. Dat betekent dat we het voorkomen van dataverlies belangrijker vinden dan beschikbaarheid. Je hebt immers niets aan een website zonder data. Gelukkig hoeven we ons daar weinig zorgen over te maken. Gegevens worden veilig opgeslagen. De kans op dataverlies is daardoor zeer gering. Zodoende storten we ons, tijdens een storing, vrijwel direct op de beschikbaarheid.
Prioriteit tijdens calamiteit
Goed, het is dinsdagochtend en we zien dat er heel veel loos gaat. De oorzaak weten we niet. Er was weliswaar een sterk vermoeden dat het om een (deels) falende stroomtoevoer gaat, maar dat kunnen we niet bevestigen. Dat is erg naar. Want hoe kun je iets oplossen, als je het probleem niet kent?
In ieder geval is er ‘iets’ in het datacenter flink stuk. Echter, het is geen specifieke apparatuur van ons. Feit blijft dat we er hinder van ondervinden. Eén ding is zeker: wat down gaat, moet zo snel mogelijk weer up. En als de oorzaak niet naar jou komt, dan moet jij naar de oorzaak. Zodoende zat ons rescue-team binnen 2 minuten in de auto richting het datacenter.
Het is fijn dat het datacenter heel dichtbij zit en dat is met opzet gekozen. In dit soort situaties kunnen we heel snel op plaats delict zijn. Wat normaliter een ritje van 20 minuten is, werd nu in 10 gedaan. Onze systeembeheerder arriveerde tegelijkertijd met de medewerkers van het datacenter en kon direct aan de slag. Als één van de eersten ging hij de serverruimte binnen. Waar normaliter duizenden apparaten staan te blazen, was het nu doodstil en pikdonker. Eng, heel eng…
Al snel werd duidelijk dat het om een storing in de stroomvoorziening van het datacenter ging. Deze was om 8:02 uur begonnen in de A-feed. Gelukkig hebben wij onze apparatuur niet alleen op de A-feed aangesloten, maar ook op de B-feed. Daardoor hadden wij ‘pas’ écht last, toen ook die om 8:21 uur eruit klapte.
Hoe kan dat dan, geen stroom?
De stroomtoevoer naar het datacenter gaat via een A-feed en een B-feed. Van buitenaf komt er dus stroom via twee kanalen binnen. Het gehele datacenter kan prima op één van deze feeds worden voorzien, maar uit voorzorg is dit redundant aangelegd. Deze feeds worden in principe nooit onderbroken. Daarnaast zijn er noodstroomvoedingen (UPS) en noodaggregaten die beide feeds volledig van stroom kunnen voorzien.
Dinsdag vond er noodzakelijk onderhoud plaats aan de stroomtoevoer van het datacenter. Om de beurt zouden de hoofdverdelers van de A-feed en de B-feed spanningsloos worden gemaakt. De UPS’en zouden één voor één in bypass worden gezet om een onderbreking in de feed te voorkomen. Tijdens het onderhoud aan de A-feed is er toch een onderbreking ontstaan, waardoor deze geheel spanningsloos raakte en dus onbruikbaar. De B-feed nam dit over.
Hierna ging het opnieuw mis. Er ontstond een te hoge belasting op de B-feed, omdat alle apparatuur hierop overschakelde. De UPS detecteerde een onverwachte waarde en werd daardoor vanuit veiligheidsoogpunt automatisch uitgeschakeld. Dit bleek later door een foutieve instelling in de vermogensschakelaar tussen de UPS en de B-feed.
Zodoende ontstond er ook een onderbreking in de B-feed. Hierdoor raakte deze, net als de A-feed, volledig spanningsloos en dus onbruikbaar.
Uit voorzorg waren de noodaggregaten up and running, maar met twee volledig onderbroken feeds krijg je geen stroom bij het datacenter. Het resultaat: een volledige black-out.
De gevolgen voor Antagonist
Geen stroom, betekent apparaten die uitstaan en dus een platform dat down is. Tienduizenden klanten die onbereikbaar zijn. Daarnaast doen services het ook niet meer, zoals de webmail, Mijn Antagonist en onze website.
Zoals gezegd, ging het om 8:02 uur mis in de A-feed. Dat had voor ons gelukkig weinig impact, want wij hebben nagenoeg al onze apparatuur op beide feeds aangesloten. Toen om 8:21 uur ook de B-feed uitviel, begon het echte probleem: servers s69 tot en met s199 werden onbereikbaar.
Het uitvallen van stroom in een datacenter is een zeer ernstige calamiteit. Het voordeel daarvan is, dat de meest kundige mensen keihard hun best doen om het zo snel mogelijk op te lossen. Zodoende was de A-feed om 8:30 weer up. Beide feeds hebben tegelijkertijd 9 minuten eruit gelegen en Antagonist dus ook. De stroomvoorziening werd hervat toen de eerste feed weer up kwam. Omdat wij dus op beide feeds zijn aangesloten, kon onze apparatuur daardoor direct opstarten.
De tweede feed was rond 9:15 uur weer volledig operationeel. Uiteraard hebben we de status van deze feeds nauwlettend in de gaten gehouden, totdat we geen aanleiding meer zagen voor een herhaling in de onderbreking van de stroomvoorziening in het datacenter.
Opstarten na stroomuitval
Maar goed, stroom terug betekent nog niet dat het is opgelost. Net als een computer, kan een server er ook niet goed tegen als je de stroom er zomaar afhaalt. Het is complexe hardware, waarop nog complexere software draait. Je kunt je dus voorstellen dat bij uitval van tig servers, routers, switches en andere apparatuur — die ook nog eens allemaal met elkaar in verbinding staan — de kans op een fouten erg groot is.
Toch hadden we ons platform binnen 10 minuten weer alive and kicking, met uitzondering van s161 en de webmail. Na 19 minuten was dus het merendeel van onze klanten weer bereikbaar. Erg fijn natuurlijk, maar voor ons zat het er nog lang niet op. Daarnaast bleek later, dat naast s161, er nog enkele servers haperden.
Nazorg, totdat alles weer in orde is
Vanaf 8:40 uur kwamen we weer online. Het daaropvolgende halfuur zijn we druk geweest om de stabiliteit van het platform te kunnen garanderen. Vervolgens ontfermden we ons over s161. Deze server startte niet goed op en had een kleine reparatie nodig. Het is standaard dat we bij een dergelijk proces alle stappen zorgvuldig controleren. Dit doen we om schade en dataverlies te voorkomen. In het geval van s161 was het snel opgelost.
Tegelijkertijd hebben we de problemen met de webmail aangepakt. Dit ging even anders dan simpelweg herstarten en controleren. We moesten een aantal handmatige reparaties uitvoeren. Gelukkig geen grote problemen, waardoor de webmail om kwart voor 10 weer bereikbaar was.
In de tussentijd waren we ook al begonnen aan s80, s110 en s111, die weliswaar vanzelf gestart waren, maar haperden. Deze servers moesten opnieuw opgestart worden. Ook voor een herstart geldt, dat we alle processen nauwlettend in gaten houden. Net zolang totdat de server weer volledig binnen de normale parameters functioneert. Voor s80 en s110 gebeurde dat om half 11.
Bij s111 bleken er opnieuw problemen met MySQL. Erg vervelend, want hier zijn databases van klanten mee gemoeid. Zodoende hebben we een ‘full MySQL recovery’ uitgevoerd. We kozen met opzet om geen volledige back-up terug te zetten. Dat zou ons acht uur aan data kosten. De recovery duurde een uur en is daarmee even snel als het terugzetten van een back-up. Echter, biedt een recovery de zekerheid dat er geen data mist. Uiteindelijk was s111 om iets na twaalven volledig bereikbaar.
Wat is de schade?
De fysieke schade viel gelukkig mee. Er zijn twee harde schijven gesneuveld. Dat is niet zo’n probleem, omdat deze dankzij RAID redundant zijn uitgevoerd. Belangrijker: er zijn geen data verloren gegaan. Zodoende hebben we alles volledig kunnen herstellen. Uiteraard heeft de storing ons veel tijd gekost en de schrik misschien een jaar van ons leven, maar dat zijn de risico’s van het vak ;).
Mocht je op dit moment vermoeden dat je naar aanleiding van de storing nog steeds hinder ondervindt. Stuur gerust een e-mail naar support@antagonist.nl, we helpen je graag zo snel mogelijk verder.
Communicatie
Oh ja, op één van de drukste dagen van de week, net wanneer iedereen aan de dag begint en bijvoorbeeld z’n e-mail checkt, is er een stroomstoring en liggen alle websites eruit. Het gevolg: een heleboel bezorgde website-eigenaren die contact zoeken met Antagonist. Logisch natuurlijk! Maar hoe reageer je snel en vakkundig, met een Support-team van zes, op potentieel tienduizenden klanten?
Heel simpel, door slim taken te verdelen en goed samen te werken. Vergeet niet: de sterk gemotiveerde jongens en meisjes van Support zijn hiervoor getraind. Toch was het mooi om te zien, hoe er soepel en zonder paniek gehandeld werd.
Besluiteloosheid is voor watjes! Snel kunnen schakelen, dat is de sleutel. Iemand moet binnenkomende tickets verdelen: één doet de gemakkelijke en een ander doet de wat complexere. Tickets met een lage prioriteit kunnen even wachten. Facebook en Twitter moeten in de gaten gehouden worden en de statuspagina moet om het halfuur een melding krijgen. Knallen dus!
Best een uitdaging, want er kwamen heel snel, heel veel tickets, Facebook-berichten en tweets binnen. Uiteraard wil je iedereen zo snel mogelijk te woord staan en vooral geruststellen, maar bij zulke grote hoeveelheden, kan het eventjes duren. Daarbij kunnen mensen boos zijn en dat is heel begrijpelijk. Ook daar wil je dus goed mee omgaan.
Ondanks alles verliep de communicatie erg goed. Natuurlijk zijn er wat verbeterpuntjes. Prima, want daar leren we van. Bijvoorbeeld hoe we onze statuspagina beter vindbaar kunnen maken. We kwamen er namelijk achter dat een heleboel niet-klanten deze ook hebben gebruikt om op de hoogte te blijven van de storing. Zij waren ook getroffen, maar via andere providers. Onze periodieke meldingen werden als zeer prettig ervaren.
Hoe gaan we dit voorkomen?
Een fout kan de besten overkomen. Onze ervaringen met Previder, die het datacenter beheert, zijn vanaf het begin zeer goed. Dat dit gebeurt, is natuurlijk erg vervelend en wil je te allen tijde voorkomen. Echter, datacenter PDC2 is vanaf 2010 operationeel en heeft nog nooit downtime gehad. Previder heeft aangegeven dat ze naar aanleiding van deze storing de onderhoudsprotocollen hebben aangepast.
Om herhaling te voorkomen zullen instellingen altijd fysiek worden gecontroleerd, zodat het issue met de vermogensschakelaar niet meer kan voorkomen. Antagonist gaat aanstaande vrijdag in gesprek met Previder om te verzekeren dat ze in de afgelopen week voldoende stappen heeft ondernomen om dit in de toekomst inderdaad te voorkomen.
Tevens zijn we ons ervan bewust dat communicatie superbelangrijk is. Het is logisch dat je schrikt als je website het niet doet. Het is dan prettig om zo snel mogelijk gerust gesteld te worden.
De volgende punten willen we verbeteren.
- De vindbaarheid van onze statuspagina.
- Bij een storing van dergelijke omvang:
- een proactieve berichtgeving via social media;
- een gestandaardiseerd eerste antwoord dat heel snel gestuurd kan worden, met informatie over de storing en dat we met een oplossing bezig zijn;
- een eventuele aanpassing in de auto responder, wanneer een grote storing plaatsvind.
- We zijn een groot voorstander van openheid. Het past in het straatje van Antagonist om helder en oprecht te communiceren over wat er exact gebeurd is. Zodoende dit blog en een mailing die we eraan koppelen.
One more thing…
Zoals je wellicht weet, hebben we onlangs een nieuw platform in gebruik genomen. Dit was dus een interessante test. Je wilt het liever niet uitproberen, maar nu moesten we wel. Ondanks dat het voor ons allen een vervelende ervaring was, is het platform geslaagd. Direct toen de stroom terugkwam, startte alle apparatuur automatisch. Het eerste apparaat was binnen 4 minuten operationeel en binnen 10 minuten volgde de rest.
Een groot voordeel is hoe apparaten in het nieuwe platform gekoppeld zijn. Bij uitval hebben ze geen negatieve invloed op elkaar. Met andere woorden, je bent niet langer zo sterk als je zwakste schakel. Dit zorgt ervoor dat servers los van elkaar werken. Ze starten veel sneller op. Taken kunnen synchroon worden uitgevoerd en wachten dus niet meer op elkaar. Dataverlies is nagenoeg onmogelijk en reparaties gaan veel sneller.
Nogmaals, het spijt ons van de downtime. Het liefst hadden we dit nog meer voorkomen. Zeker op de servers die een reparatie nodig hadden. Daar gaan we hard aan werken. Toch zijn we tevreden over het verloop.
Tot zover dit uitgebreide verslag. We hopen je hiermee een duidelijk inzicht te hebben gegeven in het verloop. Mochten er vragen zijn, laat het gerust weten via support@antagonist.nl. Bedankt voor je begrip!
P.S. Wil je op de hoogte blijven van alle artikelen, tips en trucs die verschijnen op ons blog? Dat kan! Rechts bovenin via RSS, e-mail, het liken van onze Facebook-pagina, via Google+ of het volgen op Twitter. Daarnaast vind je op onze statuspagina actuele informatie over storingen en onderhoud.