Hva ville du fÞlt hvis datasenteret med utstyret ditt en vakker sommerdag sÄ slik ut?

Hei alle sammen! Jeg heter Dmitrij Samsonov, og jeg jobber som ledende systemadministrator i «». PĂ„ bildet ser vi et av de fire datasentrene hvor utstyret som stĂžtter prosjektet vĂ„rt er installert. Bak disse veggene finnes det omtrent 4000 enheter: servere, lagringssystemer, nettverksutstyr osv. â nesten â
av alt utstyret vÄrt.
De fleste serverne kjĂžrer Linux. Det er ogsĂ„ noen titalls servere som kjĂžrer Windows (MS SQL) â vĂ„rt arv som vi gradvis har kvittet oss med over mange Ă„r.
SÄ, den 5. juni 2019 kl. 14:35 rapporterte ingeniÞrer fra et av datasentrene vÄre om brannalarm.
Benektelse
14:45. SmÄ hendelser med rÞyk i datasentrene skjer oftere enn man skulle tro. MÄlingene inne i hallene var normale, sÄ vÄr fÞrste reaksjon var relativt avslappet: vi innfÞrte forbud mot arbeid med produksjonen, det vil si noen endringer i konfigurasjoner, utrulling av nye versjoner, osv., unntatt arbeid relatert til reparasjoner.
Raseri
Har du noen gang prÞvd Ä spÞrre brannfolkene hvor pÄ taket brannen oppsto, eller Ä komme deg opp pÄ det brennende taket selv for Ä vurdere situasjonen? Hva vil vÊre tilliten til informasjonen som er mottatt gjennom fem personer?
14:50. Det har kommet informasjon om at flammene nÊrmer seg kjÞlesystemet. Men vil det nÄ frem? Den vaktsomme systemadministratoren rutet utgÄende trafikk fra frontene til dette datasenteret.
Per nÄ er frontene til alle tjenestene vÄre duplisert i tre datasentre, med lastbalansering pÄ DNS-nivÄ som gjÞr det mulig Ä fjerne adressene til ett datasenter fra DNS, og dermed beskytte brukerne mot potensielle tilgangsproblemer til tjenestene. I tilfelle problemer i datasenteret allerede har oppstÄtt, fjernes det automatisk fra rotasjonen. Du kan lese mer her:
Brannen har sĂ„ langt ikke pĂ„virket oss â verken brukerne eller utstyret har lidd. Er dette en nĂždssituasjon? FĂžrste del av dokumentet «Handlingsplan for nĂždsituasjoner» gir en definisjon av begrepet «NĂždsituasjon», og avsluttes med:
«Hvis det er tvil om det er en nÞdssituasjon eller ikke, sÄ er det en nÞdssituasjon!»
14:53. Ein krisekoordinator blir tilsett.
Koordinatoren er en person som kontrollerer kommunikasjonen mellom alle deltakere, vurderer omfanget av krisen, bruker «Handlingsplan ved krise», engasjerer nĂždvendig personale, overvĂ„ker fullfĂžringen av reparasjoner, og viktigst av alt â delegerer oppgaver. Med andre ord, det er personen som leder hele prosessen med Ă„ hĂ„ndtere krisen.
Auksjon
15:01. Vi begynner Ä slÄ av serverne som ikke er knyttet til produksjon.
15:03. Vi slÄr av alle reserverte tjenester pÄ en korrekt mÄte.
Dette inkluderer ikke bare frontene (som brukerne allerede ikke fÄr tilgang til pÄ dette tidspunktet) og deres stÞttetjenester (forretningslogikk, cacher, osv.), men ogsÄ ulike databaser med et replikasjonsfaktor pÄ 2 eller mer (, , , og sÄ videre).
15:06. Det har kommet informasjon om at en brann truer et av rommene i datasenteret. I dette rommet har vi ikke utstyr, men det at flammen kan spre seg fra taket til rommene endrer kraftig situasjonen.
(Senere viste det seg at det ikke var noen fysisk trussel mot rommet, siden det er hermetisk isolert fra taket. Trusselen var bare for kjĂžlesystemet i dette rommet.)
15:07. Vi tillater kommandoer pÄ serverne Ä bli utfÞrt i akselerert modus uten ytterligere kontroller ().
15:08. Temperaturen i rommene er innenfor normalen.
15:12. Det er registrert en temperaturĂžkning i rommene.
15:13. Mer enn halvparten av serverne i datasenteret er slÄtt av. Vi fortsetter.
15:16. Det er tatt beslutning om Ä slÄ av alt utstyr.
15:21. Vi begynner Ă„ kutte strĂžmmen til stateless-serverne uten korrekt nedstenging av applikasjonen og operativsystemet.
15:23. Det blir utpekt en gruppe ansvarlige for MS SQL (det er fÄ, avhengigheten av tjenestene deres er ikke stor, men prosedyren for Ä gjennopprette funksjonalitet tar lengre tid og er mer komplisert enn for eksempel Cassandra).
Depresjon
15:25. Det har kommet informasjon om avstengning av strÞm i fire rom av 16 (nr. 6, 7, 8, 9). I rom 7 og 8 har vi vÄrt utstyr. Det er ingen informasjon om de to andre rommene vÄre (nr. 1 og 3).
Vanligvis slÄr man av strÞmmen umiddelbart ved branner, men i dette tilfellet, takket vÊre koordinert arbeid fra brannmenn og teknisk personell i datasenteret, ble det ikke slÄtt av overalt og ikke med en gang, men etter behov.
(Senere viste det seg at strÞmmen i salene 8 og 9 ikke ble slÄtt av.)
15:28. Vi begynner Ă„ gjenopprette MS SQL-databaser fra sikkerhetskopier i andre datasentre.
Hvor lang tid vil dette ta? Er bÄndbredden i nettverket tilstrekkelig gjennom hele ruten?
15:37. Det er registrert avbrudd i enkelte nettverkssegmenter.
Management- og produksjonsnettverket er fysisk isolert fra hverandre. Hvis produksjonsnettverket er tilgjengelig, kan du logge inn pÄ serveren, stoppe applikasjonen og slÄ av operativsystemet. Hvis det ikke er tilgjengelig, kan du logge inn via IPMI, stoppe applikasjonen og slÄ av operativsystemet. Hvis ingen av nettverkene er tilgjengelige, kan du ikke gjÞre noe. "Takk, kaptein!", vil du kanskje tenke.
"Og generelt, det er litt mye styr," vil du kanskje ogsÄ tenke.
Saken er at servere, selv uten brann, genererer enormt mye varme. Mer presist, nÄr det er kjÞling, genererer de varme, og nÄr det ikke er noe kjÞling, skaper de helvetes hete, som i beste fall smelter deler av utstyret og slÄr av andre deler, og i verste fall... forÄrsaker brann inne i salen, som praktisk talt garantert vil Þdelegge alt.

15:39. Vi registrerer problemer med conf-databasen.
Conf-databasen er backend for den navngitte tjenesten som brukes av alle produksjonsapplikasjoner for Ă„ justere innstillinger i sanntid. Uten denne databasen kan vi ikke styre portalen, men portalen kan fortsatt fungere.
15:41. TemperaturfÞlerne pÄ Core-nettverksutstyret registrerer verdier nÊr de maksimalt tillatte nivÄene. Dette er en boks som tar opp en hel rack og sÞrger for drift av alle nettverk inne i datasenteret.

15:42. Issue tracker og wiki er utilgjengelige, vi gÄr over til standby.
Dette er ikke produksjon, men ved en nĂždsituasjon kan tilgjengeligheten av hvilken som helst kunnskapsbase vĂŠre kritisk.
15:50. Ett av overvÄkingssystemene har stoppet.
Det er flere av dem, og de er ansvarlige for forskjellige aspekter ved servicearbeid. Noen av dem er konfigurert for autonom drift inne i hvert datasenter (det vil si at de bare overvÄker sitt eget datasenter), mens andre bestÄr av distribuerte komponenter som greier Ä hÄndtere tapet av et hvilket som helst datasenter.
I dette tilfellet har , som fungerer i master-standby-modus, stoppet. Vi har byttet til standby.
Godkjenning
15:51. Via IPMI slukket vi alle serverne uten korrekt avslutning, unntatt MS SQL.
Er du klar for masseadministrasjon av servere via IPMI om nĂždvendig?
Det Þyeblikket nÄr redningen av utstyret i datasenteret er fullfÞrt. Alt som kunne gjÞres, er gjort. Noen kolleger kan ta en pause.
16:13. Det har kommet informasjon om at kjĂžleanleggene pĂ„ taket har fĂ„tt lekkasje i kondensorrĂžrene â det vil forsinke oppstarten av datasenteret etter brannslukking.
16:19. IfĂžlge data fra det tekniske personalet i datasenteret har temperaturen i rommene sluttet Ă„ stige.
17:10. Vi har gjenopprettet jobben til conf-databasen. NĂ„ kan vi endre innstillingene til applikasjonene.
Hvorfor er dette sÄ viktig, hvis alt er redundante og fungerer selv uten ett datasenter?
For det fÞrste er ikke alt redundante. Det finnes forskjellige sekundÊre tjenester som fortsatt ikke takler nedetid i datasenteret veldig godt, og det er databaser i master-standby-modus. Muligheten til Ä administrere innstillingene gjÞr at vi kan gjennomfÞre de nÞdvendige tiltakene for Ä minimere virkningen av en nÞdsituasjon pÄ brukerne, selv under vanskelige forhold.
For det andre ble det klart at i lÞpet av de nÊrmeste timene vil ikke driften av datasenteret bli gjenopprettet helt, derfor var det nÞdvendig Ä iverksette tiltak for Ä unngÄ langvarig utilgjengelighet av replikkene, som kan fÞre til ytterligere problemer som diskfylling i de gjenvÊrende datasentrene.
17:29. Tid for pizza! Vi har folk som jobber, ikke roboter.

Rehabilitering
18:02. Temperaturen i rommene nr. 8 (vÄrt), 9, 10 og 11 har stabilisert seg. I ett av rommene som fortsatt er avstengt (nr. 7) har vi vÄrt utstyr, og temperaturen der fortsetter Ä stige.
18:31. Vi har fĂ„tt klarsignal for oppstart av utstyret i rom nr. 1 og 3 â disse rommene ble ikke berĂžrt av brannen.
For Þyeblikket blir serverne i rom nr. 1, 3 og 8 startet opp, med fokus pÄ de mest kritiske. Vi sjekker at alle igangsatte tjenester fungerer korrekt. Det er fortsatt problemer med rom nr. 7.
18:44. Det tekniske personalet i datasenteret har funnet ut at mange servere i rom nr. 7 (hvor vÄrt utstyr stÄr) ikke ble slÄtt av. IfÞlge vÄre data er 26 servere fortsatt pÄ. Ved ny sjekk finner vi 58 servere.
20:18. Det tekniske personalet i datasenteret blÄser luft i rommet uten klimaanlegg gjennom mobile luftkanaler som er lagt gjennom gangene.
23:08. Den fÞrste administratoren er sendt hjem. Noen mÄ fÄ sove om natten for Ä kunne fortsette arbeidet i morgen. Vi slipper nÄ ogsÄ noen flere administratorer og utviklere.
02:56. Vi har startet alt som kan startes. Vi gjĂžr en grundig sjekk av alle tjenester med autotester.

03:02. Klimaanlegget i det siste, 7. rom, er gjenopprettet.
03:36. Vi har fÄtt frontene i datasenteret inn i rotasjon i DNS. Fra dette tidspunktet begynner Ä komme brukertrafikk.
Vi slipper ned store deler av administratorteamet hjem. Men vi beholder noen personer.
En liten FAQ:
Q: Hva skjedde mellom 18:31 og 02:56?
A: I henhold til «Handlingsplan ved feil» starter vi alle tjenester, begynner med de viktigste. Samtidig gir koordinatoren i chatten en tjeneste til den ledige administratoren, som sjekker om OS og applikasjonen har startet, om det er noen feil, og om alt fungerer som det skal. Etter at oppstarten er fullfÞrt, informerer han chatten om at han er ledig, og fÄr en ny tjeneste fra koordinatoren.
Prosessen blir ytterligere forsinket av sviktende maskinvare. Selv om nedstengingen av OS og avslutningen av serverne har gÄtt korrekt, returnerer ikke en del servere pÄ grunn av plutselige feil pÄ disker, minne eller chassis. Ved strÞmmangel Þker prosentandelen av brudd.
Q: Hvorfor kan vi ikke bare starte alt samtidig, og deretter fikse det som dukker opp i overvÄkingen?
A: Alt mĂ„ gjĂžres gradvis, fordi det er avhengigheter mellom tjenestene. Og vi mĂ„ sjekke alt med en gang, uten Ă„ vente pĂ„ overvĂ„kingen â fordi det er best Ă„ hĂ„ndtere problemer med en gang, uten Ă„ vente pĂ„ at de blir verre.
7:40. Den siste administratoren (koordinatoren) har gÄtt til sengs. Arbeidet fÞrste dag er avsluttet.
8:09. De fĂžrste utviklerne, ingeniĂžrene i datasentrene og administratorene (inkludert den nye koordinatoren) har begynt gjenopprettingsarbeidet.
09:37. Vi har begynt Ă„ heve rom nr. 7 (det siste).
Samtidig fortsetter vi Ä gjenopprette det vi ikke har fÄtt gjort ferdig i de andre rommene: bytte disker/minne/servere, fikse alt som «brenner» i overvÄkingen, reversere roller i master-standby skjemaene og andre smÄting, som likevel er ganske mange.
17:08. Vi tillater alle ordinĂŠre arbeider med produksjonen.
21:45. Arbeidet den andre dagen er avsluttet.
09:45. I dag er det fredag. Det er fortsatt en del smÄproblemer i overvÄkingen. Helgen nÊrmer seg, og alle Þnsker Ä slappe av. Vi fortsetter Ä fikse alt som kan fikses. Administrative oppgaver som kunne utsettes, blir utsatt. Den nye koordinatoren.
15:40. Plutselig restartet halvparten av Core-nettverksutstyret i EN ANNEN datasentral. Vi tok frontene ut av rotasjonen for Ă„ minimere risikoene. Ingen effekt for brukerne. Senere ble det klart at det var en defekt chassis. Koordinatoren jobber med Ă„ reparere to hendelser samtidig.
17:17. Nettverksarbeidet i den andre datasentralen er gjenopprettet, alt er sjekket. Datasentralen er tilbake i rotasjon.
18:29. Arbeidet med tredje dagen og generelt gjenopprettingen etter hendelsen er fullfĂžrt.
Etterord
04.04.2013, «VKontakte», âportalen var helt eller delvis utilgjengelig i lĂžpet av tre dager. I lĂžpet av denne tiden var over 100 personer fra ulike byer og selskaper (takk igjen!), som jobbet bĂ„de eksternt og direkte i datasentrene, inne og ute, manuelt og automatisk, i gang med Ă„ fikse tusenvis av servere.
Vi har lÊrt leksjonene. For Ä unngÄ slike hendelser igjen har vi utfÞrt og fortsetter Ä utfÞre omfattende arbeider.
Hva er de viktigste forskjellene fra den nÄvÊrende krasjen sammenlignet med 404?
- Vi har fĂ„tt en «HĂ„ndlingsplan for nĂždsituasjoner». Hver kvartal gjennomfĂžrer vi Ăžvelser â simulerer en nĂždsituasjon som en gruppe administratorer (alle pĂ„ tur) mĂ„ lĂžse ved hjelp av «HĂ„ndlingsplan for nĂždsituasjoner». Ledende systemadministratorer roterer i rollen som koordinator.
- Kvartalsvis isolerer vi datasentrene (alle pÄ tur) fra LAN og WAN nettet i testmodus, noe som gjÞr oss i stand til Ä identifisere flaskehalser i tide.
- FĂŠrre feilaktige disker, fordi vi har skjerpet standardene: mindre arbeidstimer, strengere terskelverdier for S.M.A.R.T.,
- Vi har helt forkastet BerkeleyDB â den gamle og ustabile databasen som krevde mye tid for gjenoppretting etter omstart av serveren.
- Vi har redusert antallet servere med MS SQL og minsket avhengigheten fra de som er igjen.
- Vi har vÄrt eget hvor vi aktivt har migrert alle tjenester i over to Är. Skyen forenkler hele arbeidsprosessen med applikasjonen, og i tilfelle av en nÞdsituasjon gir den unike verktÞy som:
- korrekt stopp av alle applikasjoner med ett klikk;
- enkel migrering av applikasjoner fra failed servere;
- automatisk rangert (i prioritert rekkefĂžlge av tjenester) oppstart av et helt datasenter.
Ulykken beskrevet i denne artikkelen ble den stÞrste siden den 404. SelvfÞlgelig gikk ikke alt helt glatt. For eksempel, under nedetiden til det brente datasenteret, sviktet en disk pÄ en av serverne i et annet datasenter, noe som innebar at kun en av tre replikker i Cassandra-klyngen var tilgjengelig, og dermed kunne 4,2 % av brukerne av mobilapplikasjonene ikke logge inn. Samtidig fortsatte allerede tilkoblede brukere Ä arbeide. Totalt ble det avdekket mer enn 30 problemer etter ulykken - fra banale feil til mangler i arkitekturen til tjenestene.
Men den viktigste forskjellen mellom den nÄvÊrende ulykken og 404-eren er at mens vi hÄndterte konsekvensene av brannen, fortsatte brukerne Ä chatte og foreta videosamtaler i , spille spill, hÞre pÄ musikk, gi hverandre gaver, se videoer, serier og TV-kanaler i , samt streame i .
Hvordan hÄndterer dere deres uhell?
Kilde: habr.com
