Ska man "stÀnga av" servrar om smooktestet i datacentret "brinner"?

Vad skulle du kÀnna om datacentret med din utrustning sÄg ut sÄ hÀr en underbar sommardag?

Ska man "stÀnga av" servrar om smooktestet i datacentret "brinner"?

Hej alla! Jag heter Dmitrij Samsonov och arbetar som ledande systemadministratör pĂ„OdnoklassnikiEn av de fyra datacentren dĂ€r vĂ„r utrustning som stöder vĂ„rt projekt Ă€r installerad. Bakom dessa vĂ€ggar finns cirka 4000 enheter av utrustning: servrar, lagringssystem, nĂ€tverksutrustning osv. — nĂ€stan en tredjedel av all vĂ„r utrustning.
De flesta servrar Ă€r Linux. Det finns ocksĂ„ ett par dussin servrar med Windows (MS SQL) — vĂ„rt arv som vi gradvis har övergett under mĂ„nga Ă„r.
SÄ, den 5 juni 2019 klockan 14:35 meddelade ingenjörer frÄn ett av vÄra datacenter om en brandlarm.

Förnekelse

14:45. SmÄ incidenter med rökutveckling i datacentren sker oftare Àn vad man kan tro. Indikatorerna inom hallar var normala, sÄ vÄr första reaktion var relativt lugn: vi införde förbud mot arbete med produktionen, det vill sÀga alla Àndringar i konfigurationer, lansering av nya versioner och liknande, utom arbete som rör reparation av nÄgot.

Vrede

Har du nÄgonsin försökt frÄga brandmÀnnen var pÄ taket branden Àgde rum, eller sjÀlv gÄ upp pÄ det brinnande taket för att bedöma situationen? Hur mycket förtroende kan man ha för information som gÄtt genom fem personer?

14:50. Det kom information om att elden nÀrmar sig kylsystemet. Men kommer den att nÄ dit? Den jourhavande systemadministratören omdirigerar extern trafik frÄn fronten av detta datacenter.

För nÀrvarande Àr alla vÄra servicers framkanaler duplicerade i tre datacenter, och vi anvÀnder lastbalansering pÄ DNS-nivÄ, vilket gör att vi kan ta bort adresserna för ett datacenter frÄn DNS, vilket skyddar anvÀndarna frÄn potentiella problem med Ätkomst till tjÀnster. Om det redan har intrÀffat problem i datacentret, tas det automatiskt bort frÄn rotationen. Mer kan lÀsas hÀr: Lastbalansering och felresiliens i 'Odnoklassniki'.

Branden har för nĂ€rvarande inte pĂ„verkat oss pĂ„ nĂ„got sĂ€tt — varken anvĂ€ndare eller utrustning har skadats. Är det en incident? Den första delen av dokumentet 'Handlingsplan vid incident' ger en definition av begreppet 'incident', och slutar avsnittet sĂ„ hĂ€r:
«Om det rÄder tvekan om huruvida det Àr en incident eller inte, sÄ Àr det en incident!»

14:53. UtnÀmning av katastrofkoordinator.

Koordinatorn Ă€r den person som övervakar kommunikationen mellan alla aktörer, bedömer omfĂ„nget av katastrofen, anvĂ€nder "Handlingsplan vid katastrof", engagerar nödvĂ€ndig personal, övervakar avhjĂ€lpningen, och viktigast av allt – delegerar uppgifter. Med andra ord, det Ă€r den personen som hanterar hela avhjĂ€lpningsprocessen.

Handel

15:01. Vi börjar stÀnga av servrar som inte Àr kopplade till produktionen.
15:03. Vi stÀnger av alla reserverade tjÀnster pÄ rÀtt sÀtt.
Detta inkluderar inte bara front-end (som anvÀndare vid denna tidpunkt redan inte gÄr in pÄ) och deras stödjande tjÀnster (affÀrslogik, cache och sÄ vidare), utan Àven olika databaser med replikeringsfaktor 2 och mer (Cassandra, lagring av binÀra data, kallt arkiv, NewSQL och annat).
15:06. Information har kommit in om att en brand hotar ett av datacenterhallarna. I denna hall har vi ingen utrustning, men att elden kan sprida sig frÄn taket till hallarna förÀndrar dramatiskt situationen.
(Senare visade det sig att det inte fanns nÄgot fysiskt hot mot hallen, dÄ den var hermetiskt isolerad frÄn taket. Hotet var endast för kylsystemet i den hallen.)
15:07. Vi tillÄter att kommandon utförs pÄ servrarna i snabbare tempo utan ytterligare kontroller (utan vÄr Àlskade kalkylator).
15:08. Temperaturen i hallarna Àr inom normala grÀnser.
15:12. Det har registrerats en temperaturökning i hallarna.
15:13. Mer Àn hÀlften av servrarna i datacentret Àr avstÀngda. Vi fortsÀtter.
15:16. Beslut har fattats om att stÀnga av all utrustning.
15:21. Vi börjar stÀnga av strömmen pÄ stateless-servrar utan korrekt nedstÀngning av applikation och operativsystem.
15:23. En grupp ansvariga för MS SQL utses (de Àr fÄ, beroendet av deras tjÀnster Àr inte stort, men ÄterstÀllningsproceduren tar lÀngre tid och Àr mer komplicerad Àn, till exempel, för Cassandra).

Depression

15:25. Information har kommit om att strömmen har stÀngts av i fyra hallar av 16 (nr 6, 7, 8, 9). I hallar 7 och 8 finns vÄr utrustning. Det finns fortfarande ingen information om vÄra tvÄ andra hallar (nr 1 och 3).
Vanligtvis stÀngs elen av omedelbart vid brÀnder, men i detta fall, tack vare det koordinerade arbetet mellan brandmÀn och teknisk personal i datacentret, stÀngdes den inte överallt och inte omedelbart, utan vid behov.
(Det blev senare klart att strömmen i hallar 8 och 9 inte stÀngdes av.)
15:28. Vi börjar ÄterstÀlla MS SQL-databaser frÄn backuper i andra datacenter.
Hur lÄng tid kommer detta att ta? RÀcker nÀtverkskapaciteten lÀngs hela rutten?
15:37. Det har registrerats avbrott i vissa delar av nÀtverket.
Management-nÀtverket och produktionsnÀtverket Àr fysiskt isolerade frÄn varandra. Om produktionsnÀtverket Àr tillgÀngligt kan du logga in pÄ servern, stoppa applikationen och stÀnga av OS. Om det inte Àr tillgÀngligt kan du logga in via IPMI, stoppa applikationen och stÀnga av OS. Om ingen av nÀtverken Àr tillgÀngliga kan du inte göra nÄgot. 'Tack, kapten!', tÀnker du.
'Och för övrigt, det Àr lite vÀl mycket röran', kanske du ocksÄ funderar.
Allt handlar om att servrar genererar en enorm mĂ€ngd vĂ€rme Ă€ven utan brand. Mer exakt, nĂ€r det finns kylning genererar de vĂ€rme, och nĂ€r det inte finns nĂ„gon skapar de ett helvetes bakhĂ„ll som i bĂ€sta fall smĂ€lter en del av utrustningen och stĂ€nger av en annan del, och i vĂ€rsta fall
 orsakar brand inuti hallen som praktiskt taget garanterat kommer att förstöra allt.

Ska man "stÀnga av" servrar om smooktestet i datacentret "brinner"?

15:39. Vi registrerar problem med conf-databasen.

Conf-databasen Àr backend för den med namnet tjÀnsten, som anvÀnds av alla produktionsapplikationer för att snabbt Àndra instÀllningar. Utan denna databas kan vi inte styra portalens verksamhet, men sjÀlva portalen kan fortfarande fungera.

15:41. Temperaturgivarna pÄ Core-nÀtverksutrustningen registrerar vÀrden nÀra de högsta tillÄtna. Det Àr en lÄda som tar upp en hel rack och möjliggör drift av alla nÀtverk inom datacentret.

Ska man "stÀnga av" servrar om smooktestet i datacentret "brinner"?

15:42. Issue tracker och wiki Àr otillgÀngliga, vi vÀxlar till standby.
Detta Àr inte produktion, men vid en nödsituation kan tillgÄngen till vilken kunskapsbas som helst vara kritisk.
15:50. Ett av övervakningssystemen slutade fungera.
Det finns flera av dem, och de ansvarar för olika aspekter av tjÀnsternas funktion. Vissa av dem Àr instÀllda för autonom drift inom varje datacenter (det vill sÀga de övervakar endast sitt datacenter), andra bestÄr av distribuerade komponenter som transparent hanterar förlusten av vilket datacenter som helst.
I detta fall slutade systemet för upptÀckten av avvikelser i affÀrslogikens indikatorer, som arbetar i master-standby-lÀge. Vi vÀxlade till standby.

Antagande

15:51. Vi stÀngde av alla servrar via IPMI utan korrekt avslut av arbetet, förutom MS SQL.
Är du redo för masshantering av servrar via IPMI om sĂ„ behövs?

Det ögonblick nÀr rÀddningen av utrustningen i datacentret har avslutats. Allt som kunde göras har gjorts. Vissa kollegor kan ta en paus.
16:13. Vi har fĂ„tt information om att kylrör pĂ„ taket har spruckit — detta försenar öppnandet av datacentret efter att branden har Ă„tgĂ€rdats.
16:19. Enligt uppgifter frÄn datacentrets tekniska personal har temperaturen i lokalerna slutat stiga.
17:10. Vi har ÄterstÀllt driften av konfigurationsdatabasen. Nu kan vi Àndra instÀllningarna för applikationerna.
Varför Àr detta sÄ viktigt, om allt Àr redundanta och fungerar Àven utan ett datacenter?
För det första Àr inte allt redundanta. Det finns olika sekundÀra tjÀnster som för nÀrvarande inte klarar av att klara av ett datacenters nedgÄng tillrÀckligt bra, och det finns databaser i master-standby-lÀge. Möjligheten att hantera instÀllningarna gör det möjligt att vidta alla nödvÀndiga ÄtgÀrder för att minimera effekterna av en olycka pÄ anvÀndarna Àven under svÄra förhÄllanden.
För det andra har det blivit tydligt att verksamheten i datacentret inte kommer att ÄterstÀllas helt inom de nÀrmaste timmarna, sÄ det var nödvÀndigt att vidta ÄtgÀrder för att den lÄngvariga otillgÀngligheten för repliker inte skulle leda till ytterligare problem som överfulla diskar i de kvarvarande datacentren.
17:29. Det Àr pizzatid! Vi har mÀnniskor som arbetar, inte robotar.

Ska man "stÀnga av" servrar om smooktestet i datacentret "brinner"?

Rehabilitering

18:02. Temperaturen i salar nr 8 (vÄr), 9, 10 och 11 har stabiliserats. I ett av de som förblir avstÀngda (nr 7) finns vÄr utrustning, och temperaturen fortsÀtter att stiga dÀr.
18:31. Vi har gett klartecken för att starta utrustningen i salar nr 1 och 3 – dessa salar pĂ„verkades inte av branden.

För nÀrvarande pÄgÄr uppstart av servrar i salar nr 1, 3 och 8, med de mest kritiska först. Vi kontrollerar att alla aktiverade tjÀnster fungerar korrekt. Det finns fortfarande problem med sal nr 7.

18:44. Datacentrets tekniska personal har upptÀckt att mÄnga servrar i sal nr 7 (dÀr endast vÄr utrustning Àr installerad) inte Àr avstÀngda. Enligt vÄra uppgifter Àr 26 servrar fortfarande pÄslagna. Efter en andra kontroll upptÀcker vi 58 servrar.
20:18. Datacentrets tekniska personal blÄser luft i rummet utan luftkonditionering genom mobila ventilationskanaler som Àr dragna genom korridorerna.
23:08. Den första administratören har fÄtt Äka hem. NÄgon mÄste sova under natten för att fortsÀtta arbetet imorgon. Vi slÀpper nu ytterligare en del av administratörerna och utvecklarna.
02:56. Vi har startat allt som gÄr att starta. Vi utför en stor kontroll av alla tjÀnster med automatiska tester.

Ska man "stÀnga av" servrar om smooktestet i datacentret "brinner"?

03:02. Luftkonditioneringen i det sista, 7:e rummet har ÄterstÀllts.
03:36. Vi har aktiverat frontarna i datacenter för rotation i DNS. FrÄn och med nu börjar anvÀndartrafik att komma in.
Vi skickar en stor del av administratörsteamet hem. Men vi behÄller nÄgra personer.

En liten FAQ:
Q: Vad hÀnde mellan 18:31 och 02:56?
A: Enligt "KrisÄtgÀrdsplanen" startar vi alla tjÀnster, med de viktigaste först. Samtidigt tilldelas tjÀnsten i chatten till en tillgÀnglig administratör som kontrollerar om OS och applikationen har startat, om det finns nÄgra fel och om indikatorerna Àr normala. Efter att starten Àr klar meddelar han i chatten att han Àr tillgÀnglig och fÄr en ny tjÀnst frÄn koordinatorn.
Processen fördröjs ytterligare av felaktig utrustning. Även om stopp av OS och avstĂ€ngning av servrar har genomförts korrekt, Ă„tervĂ€nder vissa servrar inte pĂ„ grund av plötsligt felaktiga diskar, minne, chassin. Vid strömavbrott ökar avbrottsfrekvensen.
Q: Varför kan vi inte bara starta allt pÄ en gÄng och sedan fixa det som dyker upp i övervakningen?
A: Allt mĂ„ste göras stegvis, eftersom det finns beroenden mellan tjĂ€nsterna. Och allt bör kontrolleras direkt, utan att vĂ€nta pĂ„ övervakningen — eftersom det Ă€r bĂ€ttre att hantera problem omedelbart, utan att vĂ€nta pĂ„ att de ska förvĂ€rras.

7:40. Den sista administratören (koordinatorn) har gÄtt och lagt sig. Arbetet för den första dagen Àr avslutat.
8:09. De första utvecklarna, ingenjörerna i datacentren och administratörerna (inklusive den nya koordinatorn) har pÄbörjat ÄterstÀllningsarbetena.
09:37. Vi har börjat Äteruppbygga rum nr 7 (det sista).
Samtidigt fortsÀtter vi att ÄterstÀlla det som inte har avslutats i de andra rummen: byte av diskar/minne/servrar, reparation av allt som "brinner" i övervakningen, byte av roller i master-standby-schema och andra smÄ saker, som ÀndÄ Àr ganska mÄnga.
17:08. Vi tillÄter alla normala arbeten med produktionen.
21:45. Arbetet för den andra dagen Àr avslutat.
09:45. Idag Àr det fredag. Det finns fortfarande en hel del smÄproblem i övervakningen. Helgen nÀrmar sig, och alla vill koppla av. Vi fortsÀtter att massivt reparera allt som gÄr. De schemalagda administrativa uppgifterna som kunde skjutas upp har blivit uppskjutna. En ny koordinator Àr pÄ plats.
15:40. Plötsligt startade hÀlften av Core-nÀtverksutrustningen om i EN ANNAN datacenter. Vi har tagit ur rotation fronten för att minimera riskerna. Det har inte pÄverkat anvÀndarna. Senare visade det sig att det var en felaktig chassi. Koordinatorn arbetar med att fixa tvÄ incidenter samtidigt.
17:17. NÀtverksarbetet i det andra datacentret Àr ÄterstÀllt, allt Àr kontrollerat. Datacentret har nu ÄtergÄtt till rotation.
18:29. Arbetet under den tredje dagen och den allmÀnna ÄterstÀllningen efter incidenten Àr slutfört.

Epilog

04.04.2013, pĂ„ dagen för 404-felet, "Odnoklassniki" upplevde den största incidenten — under tre dagar var portalen helt eller delvis otillgĂ€nglig. Under hela denna tid reparerade över 100 personer frĂ„n olika stĂ€der och företag (stort tack igen!), bĂ„de pĂ„ distans och direkt i datacentren, manuellt och automatiskt tusentals servrar.
Vi har dragit lÀrdomar. För att nÄgot liknande inte ska hÀnda igen har vi genomfört och fortsÀtter att genomföra omfattande arbeten.

Vad Àr de viktigaste skillnaderna mellan den nuvarande incidenten och 404?

  • Vi har fĂ„tt en "Incident Response Plan". En gĂ„ng per kvartal genomför vi övningar – simulerar en incident som en grupp administratörer (alla i tur och ordning) mĂ„ste Ă„tgĂ€rda med hjĂ€lp av "Incident Response Plan". Ledande systemadministratörer övar i tur och ordning rollen som koordinator.
  • Kvartalsvis isolerar vi datacentren i testlĂ€ge (alla i tur och ordning) via LAN och WAN, vilket möjliggör tidig upptĂ€ckter av flaskhalsar.
  • FĂ€rre trasiga diskar, eftersom vi har skĂ€rpt normerna: mindre körtid, strĂ€ngare tröskelvĂ€rden för S.M.A.R.T.
  • Vi har helt övergivit BerkeleyDB – den gamla och instabila databasen som krĂ€vde mycket tid för att Ă„terstĂ€lla efter omstart av servern.
  • Vi har minskat antalet servrar med MS SQL och minskat beroendet av de som Ă€r kvar.
  • Vi har vĂ„rt eget moln – one-cloud, dĂ€r vi aktivt har migrerat alla tjĂ€nster under de senaste tvĂ„ Ă„ren. Molnet förenklar hela arbetsprocessen med applikationen och ger, vid incidenter, unika verktyg som:
    • korrigering av alla applikationer med ett klick;
    • enkel migrering av applikationer frĂ„n misslyckade servrar;
    • automatisk prioriterad start av hela datacentret.

Incidenten som beskrivs i denna artikel var den största sedan den 404:e. SjĂ€lvklart gick inte allt smidigt. Till exempel, under den tid datacentret var otillgĂ€ngligt, kraschat i ett annat datacenter, föll en disk ut pĂ„ en av servrarna, vilket innebar att endast en av tre repliker i Cassandra-klustret var tillgĂ€nglig, vilket gjorde att 4,2% av mobilapp-anvĂ€ndarna inte kunde logga in. Samtidigt fortsatte redan anslutna anvĂ€ndare att arbeta. Totalt har mer Ă€n 30 problem identifierats till följd av incidenten — frĂ„n banala buggar till brister i tjĂ€nsternas arkitektur.

Men den största skillnaden mellan den nuvarande incidenten och 404:e Àr att medan vi hanterade konsekvenserna av branden, fortsatte anvÀndarna att chatta och göra videosamtal i Tamtam, spela spel, lyssna pÄ musik, ge varandra presenter, titta pÄ videor, serier och TV-kanaler i Okej, samt streama i OK Live.

Hur hanterar ni era incidenter?

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster