写点什么

调查报告深入揭示了 GitLab.com 服务中断 18 小时的根本原因

  • 2017-02-28
  • 本文字数:1116 字

    阅读完需:约 4 分钟

在结束故障并清除了问题后,GitLab 给出一个帖子,总结了导致长达 18 小时服务中断的原因、他们计划如何继续发展,以及整个事故是如何发生的。

数据库的高负载在一开始被诊断为大量垃圾邮件的涌入。但是在进一步审查后,明确了是由于无事生非的家伙将一位 GitLab 员工举报为滥用,事故因此而恶化了。另一位员工在审查滥用报告时并没有意识到被举报的账号其实是团队中一位工程师的账号,因此意外地删除了该账号:

我们随后发现这一部分负载是由一个后台任务试图去移除 GitLab 员工及其相关数据所导致的。这就是他们的账号被标识为滥用并意外地被删除的结果。

根据作为当事人的工程师在故障报告中的记录,他的账号被删除是因为“我们收到来自一位用户的垃圾邮件报告,该用户是在发出垃圾邮件报告的10 分钟前创建的。这就产生了人为错误,删除了我的所有项目。”

由于数据库负载的加重,预写式日志 (WAL,Write-Ahead Log) 在得到从数据库处理之前就被主数据库清洗掉了,导致主数据库停止向从数据库复制。不幸的是,WAL 归档也并未被打开。WAL 归档会要求数据段在得到移除许可前被归档。

由于复制已经停止了,需要对从数据库做一次重建。启动复制需要一个空的数据目录,因此一位工程师手工清理干净了一个目录。但该目录并非是从数据库的数据目录,他意外地清除了主数据库的数据目录。

虽然主数据库的不幸损失应该只会让站点关闭一小段时间,但是对于GitLab 团队而言事情更糟。在努力恢复数据的过程中,团队发现自己的备份无法工作。作为备份的主要方法的 pg_dump 由于版本不匹配的问题而不能运行,因此并未备份任何东西。没有人知道存在这个失败,通知邮件因为不支持 DMARC 被服务器拒收。

其它的备份方法也因为各种原因而无法使用,团队并未对数据库使用 Azure 磁盘快照。即使使用了磁盘快照,在线取回数据也将花费很长的时间:

每个存储账号的限制大概为 30TB。恢复快照时使用同一存储账号中的主机通常会完成得很快。但是当用在不同存储账号中的主机时,完成该过程将需要数小时乃至数天。

唯一的方法是恢复事故发生之前六个小时的 LVM 快照。

团队在改进他们的修复恢复过程中碰上了 14 个问题,最终完成了快照的恢复。他们在事故发生后两个星期中实现了 WAL-E ,功能是将 WAL 数据段实时地归档到 AWS S3。对一次恢复的测试表明,这种备份类型在两个小时以内就可以恢复到指定的时间点。此外,他们正在实现一个自动测试PostgreSQL 备份恢复的系统。

查看英文原文: GitLab.com Postmortem Digs into Root Causes of 18 Hour Outage


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-02-28 18:003294
用户头像

发布了 227 篇内容, 共 85.2 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

AI 大模型出现“幻觉”该怎么办?

Techinsight

大模型幻觉 #大模型 大模型部署

Java中什么是类加载?类加载的过程?

秃头小帅oi

百度日志中台前端重构实践

百度Geek说

DolphinScheduler 调度变慢?试试这些数据库性能优化策略

白鲸开源

开源 Apache DolphinScheduler 任务调度平台

AI 有多会瞎编?深度解析大模型的“幻觉”机制

Techinsight

传芯启源拖欠工资奖金,有知情的吗?

王中阳Go

Go 面试

【小白入门】这十个问题回答不上来,都不好意思说自己是干调度的

白鲸开源

开源 入门 大数据任务调度 Apache DolphinScheduler

一文吃透 SeaTunnel 线程共享机制与任务执行模型设计优化

白鲸开源

开源 技术分享 数据同步 数据集成 Apache SeaTunnel

在仓颉开发语言中使用数据库

幽蓝计划

缓解大模型“幻觉”的关键一招:检索增强生成(RAG)

Techinsight

大模型幻觉 #大模型 大模型部署

律师行业迎来“走出去”新机遇,Alpha系统助力律师高效服务

科技汇

AI排版能力共享、华为主题全新开放能力发布等,技术赋能高品质内容创作

最新动态

我的 Vibe Coding 的第二个项目

Immerse

大数据-20-Flume 采集数据双写+HDFS 监控目录变化 Agent MemoryChannel Source

武子康

大数据 hadoop hdfs hive flume

AI 题库系统的主要功能

北京木奇移动技术有限公司

AI教育 软件外包公司 AI题库

从设备自动化到智能管控:MES如何赋能牛奶饮料行业高效生产?

万界星空科技

mes 食品饮料行业数字化转型 食品MES 食品加工行业 牛奶饮料行业

生活服务聚合平台

微擎应用市场

直播电商解决方案

微擎应用市场

智能洗护服务平台

微擎应用市场

【干货】Trae知识库实战教程,智能体提示词+完整设置方法分享,打造你的专属AI助手

田威AI

AI

YashanDB数据库的无缝集成和迁移指南

数据库砖家

深入解析 go 语言中的 select 语句

左诗右码

狄耐克六恒科技,全年守护您和家人的每一次呼吸

新消费日报

小白秒变AI大神!DeepSeek方+第三方+命令行调用指南,10分钟搞定

测试人

人工智能 软件测试

HarmonyOS 6开发者Beta正式启动,技术赋能全场景智能内容体验

最新动态

YashanDB数据库的性能调优经验分享

数据库砖家

会议室LED显示屏:提升企业协作效能

Dylan

会议 数字 LED display LED显示屏 LED屏幕

新能源变革之路,要建在“高质量”的路基上

脑极体

能源

本地生活服务枢纽

微擎应用市场

AI 题库系统的上线

北京木奇移动技术有限公司

AI教育 软件外包公司 AI技术应用

婚礼服务数字化平台

微擎应用市场

调查报告深入揭示了GitLab.com服务中断18小时的根本原因_微软_David Iffland_InfoQ精选文章