18.01.2021 katkestuse post-mortem

Esmaspäeva, 18. jaanuari õhtul lõpetas töö üks meie võrguseade, täpsemalt kommutaator ehk switch, mille kaudu käib mitmete serverite võrguühendus.

Tegemist oli seadmega, milles riskialtid komponendid dubleeritud, kuid mille riknemisi siiski esineb. Tavapäraselt oleme võrguseadme väljavahetamise ajakuluks arvestanud umbes 1 tunni. Selliste seadmete korralise väljavahetamise tsükkel on meil 5 aastat, uued täielikult dubleeritud seadmed olid seadistamise lõppfaasis.

Katkestus algas kell 17:15 ja mõjutas ca 40% Virtuaalserveritest ning 1/3 tavapärasest veebipäringute arvust. Klientide muud teenused nagu e-post, nimeserverid, ZoneCloud toimisid normaalselt.

Paraku ilmnes võrguseadme vahetamise järel, et tavapärase liiklusmahu korral kahaneb võrgukiirus olematuks.

Järgnes veaotsing, mille käigus prooviti läbi erinevad vea-hüpoteesid, paigaldati järgmine varuseade ja valmistuti ka võrgusegmendi üleviimiseks erinevale tehnoloogiale. Lõpuks tuvastati probleemina kommutaatori tarkvara viga, mis ilmnes reaalse koormuse tekkimisel ning mida ei olnud võimalik testkeskkonnas tuvastada. Probleemi lahendas vanema tarkvaraversiooni kasutuselevõtt, kõigi teenuste töö oli lõplikult taastunud kella 00:50ks.

Mida me teeme teenuste tõrkekindluse parandamiseks?

Kuna kõik Virtuaalservereid teenindavad serverid on meil test-rakenduse tasemel välises monitooringus jälgitavad, siis teame, et nende käideldavusnäitaja, milles sisalduvad ka korralised hooldused, on aasta lõikes 99,96-99,98%. Käesoleva katkestuse järel on mõjutatud serverite aastane näitaja tasemel 99,85%-99,89%. Meie eesmärk on alati olnud hoida oma teenustase koos hooldusakende arvestusega üle 99,9% käideldavusel ja hooldusaknaid välja jättes võimalikult lähedal 100%-le.

Nagu mainitud oli meil ettevalmistamisel võrguseadmete väljavahetamine ja täielik dubleerimine eesmärgiga selliseid riske maandada. Viime selle lõpuni lähinädalatel ja mõistagi öisel ajal, täpsest ajast teavitame kliente e-kirjaga.

Palume vabandust rikke põhjustatud ebamugavuste pärast ja panustame aastal 2021 veelgi enam sellesse, et kõik Zone teenused oleksid võrdselt töökindlad, ajaga kaasas käivad ja turvalised.

Ja kindlasti tänud neile, kes meie tehnikute tegevusele sotsiaalmeedias kaasa elasid – püüame olla oma tegevustes võimalikult läbipaistvad, kuvades nii tõrkeid kui plaanitud hooldusi zone.ee esilehel koos viitega status.zone.eu lehele, kust huvilistel on võimalik tellida ka teavitused e-postile. Samuti võite alati kindlad olla, et Zone süsteemid on 24/7/365 monitooritud ning sõltumata nädalapäevast või kellaajast ning riketega tegeletakse, kuni need on lõplikult lahendatud.

Tehniline taust

Tegemist oli võrgusegmendiga, kus oleme viis aastat kasutanud SDN (Software Defined Networking ehk programmeeritav võrgustus) tehnoloogiat, mis lahutab võrgu riistvara ja tarkvara üksteisest sõltumatumaks. Lihtsustades tähendab see, et kasutame Linuxil põhinevaid võrguseadmeid maailma juhtivatelt tootjatelt, mis on oma iseloomult suhteliselt lihtsad ja robustsed meie spetsialistidele seadistada, hallata jne.

Samuti on meil korraliste riistvarauuenduste käigus võimalik valida parim lahendus, olemata seotud ühe tarnijaga. Nagu eespool mainitud, olime ühte sellist vahetust just ette valmistamas, uued seadmekapid olid ette valmistatud ning lähinädalatel plaanis serverite üleviimine. Tavapäraselt olid nii põhi- kui varuseadmed seadistatud kasutama tarkvara värskeimat stabiilset versiooni ning testitud.

Üks selline varuseade võeti kasutusele ning alglaadimise järel tundus kõik andmekeskuses olevatele tehnikutele toimivat, aga kaughaldust tegeval meeskonnal oli probleeme ligipääsuga serveritele. ping toimis kenasti, aga ssh oli probleemne, staatiline sait HTTP peal toimis aga HTTPS keeldus kätlemast, andmebaasiserveriga ei saadud ühendust jne.

Kogu võrguseadmete konfiguratsioon käidi ridahaaval läbi, et tuvastada erisusi kõrval töötavate seadmetega. Katsetati kõiki võimatuid ja võimalikke riistvaraga seotud teooriaid alates AOC (Active Optical Cable) kaabliriketest, lõpetades võimalike anomaaliateni DDoS kaitses jne.

Vea tuvastamise protsessi käigus toodi meie teisest andmekeskusest kohale kolmas sarnane võrguseade välistamaks võimalust, et esimene asendusseade on vigane. Jällegi, läbiti tavapärane protseduur selle seadistamiseks ja paigaldamiseks, kuid kahjuks jõuti kõikide muudatuste tulemusena täpselt samasse punkti välja. Kõik töötab, aga seadmesse sisenedes kahaneb andmeside olematuks – nagu autol rakenduks puhtal sirgel teel veojõukontoll.

Lõpuks jõudsime tegeliku juurprobleemini. Mis nii kurioosne kui see ei ole, oli seotud selle võrguseadme eesootava asendusega. Nagu öeldud, siis SDN puhul on tihti kasutusel arhitektuur, kus võrgu riistvara on ühelt tootjalt (nö “white box”) ja selle nutikus tuleb Linux operatsioonil põhineva tarkuse kaudu mujalt. Selgus, et meie tehnikud kasutasid rikkis võrguseadmele asenduse paigaldamisel Linuxi versiooni, mida nad olid juba kasutanud uute võrguseadmete ettevalmistamisel. See oli aga mõne väljalaske võrra uuem, kui see mis varasemasse seadmesse oli paigaldatud. Uus tarkvaraversioon sisaldas seni täpselt tuvastamata viga ning probleem lahenes vanema tarkvaraversiooni paigaldamisega.

Järgmisel päeval suutsid tehnikud laboritingimustes probleemi reprodutseerida. Me ei tea veel milline tarkvara “bugi” või ”uus featuur” täpselt seda põhjustas, aga ASIC erikiipidel toimuv superkiire TCP/IP pakettide edastamine lülitati seadmes välja ja nende edastamine läks üle CPU-le ehk protsessorile, mis andmeside kontekstis on võrgu jõudlusele sisuliselt surmahoop. Paraku ei täheldanud me sedapuhku ka CPU koormusnäitajate märkimisväärset tõusu. Nimelt on selles samas tarkvaras ka loogika, mis piirab protsessorile edastatavate pakettide arvu ülekoormust ennetavalt ära.

Takkajärgi sündmuste ahelat läbi vaadates tundub kõik muidugi lihtne, aga reaal-ajas tähendas see paljudele seda, et esmaspäeval tuli tööpäevale teine ja keskmisest stressirohkem otsa. Tegutseme edasi selle nimel, et 24/7/365 käideldavus oleks saavutatav rahulikult 9st 17ni riske maandades :.)