Verkfræðingur eyddi framleiðslugagnagrunni GitLab. 300 gígabæti.
31.
31. janúar 2017, 23:27 UTC: verkfræðingur hjá GitLab, sem var að berjast við bilaða afritun eftir langt kvöld, fjarlægir PostgreSQL gagnaskrána á db1 í stað db2. db1 er aðalþjónninn. Um 300 GB af gagnagrunni GitLab.com eru horfin á einni eða tveimur sekúndum, og af fimm öryggisafritunar- og afritunarkerfum virkar ekkert. Eftirfylgni: tímalínan frá ruslpóstshækkuninni að röngum vefþjónsnafni, hvers vegna pg_basebackup virtist festast, hvers vegna pg_dump hafði mistekist hljóðlaust (9.2 keyrsluskrár á 9.6 gagnagrunni, villupóstar skoppuðu af DMARC), 18 klukkustunda endurheimtin frá 6 klukkustunda gamalli sviðsmynd sem var streymt beint á YouTube, og hver ber raunverulega sökina. Niðurstaða varðandi viðbrögðin: SHIP IT.
Lestu skriflegu útgáfuna (enska) ↗
Það sem þetta myndband fjallar um
- 31. janúar 2017: rm -Rvf á gagnamöppu aðalþjónsins; ~300 GB fjarlægð, 4.5 GB eftir
- 5 af 5 öryggisafritum bila: tómur S3-fötu (pg_dump útgáfumunur), engar Azure skyndimyndir á gagnagrunninum, eytt afrit, dagleg LVM afritun án vefkróka
- 1. febrúar, 18:00 UTC: GitLab.com aftur í gang frá 6 klukkustunda gamalli handvirkri skyndimynd; lifandi skjal, lifandi streymi, söklaust eftirfylgni með lagfæringarlista
Þýtt afrit
Þýtt úr upprunalegri enskri frásögn. Tiltækt hljóð og textar eru stjórnaðir af YouTube.
0:00 Verkfræðingur hjá GitLab keyrir rm -rf á rangan gagnagrunnsþjón, og þrjú hundruð gígabæti af GitLab.com hverfa á einni eða tveimur sekúndum, um það bil jafn langan tíma og það tekur að lesa vefþjónsnafnið. 31. janúar 2017, 23:27 UTC. GitLab tístir að það hafi óvart eytt framleiðslugögnum, opnar atviksskýrslur sínar fyrir internetinu og streymir endurheimtinni á YouTube, annað efsta beina útsendingin á vettvanginum. Næsta dag, skriflega: af fimm öryggisafritunaraðferðum,
0:25 enginn virkar áreiðanlega. Hvernig það gerist, hvers vegna það er mögulegt og hver ber raunverulega sökina. Þetta er The Daily Diff, eftirfylgni. 17:20: verkfræðingur tekur skyndimynd af framleiðslu til að prófa álagsjafnara í sviðsetningu. 19:00: ruslpóstur hamrar gagnagrunninn, auk starfs sem eyðir GitLab starfsmanni sem tröll tilkynnti fyrir misnotkun. 23:00: afritið er svo langt á eftir að aðalþjónninn hefur þegar hent
0:48 skránni sem hann þarf; eina lausnin er að eyða afritinu og afrita aðalþjóninn aftur. pg_basebackup hangir án úttaks. Það er í raun að bíða, hljóðlaust, eftir aðalþjóninum; enginn veit það, og handbókin segir það ekki. Verkfræðingurinn, sem ætlaði að skrá sig út klukkan ellefu, ákveður að tóm gagnaskráin sé vandamálið og fjarlægir hana. Á db1. Aðalþjónninn. Hann tekur eftir því sekúndu eða tveimur síðar; af um þrjú hundruð gígabætum,
1:11 4.5 eru eftir. Öryggisafritin. Eitt: pg_dump í S3, daglega. Fatan er tóm. Tímasetningarverkið keyrir á forritaþjóni án gagnagrunns, svo pakkinn velur PostgreSQL 9.2 keyrsluskrár fyrir 9.6 gagnagrunn, mistekst og sendir tölvupóst um bilunina, sem skoppar vegna DMARC sem vantar. Tvö: Azure diska skyndimyndir, virkt fyrir skráaþjónana, ekki gagnagrunnana.
1:32 Þrjú: afritið, eytt viljandi fyrir klukkutíma síðan. Fjögur: daglega skyndimyndin, 24 klukkustunda gömul, allir vefkrókar fjarlægðir af samstillingu sviðsetningar. Fimm: handvirka skyndimyndin frá 17:20, fyrir óskyld prófun. Sú vinnur. Endurheimt þýðir að afrita sviðsetningardiskinn aftur í framleiðslu yfir ódýra Azure geymslu á sextíu megabitum á sekúndu: átján klukkustundir. GitLab.com er aftur í gang 1. febrúar klukkan 18:00 UTC, sex klukkustundum af gögnum eldri.
1:58 git blame: tvö vefþjónsnöfn einum staf í sundur, og fimm öryggisafritunarkerfi sem enginn hefur nokkurn tímann endurheimt úr. Ekki verkfræðingurinn. Eftirfylgnin, undirrituð af framkvæmdastjóranum, heldur honum nafnlausum, litar framleiðsluhvetjuna rauða og gefur gagnaþol eiganda, því fram að þessu hafði það engan. Sprengjuradíus: átján klukkustundir niðri, sex klukkustundir af gögnum horfnar, um það bil fimm þúsund verkefni, fimm þúsund athugasemdir,
2:18 sjö hundruð nýir notendur, og fimm þúsund manns að horfa á framvindustiku. Hacker News gefur lifandi skjalinu 1.162 punkta og vitnar í eina línu aftur til þeirra: af fimm öryggisafritum, enginn. Niðurstaða, eftirfylgni: SHIP IT, varðandi viðbrögðin. Þeir reka atvikið opinberlega, kenna ferlinu um og birta lagfæringarlistann með útgáfunúmerum. Aðgerð á mánudegi: endurheimta öryggisafrit. Ef þú hefur aldrei endurheimt það, átt þú það ekki.
2:42 Sendu mér atvikið sem þú mátt enn ekki tala um, í athugasemdum, eða á thedailydiff.dev. Og það er diffið fyrir í dag. Ég er Niko frá Axrisi. Sameinaðu á ábyrgan hátt.
Heimildir
- GitLab, "Postmortem of database outage of January 31" (Feb 10, 2017)about.gitlab.com
- GitLab, "GitLab.com database incident" (Feb 1, 2017)about.gitlab.com
- @gitlabstatus, "We accidentally deleted production data…"twitter.com
- @gitlabstatus, emergency maintenance noticetwitter.com
- Hacker News, "GitLab Database Incident – Live Report" (1,162 points, 598 comments)news.ycombinator.com
- Hacker News, the postmortem thread (377 points)news.ycombinator.com



