ඉංජිනේරුවෙක් GitLab හි නිෂ්පාදන දත්ත සමුදාය මකා දැමීය. ගිගාබයිට් 300 ක්.
ජනවාරි 31, 2017, 23:27 UTC: GitLab ඉංජිනේරුවෙක්, දිගු රාත්රියක අවසානයේදී බිඳුණු අනුරුවක් සමඟ සටන් කරමින්, db2 වෙනුවට db1 හි PostgreSQL දත්ත නාමාවලිය ඉවත් කරයි.
ජනවාරි 31, 2017, 23:27 UTC: GitLab ඉංජිනේරුවෙක්, දිගු රාත්රියක අවසානයේදී බිඳුණු අනුරුවක් සමඟ සටන් කරමින්, db2 වෙනුවට db1 හි PostgreSQL දත්ත නාමාවලිය ඉවත් කරයි. db1 ප්රාථමිකයයි. GitLab.com හි දත්ත සමුදායේ ගිගාබයිට් 300 ක් පමණ තත්පරයකින් හෝ දෙකකින් අතුරුදහන් වන අතර, උපස්ථ සහ ප්රතිවර්තන යාන්ත්රණ පහෙන් කිසිවක් ක්රියා නොකරයි. පශ්චාත් මරණ පරීක්ෂණය: ස්පෑම් වැඩිවීම සිට වැරදි ධාරක නාමය දක්වා කාලරාමුව, pg_basebackup ඇලවී ඇති බවක් පෙනුනේ ඇයි, pg_dump නිශ්ශබ්දව අසාර්ථක වූයේ ඇයි (9.6 දත්ත සමුදායක 9.2 ද්විමය, DMARC මගින් අසාර්ථක ඊමේල් ආපසු එවීම), YouTube හි සජීවීව ප්රවාහනය කරන ලද පැය 6 ක් පැරණි වේදිකාගත ස්නැප්ෂොට් එකකින් පැය 18 ක ප්රතිසාධනය සහ ඇත්ත වශයෙන්ම දොස් පැවරිය යුත්තේ කාටද. ප්රතිචාරය පිළිබඳ තීන්දුව: SHIP IT.
ලිඛිත සංස්කරණය කියවන්න (ඉංග්රීසි) ↗
මෙම වීඩියෝවෙන් ආවරණය වන දේ
- ජනවාරි 31, 2017: ප්රාථමිකයේ දත්ත නාමාවලිය මත rm -Rvf; ~300 GB ඉවත් කරන ලදි, 4.5 GB ඉතිරි විය.
- උපස්ථ 5න් 5ක් අසාර්ථක වේ: හිස් S3 බාල්දිය (pg_dump අනුවාද නොගැලපීම), DB මත Azure ස්නැප්ෂොට් නොමැත, පිසදැමූ අනුරුව, වෙබ්හුක් නොමැතිව දෛනික LVM පිටපතක්.
- පෙබරවාරි 1, 18:00 UTC: පැය 6 ක් පැරණි අතින් ගත් ස්නැප්ෂොට් එකකින් GitLab.com නැවත ක්රියාත්මක වේ; සජීවී ලේඛනය, සජීවී ප්රවාහය, දෝෂ නිවැරදි කිරීමේ ලැයිස්තුවක් සමඟ දොස් රහිත පශ්චාත් මරණ පරීක්ෂණය.
පරිවර්තනය කරන ලද පිටපත
මුල් ඉංග්රීසි නිරූපණයෙන් පරිවර්තනය කරන ලදී. පවතින ශ්රව්ය සහ ශීර්ෂ පාඨ YouTube මගින් පාලනය වේ.
0:00 GitLab හි ඉංජිනේරුවෙක් වැරදි දත්ත සමුදා සේවාදායකයේ rm -rf ධාවනය කරයි, සහ GitLab dot com හි ගිගාබයිට් තුන්සියයක් තත්පරයකින් හෝ දෙකකින් අතුරුදහන් වේ, ධාරක නාමයක් කියවීමට ගතවන කාලය පමණ. 2017 ජනවාරි 31, රාත්රී 11:27. UTC. GitLab නිෂ්පාදන දත්ත අහම්බෙන් මැකූ බව ට්වීට් කරයි, එහි සිදුවීම් සටහන් අන්තර්ජාලයට විවෘත කරයි, සහ YouTube හි ප්රතිසාධනය සජීවීව ප්රවාහනය කරයි, වේදිකාවේ දෙවන සජීවී ප්රවාහය. පසුදා, ලිඛිතව: උපස්ථ ක්රම පහෙන්,
0:25 කිසිවක් විශ්වාසනීයව ක්රියා නොකරයි. එය සිදුවන්නේ කෙසේද, එය කළ හැක්කේ ඇයි, සහ ඇත්ත වශයෙන්ම දොස් පැවරිය යුත්තේ කාටද. මෙය The Daily Diff, පශ්චාත් මරණ පරීක්ෂණය. ප.ව. 5:20: ඉංජිනේරුවෙක් නිෂ්පාදනය ස්නැප්ෂොට් කරයි, වේදිකාවේදී බර සමතුලිතතාවයක් පරීක්ෂා කිරීමට. ප.ව. 7: ස්පෑම් දත්ත සමුදායට පහර දෙයි, ඊට අමතරව GitLab සේවකයෙකු ස්ථිරව මකා දමන කාර්යයක්, අපයෝජනයක් සඳහා වාර්තා කරන ලද ට්රොලර් කෙනෙක්. ප.ව. 11: අනුරුව කෙතරම් පසුපසට වැටී ඇත්ද යත් ප්රාථමිකය දැනටමත් ඉවත දමා ඇත,
0:48 එයට අවශ්ය ලොගය; එකම විසඳුම වන්නේ අනුරුව පිස දමා ප්රාථමිකය පිටපත් කිරීමයි, නැවතත්. pg_basebackup කිසිදු ප්රතිදානයකින් තොරව නතර වේ. එය ඇත්ත වශයෙන්ම නිශ්ශබ්දව ප්රාථමිකය සඳහා බලා සිටී; කිසිවෙකු එය දන්නේ නැත, සහ ධාවන පොතේ එය සඳහන් නොවේ. රාත්රී එකොළහට අත්සන් කිරීමට සිටි ඉංජිනේරුවා හිස් දත්ත නාමාවලිය ගැටලුව බව තීරණය කර එය ඉවත් කරයි. db1 මත. ප්රාථමිකය. ඔහු තත්පරයකින් හෝ දෙකකින් පසුව එය දකී; දළ වශයෙන් ගිගාබයිට් තුන්සියයකින්,
1:11 4.5 ක් ඉතිරිව ඇත. උපස්ථ. එක: S3 වෙත pg_dump, දිනපතා. බාල්දිය හිස්ය. ක්රෝන් කාර්යය දත්ත සමුදායක් නොමැති යෙදුම් සේවාදායකයක ධාවනය වේ, එබැවින් පැකේජය තෝරා ගනී, 9.6 දත්ත සමුදායක් සඳහා PostgreSQL 9.2 ද්විමය, අසාර්ථක වේ, සහ ඊමේල් කරයි, DMARC අතුරුදහන් වීම නිසා ආපසු එන අසාර්ථකත්වය. දෙක: Azure තැටි ස්නැප්ෂොට්, ගොනු සේවාදායක සඳහා සක්රීය කර ඇත, දත්ත සමුදායන් සඳහා නොවේ.
1:32 තුන: අනුරුව, පැයකට පෙර හිතාමතාම පිසදමා ඇත. හතර: දෛනික ස්නැප්ෂොට්, පැය 24 ක් පැරණි, සෑම වෙබ්හුක් එකක්ම ඉවත් කර ඇත, වේදිකාගත සමමුහුර්තකරණය. පහ: සම්බන්ධයක් නැති පරීක්ෂණයක් සඳහා ප.ව. 5:20 ට ගත් අතින් ස්නැප්ෂොට් එක. ඒක දිනනවා. ප්රතිසාධනය යනු Azure හි ලාභදායී ගබඩාව හරහා වේදිකාගත තැටිය නිෂ්පාදනයට නැවත පිටපත් කිරීමයි, තත්පරයට මෙගාබිට් හැටක වේගයකින්: පැය දහඅටක්. GitLab dot com පෙබරවාරි 1 වන දින ප.ව. හයට නැවත පැමිණේ, UTC, පැය හයක දත්ත පැරණි විය.
1:58 git blame: එක් අක්ෂරයකින් වෙනස් ධාරක නාම දෙකක්, සහ කිසිවෙකුට කිසිදා ප්රතිසාධනය කර නොමැති උපස්ථ පද්ධති පහක්. ඉංජිනේරුවා නොවේ. ප්රධාන විධායක නිලධාරියා විසින් අත්සන් කරන ලද පශ්චාත් මරණ පරීක්ෂණය ඔහුව නිර්නාමිකව තබා ගනී, නිෂ්පාදන විමසුම රතු පැහැයෙන් වර්ණ ගන්වයි, සහ දත්ත කල්පැවැත්මට හිමිකරුවෙකු ලබා දෙයි, මක්නිසාද යත් මෙතෙක් එයට කිසිවෙකු සිටියේ නැත. පිපිරුම් අරය: පැය දහඅටක් අක්රිය විය, පැය හයක දත්ත නැති විය, දළ වශයෙන් ව්යාපෘති පන්දහසක්, අදහස් පන්දහසක්,
2:18 නව පරිශීලකයින් හත්සියයක්, සහ ප්රගති තීරුවක් නරඹන පන්දහසක් දෙනා. Hacker News සජීවී ලේඛනයට 1,162 ක් ලකුණු ලබා දී එක් පේළියක් ඔවුන්ට නැවත උපුටා දක්වයි: උපස්ථ පහෙන්, කිසිවක් නැත. තීන්දුව, පශ්චාත් මරණ පරීක්ෂණය: ප්රතිචාරය මත SHIP IT. ඔවුන් සිදුවීම ප්රසිද්ධියේ ධාවනය කරයි, ක්රියාවලියට දොස් පවරයි, සහ දෝෂ නිවැරදි කිරීමේ ලැයිස්තුව ප්රකාශයට පත් කරයි, ගැටළු අංක සමඟ. සඳුදා ක්රියාව: උපස්ථයක් ප්රතිසාධනය කරන්න. ඔබ එය කිසිදා ප්රතිසාධනය කර නොමැති නම්, ඔබට එකක් නොමැත.
2:42 ඔබට තවමත් කතා කිරීමට අවසර නැති සිදුවීම මට එවන්න, අදහස් දැක්වීම්වලින්, හෝ daily diff dot dev වෙත. අදට වෙනස එයයි. මම Axrisi හි Niko. වගකීමෙන් යුතුව ඒකාබද්ධ කරන්න.
මූලාශ්ර
- 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



