Oorzaak + maatregelen storage-incidenten afgelopen week

Oorzaak + maatregelen storage-incidenten afgelopen week

Geschreven op 27-08-2024 door Douwe Zijlstra
Categorieën: XXL Hosting

Oorzaak + maatregelen storage-incidenten afgelopen week

Op donderdag 15 en dinsdag 20 augustus vonden er een tweetal incidenten plaats die grote impact hadden op de bereikbaarheid van onze hostingdiensten. In deze blogpost willen we graag uitleggen wat precies de oorzaak was van deze incidenten, en ook welke maatregelen er worden genomen om soortgelijke incidenten in de toekomst te voorkomen. Ondanks dat beide incidenten door onze cloud- en datacenter-leveranciers werden veroorzaakt, nemen we dit uiterst serieus en hebben we frequent contact met onze leveranciers om op alle fronten verbeteringen door te voeren - zowel door ons als door onze leveranciers. Bovendien willen we graag open en transparant zijn over wat er mis ging en hoe we dit verder oppakken.

Excuses

We beginnen met het aanbieden van onze welgemeende excuses die de onbereikbaarheid van onze hostingdiensten voor jou hebben veroorzaakt. Incidenten op deze schaal waarbij een aantal klanten meerdere uren offline waren ben je niet van ons gewend. Ook wij zijn dit niet gewend van onze leveranciers, waarmee we al vele jaren naar volle tevredenheid samenwerken. Je mag er van uitgaan dat wij en onze leverancier er alles aan doen om dergelijke incidenten in de toekomst te voorkomen.

Architectuur cloudplatform

Voordat we het kunnen hebben over hoe de storingen hebben kunnen plaatsvinden en welke maatregelen er worden genomen, is het belangrijk om kort stil te staan hoe ons cloudplatform is opgebouwd. De rekenkracht (CPU en geheugen) wordt geleverd door vele zogenaamde hypervisor-servers. Deze hypervisor-servers staan via netwerkkabels en switches in verbinding met twee aparte storage-platformen, die de opslag van data verzorgen. Een storageplatform bestaat uit vele servers met dubbel uitgevoerde disks.

Elk bestand, elke databasetabel en elke mail binnen je hostingpakket wordt dus acht-dubbel weggeschreven. Dit doen we voor betere redundancy en performance. Mocht er een disk uitvallen, dan neemt een andere disk het over. Mocht er een storage-server uitvallen, dan neemt een andere storage-server het over. En mocht een geheel storageplatform uitvallen, dan neemt het andere storage-platform het over. Zo blijven onze hostingdiensten beschikbaar en gaat er geen data verloren. Bovendien zorgt deze setup ervoor dat data supersnel van meerdere disks en servers tegelijkertijd kan worden ingelezen, wat de laadtijd van je websites verhoogd.

Tijdsloop en oorzaak incident op 15 augustus

Er werd onderhoud door extern personeel van het datacenter uitgevoerd als voorbereiding voor de uitbreiding van het cloudplatform. Rond 12:00 uur werd door dit personeel per ongeluk een verkeerde kabel aangesloten tussen twee switches die verantwoordelijk zijn voor de connectie tussen de hypervisors en storage-platformen. Dit zorgde ervoor dat beide storage-platformen onbereikbaar werden, waardoor al onze hostingdiensten ook onbereikbaar werden. Na ongeveer 10 minuten werd de oorzaak gevonden, en werd de connectie met de storage-platformen hersteld. Hierdoor was ruim 95% van onze hostingservers weer bereikbaar.

Echter een klein aantal servers kon niet worden gestart, doordat de verkeerde storage-connecties op de hypervisor-servers actief bleven. De cloudleverancier heeft dit op diverse manieren proberen te herstellen, maar slaagde daar helaas niet in. Na twee uren werd besloten om alle hypervisor-servers met hangende verbindingen te migreren naar nieuwe hypervisor-servers met werkende storage-connecties. Dit was een handmatig proces wat per hypervisor-server moest worden uitgevoerd. Rond 17:30 uur waren al onze hostingservers weer bereikbaar.

De reden dat het externe personeel van het datacenter de verkeerde kabel aansloten is dat instructies niet goed werden gelezen en werden opgevolgd.

Tijdsloop en oorzaak incident op 20 augustus

Rond 13:00 uur viel een switch van het tweede storage-platform uit, die de verbindingen naar de hypervisor-server verzorgd. Normaal gesproken neemt een tweede switch het over, maar dit gebeurde niet. Binnen 3 minuten was de oorzaak gedetecteerd en opgelost. Dit veroorzaakte een korte onbereikbaarheid voor een groot aantal servers.

Echter bleek dat een aantal hypervisor-servers de storage-connectie naar het tweede storage-platform actief hield, en daardoor niet meer werkten. Hierdoor bleven een klein aantal van onze servers onbereikbaar. De cloudleverancier heeft deze hypervisor-servers stuk-voor-stuk gemigreerd naar nieuwe hypervisor-servers met werkende storage-connecties. Rond 15:00 uur waren al onze hostingservers weer bereikbaar.

De precieze oorzaak waarom de switch uitviel en waarom de failover tussen de storage-platformen niet werkte, wordt momenteel onderzocht door de leverancier.

Maatregelen

Zowel onze leveranciers als wij hebben een aantal maatregelen bepaald zodat (1) we soortgelijke incidenten in de toekomst kunnen voorkomen, (2) we soortgelijke incidenten sneller kunnen oplossen, en (3) de communicatie richting jou als klant kunnen verbeteren.

De maatregelen die door onze leveranciers zijn vastgesteld, zijn:

  • Er wordt voortaan geen extern personeel meer gebruikt voor "high risk operations" in het datacenter, maar alleen nog eigen personeel.
  • High risk operations in het datacenter worden nog meer stap-voor-stap uitgevoerd, waarbij er een functionele controle na elke stap wordt gedaan en eventueel een rollbackplan wordt uitgevoerd.
  • Er wordt een controle gedaan of de redundancy van alle switches, powersupplies en servers nog in orde is.
  • Er wordt onderzoek gedaan waarom de switch van het tweede storage platform uitviel, en hoe dit kan worden voorkomen.
  • Er wordt onderzoek gedaan waarom bepaalde hypervisor-servers de defecte storage-verbinding actief hielden, en hoe dit kan worden voorkomen.
  • Er worden meer hypervisor-servers in "standby modus" klaargezet, zodat er meer capaciteit is om hypervisor-servers te migreren in het geval van een incident.
  • Instructies en templates worden herzien om eventuele risico's tijdens de uitvoering ervan beter te kunnen opvangen.
  • De communicatie naar klanten via de statuspagina, Slack en e-mail wordt verbeterd: meer openheid en transparantie wat er gaande is vanaf het begin van de storing, inclusief geschatte oplossingstijden (ook al kunnen deze dan nog wijzigen).
  • Er wordt onderzoek gedaan hoe de betrouwbaarheid en redundancy van het cloudplatform kan worden vergroot.
  • Er wordt onderzoek gedaan of er alternatieve en snellere manieren van recovery van storage-incidenten zijn.

De maatregelen die wij hebben vastgesteld, zijn:

  • Het opstellen van een "storingsprotocol" voor intern gebruik, zodat ons team jou als klant via telefoon, chat en e-mail op een zo goed, duidelijk en uniform mogelijke manier kunnen informeren over een storing. Hierbij verwijzen we dan naar onze statuspagina op status.xxlhosting.nl, waarop wij regelmatig updates plaatsen over de voortgang van de storing. We willen dan zo snel mogelijk geschatte oplossingstijden delen (ook al kunnen deze dan nog wijzigen).
  • Veel klanten weten het bestaan van de statuspagina niet en/of zijn hier niet op geabonneerd. We gaan klanten pro-actief abonneren op statusupdates over de diensten/servers waar zij gebruik van maken.
  • We houden regelmatig contact met onze leveranciers over de voortgang van de bovenstaande maatregelen, zodat we kunnen controleren of deze op korte termijn afdoende worden doorgevoerd.
  • We gaan onderzoeken of een replicatiedienst technisch en commercieel haalbaar is. Deze dienst repliceert een (kritische) website voortdurend naar een ander datacenter. Tijdens een langdurige en grotere storing kan de website dan actief worden gemaakt in het andere datacenter. Neem contact met ons op als je eventueel interesse hebt in deze mogelijkheid.

We staan voor je klaar

We hopen je hiermee meer duidelijkheid te hebben gegeven wat er tijdens de incidenten van afgelopen week gebeurde, en wat daarvan de oorzaken waren. Ook hopen we dat we laten zien dat wij en onze leverancier dit uiterst serieus nemen, en er alles aan doen om zulke incidenten in de toekomst te voorkomen. Mocht je na aanleiding hiervan nog vragen hebben of behoefte hebben aan telefonische uitleg, neem dan gerust contact met ons op. We helpen je graag verder.