Gitlab删库事件的借鉴意义

上周轰动一时的Gitlab事件终于尘埃落定了,不可否认的是这次事故Gitlab官方公关的的很出色,及时公布事件细节并寻求帮助,这让本是一个失误引发的事故,演变为一个真诚面对问题并反思的正面教材。对此,网络上一片好评。

最新动态:

截止北京时间2017/02/02 02:14,GitLab.com已恢复正常。期间丢失了 6 小时的数据库数据(问题,合并请求,用户,评论,片段等)。Git / wiki 存储库和自托管安装不受影响。根据GitLab从日志里得出的结论,有707位用户丢失数据,5,037项目丢失,受事故影响的用户基数不到1%。

事件回顾:


起因是在 2017/01/31 18:00左右,Gitlab检测到垃圾邮件发送者通过创建片段来攻击数据库,使其不稳定,于是运维block攻击者的IP,并移除用户发送垃圾邮件。

之后运维A发现db2.staging复制滞后生产库4GB的数据(据后期2nd Quadrant的CTO – Simon Riggs 建议,PostgreSQL有4GB的同步滞后是正常的),A开始尝试修复db2,但复制失败,A在尝试了多种方案之后依然如此。

在2017年1月31日23:00 左右A决定删除该db2数据库目录,令其重新复制。由于夜间开车时间很长,A错误的将 db1.cluster.gitlab.com (生产库)的数据库删除,而不是db2的。虽然在一两秒之后意识到这个问题,终止了删除操作,但为时已晚。大约 300 GB 左右的数据只剩下约4.5 GB。

随后虽然有号称有五重备份机制(常规备份(24小时做一次)、自动同步、LVM快照(24小时做一次)、Azure备份(只对 NFS 启用,对数据库无效)、S3备份),没有一个可靠地运行或设置,最终只能基于LVM的备份(最近6小时以前),还原了6 小时前的备份。恢复期间Gitlab直播了这次恢复过程。

详细内容请查阅文档

借鉴意义

1、积极公开,寻求帮助

本次事件让我们大感震撼的是,Gitlab居然主动的公告了事件的细节,不但提交了详尽的事故报告到googleDoc上,还在网络上也积极的寻求帮助。

这份真诚实在是令人敬佩。如果是一般的技术团队都是在向外界隐藏问题,然后自己闷头解决,最终时间耽误了,用户还不认可你,而你自己也有苦说不出。反而是Gitlab主动公布,不但获得了各方面的技术组织的鼎力帮助,还收获了用户的理解和支持,同时还让网络上也少了一份猜测和谣言。

除了积极的公开事件详细,GitLab的故障回顾中也说明了要对本次事故进行Ask 5 Whys。随后在直播的过程中,官方也主动说明了不会辞退运维A,而是会罚他看一个名为 "10 hours of nyancat" 的视频(http://www.nyan.cat/哈哈,很难看下去啊)。

这个表明整个团队对本次事故的处理态度是,齐心合力解决问题,然后检讨流程,不归责于个人。这份处事态度也值得人钦佩,出现问题,首先不是追究责任,而是解决问题,然后发现后面的深层次问题,从而有效的避免下次再犯同样错误。

2、防止人肉运维

事故发生后,有人建议不要用rm命令,采用mv命令,其实这个只能解决暂时问题,你们保证用其他命令就不会出问题么。另外有人建议建立一个checkList流程,每次执行的时候check一遍流程,有文档做指示不会犯一些低级错误,如若每个命令都去check一下,工作是不会更复杂了。

另外还有一些建议双人操作,增加权限系统等等,我觉得对于一个规范流程来说,一些必要的提示和规范可以增加,但是运维要自动化,以机器来代替人工,而不是开倒车去采用更多的人工来避免错误。

3、高可用分布系统

本次的事故在恢复的时候,发现有5个备份系统基本都无用,最终导致了6个小时数据的丢失。基于备份系统的缺陷,有运维同学建议如下:

1、审核所有数据的备份方案,备份频率如何,备份数据放在哪里,保留多久。

2、对于云服务自带的镜像备份等服务,确认是否正确的打开和设置

3、对于自行搭建的备份方案,确认

4、定期做灾备演习,检验是否可以正确从备份中恢复,以及此过程需要多少时间和资源。

从备份流程和规范来说,这些建议很中肯。从另外一个角度来说,即便是你的备份系统已经做到了这些,而且操作人员零失误,但是丢失数据的问题也会发生,为何呐。

以下是采自左耳朵耗子《从Gitlab误删除数据库想到的》的文字。

备份通常来说都是周期性的,所以,如果你的数据丢失了,从你最近的备份恢复数据里,从备份时间到故障时间的数据都丢失了。

备份的数据会有版本不兼容的问题。比如,在你上次备份数据到故障期间,你对数据的scheme做了一次改动,或是你对数据做了一些调整,那么,你备份的数据就会和你线上的程序出现不兼容的情况。

有一些公司或是银行有灾备的数据中心,但是灾备的数据中心没有一天live过。等真正灾难来临需要live的时候,你就会发现,各种问题让你live不起来。你可以读一读几年前的这篇报道好好感受一下《以史为鉴,宁夏银行7月系统瘫痪最新解析》。

所以,在灾难来临的时候,你会发现你所设计精良的“备份系统”或是“灾备系统”就算是平时可以工作,但也会导致数据丢失,而且可能长期不用的备份系统很难恢复(比如应用、工具、数据的版本不兼容等问题)。

所以说,如果你要让你的备份系统随时都可以用,那么你就要让它随时都Live着,而随时都Live着的多结点系统,基本上就是一个分布式的高可用的系统。因为,数据丢失的原因有很多种,比如掉电、磁盘损坏、中病毒等等,而那些流程、规则、人肉检查、权限系统、checklist等等都只是让人不要误操作,都不管用,这个时候,你不得不用更好的技术去设计出一个高可用的系统!别无它法。


以上是每种架构的优缺点,我们可以看到Backups、Master/Slave、Master/Master架构下,Data都是会出现loss的情况的,而2PC和Paxos是不会的。

4、谨防夜间开车

夜黑风高,夜间长时间开车,必然会有车祸现场的时候。这次事故的运维A,工作到深夜,想必也是和疲劳驾驶有一定的关系。

我们不评论8小时工作制度是否合理,但对于脑力劳动者,违背用脑规律甚至使之处于过载疲劳状态,都会显著降低脑部的能量转换效率,还是科学用脑最为可靠,把时间用在效率最高的地方。对此希望决策者能够意识到这个问题,而不是一味加班赶进度。这种危害已经越来越得到更多从业人员的认同了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容