AWS 的 S3 故障回顾和思考

标签: 业界新闻 杂项资源 程序设计 Amazon S3 AWS | 发表时间:2017-03-03 06:20 | 作者:陈皓
出处:http://coolshell.cn

Gitlab的误删除数据事件没几天,“不沉航母” AWS S3 (Simple Storage Service)几天前也“沉”了4个小时,墙外的半个互联网也跟着挂了。如约,按 AWS 惯例,AWS今天给出了一个简单的故障报告《 Summary of the Amazon S3 Service Disruption in the Northern Virginia (US-EAST-1) Region》。这个故障和简单来说和Gitlab一样,也是人员误操作。先简单的说一下这份报中说了什么。

故障原因

简单来说,这天,有一个 AWS 工程师在调查 Northern Virginia (US-EAST-1) Region 上 S3 的一个和账务系统相关的问题,这个问题是S3的账务系统变慢了(我估计这个故障在Amazon里可能是Sev2级,Sev2级的故障在Amazon算是比较大的故障,需要很快解决),Oncall的开发工程师(注:Amazon的运维都是由开发工程师来干的,所以Amazon内部嬉称SDE-Software Developer Engineer 为 Someone Do Everything)想移除一个账务系统里的一个子系统下的一些少量的服务器(估计这些服务器上有问题,所以想移掉后重新部署),结果呢,有一条命令搞错了,导致了移除了大量的S3的控制系统。包括两个很重要的子系统:

1) 一个是S3的对象索引服务(Index),其中存储了S3对象的metadata和位置信息。这个服务也提供了所有的 GET,LIST,PUT 和DELETE请求。

2) 一个是S3的位置服务系统(Placement),这个服务提供对象的存储位置和索引服务的系统。这个系统主要是用于处理PUT新对象请求。

这就是为什么S3不可访问的原因。

在后面,AWS也说明了一下故障恢复的过程,其中重点提到了这点——

虽然整个S3的是做过充分的故障设计的(注:AWS的七大Design Principle 之一 Design for Failure)—— 就算是最核心的组件或服务出问题了,系统也能恢复。但是,可能是在过去的日子里 S3 太稳定了,所以,AWS 在很长很长一段时间内都没有重启过 S3 的核心服务,而过去这几年,S3 的数据对象存储级数级的成长(S3存了什么样数量级的对象,因为在Amazon工作过,所以多大概知道是个什么数量级,这里不能说,不过,老实说,很惊人的),所以,这两个核心服务在启动时要重建并校验对象索引元数据的完整性,这个过程没想到花了这么长的时候。而Placement服务系统依赖于Index 服务,所以花了更长的时间。

了解过系统底层的技术人员应该都知道这两个服务有多重要,简而言之,这两个系统就像是Unix/Linux文件系统中的inode,或是像HDFS里的node name,如果这些元数据丢失,那么,用户的所有数据基本上来说就等于全丢了。

而要恢复索引系统,就像你的操作系统从异常关机后启动,文件系统要做系统自检那样,硬盘越大,文件越多,这个过程就越慢。

另外,这次,AWS没有使用像以前那样 Outage 的故障名称,用的是 “Increased Error Rate” 这样的东西。我估计是没有把所有这两个服务删除完,估计有些用户是可以用的,有的用户是则不行了。

后续改进

在这篇故障简报中,AWS 也提到了下面的这些改进措施——

1) 改进运维操作工具。对于此次故障的运维工具,有下面改进:

  • 让删除服务这个操作变慢一些(陈皓注:这样错了也可以有时间反悔,相对于一个大规模的分布式系统,这招还是很不错的,至少在系统报警时有也可以挽救)
  • 加上一个最小资源数限制的SafeGuard(陈皓注:就是说,任何服务在运行时都应该有一个最小资源数,分布式集群控制系统会强行维护服务正常运行的最小的一个资源数)
  • 举一反三,Review所有和其它的运维工具,保证他们也相关的检查。

2) 改进恢复过程。对于恢复时间过长的问题,有如下改进:

  • 分解现有厚重的重要服务成更小的单元(在 AWS,Service是大服务,小服务被称之为 Cell),AWS 会把这几个重要的服务重构成 Cell服务。(陈皓注:这应该就是所谓的“微服务”了吧)。这样,服务粒度变小,重启也会快一些,而且还可以减少故障面(原文:blast radius – 爆炸半径)
  • 今年内完成对 Index 索引服务的分区计划

 

相关思考

下面是我对这一故障的相关思考——

0) 太喜欢像Gitlab和AWS这样的故障公开了,那怕是一个自己人为的低级错误。不掩盖,不文过饰非,透明且诚恳。Cool!

1)这次事件,还好没有丢失这么重要的数据,不然的话,将是灾难性的。

2)另外,面对在 US-EASE-1 这个老牌 Region 上的海量的对象,而且能在几个小时内恢复,很不容易了。

3)这个事件,再次映证了我在《 关于高可用的系统》中提到的观点: 一个系统的高可用的因素很多,不仅仅只是系统架构,更重要的是——高可用运维

4) 对于高可用的运维,平时的故障演习是很重要的。AWS 平时应该没有相应的故障演习,所以导致要么长其不出故障,一出就出个大的让你措手不及。这点,Facebook就好一些,他们每个季度扔个骰子,随机关掉一个IDC一天。Netflex 也有相关的 Chaos Monkey,我以前在的路透每年也会做一次大规模的故障演练——灾难演习。

5)AWS对于后续的改进可以看出他的技术范儿。可以看到其改进方案是用技术让自己的系统更为的高可用。然后,对比国内的公司对于这样的故障,基本上会是下面这样的画风:

a)加上更多更为严格的变更和审批流程,

b)使用限制更多的权限系统和审批系统

c)使用更多的人来干活(一个人干事,另一个人在旁边看)

d)使用更为厚重的测试和发布过程

e)惩罚故障人,用价值观教育工程师。

这还是我老生长谈的那句话—— 如果你是一个技术公司,你就会更多的相信技术而不是管理。相信技术会用技术来解决问题,相信管理,那就只会有制度、流程和价值观来解决问题

你是要建一个 “高可用的技术系统” ,还是一个 “高用的管理系统”? ;-)

(全文完)

 


关注CoolShell微信公众账号可以在手机端搜索文章

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

——=== 访问 酷壳404页面 寻找遗失儿童。 ===——

相关 [aws s3 顾和] 推荐:

AWS 的 S3 故障回顾和思考

- - 酷 壳 – CoolShell
继 Gitlab的误删除数据事件没几天,“不沉航母” AWS S3 (Simple Storage Service)几天前也“沉”了4个小时,墙外的半个互联网也跟着挂了. 如约,按 AWS 惯例,AWS今天给出了一个简单的故障报告《 Summary of the Amazon S3 Service Disruption in the Northern Virginia (US-EAST-1) Region》.

AWS云平台系列介绍(一):AWS平台与EC2介绍

- - NOSQL Notes
Amazon平台的产品分为几个部分:. 计算类:包含弹性计算云(EC2)和弹性MapReduce(Elastic MapReduce)这两个产品. EC2几乎可以认为是迄今为止云计算领域最为成功的产品,通俗地将,就是提供虚拟机. EC2的创新在于允许用户根据需求动态改变虚拟机实例的类型及数量,技术上支持容错并在收费模式上支持按使用量付费,而不是预付费.

HTC以3亿美元收购S3 Graphics

- Hank - Solidot
智能手机制造商HTC以3亿美元从VIA和WTI手中收购了图形显示技术供应商S3 Graphics. S3 Graphics一度是硅谷的图形芯片巨头,90年代末没落,2001年被VIA收购,2005年由于资本不充足而引入了私人投资商WTI,以继续为研发和运营提供资金. VIA将从交易中获得1.47亿美元,WTI获得1.53亿美元.

Acer Aspire S3 超薄本送测 FCC

- 三十不归 - Engadget 中国版
Acer Aspire S3 已经送达 FCC ,正如大家上图所看到的那样,FCC 最近也喜欢拆解. 这让我们可以看到内部的各个部件,包括 WiFi 和 蓝牙天线,所有的组件被塞入仅 17mm 厚度的机身中,相当紧凑. 拆解图不能看出更多的信息,不过根据我们之前的动手玩,你可以选择 Core i3 ,i5 或者 i7 处理器,一个 13.3 英寸 (1366 x 768 ) 分辨率的屏幕,价格 €799 起跳,约 6970 元人民币.

首台 Ultrabook,Acer Aspire S3 評測

- Felix - T客邦
Acer Aspire S3 已經搶先上市,相信也有人已經入手. 身為 Acer 第一台 Ultrabook,該有的身材和重量都非常輕薄,同時內建 Intel Sandy Bridge Core i5 低電壓處理器,讓效能也有不錯的表現. 下面我們就來仔細看看 Aspire S3 還有什麼亮眼之處.

猜測 AWS ELB 內的架構…

- - Gea-Suan Lin's BLOG
AWS Elastic Load Balancing (ELB) 是 AWS 在雲端上推出的 Load balancer. 在非雲端的架構上會使用 Layer 4 Switch (像是 F5、 Alteon),或是使用 open source 的 HAProxy. 從實驗猜測 ELB 是這樣做的:.

2016 AWS Re:Invent 大会上,AWS又发布了哪些让人惊艳的创新?

- - 知乎每日精选
由于工作的关系,最近一直跟亚马逊的若干平台打交道,对这个公司产生了极大的兴趣和关注,也刚刚看完了其老板的最新自传《The Everything Store | 万物商店》. 于是这次re:Invent大会自然不能错过,今天花两个半小时时间完整的看完了AWS的CEO Andy Jassy在re:Invent 2016上的Key Note (2016 AWS re:Invent Keynote Andy Jassy https://www.youtube.com/watch?v=8RrbUyw9uSg ).

宏基 Acer Aspire Ultrabook S3 超薄本动手玩(视频)

- CarlNERV - Engadget 中国版
经过前期的酝酿,我们终于在 IFA 上看到 Acer Aspire Ultrabook S3 真身. 这款超薄笔记本电脑以镁合金外观吸引眼球,13mm 的厚度,号称 7 小时的续航时间,1.5 秒即可从睡眠中唤醒,2 秒即可连上无线网络,同时在性能上不妥协,可选 Core i3,i5 和 i7 处理器.

台灣首台 Ultrabook 上市,Acer Aspire S3 正式發表

- Felix - T客邦
相信有不少人都已經在等待 Ultrabook 的來到,Acer 搶在大家前面,先行發表 Aspire S3 上市消息,成為了最早可以買到的 Ultrabook. 台灣也在今天正式發表,一次發表兩個規格,都是搭載 Core i5 處理器,分別為 SSD 版和 HDD 版本,預計在九月底上市. Acer Aspire S3 為 13.3吋超輕薄筆電,最薄的地方只有1.3公分,重量不到1.4公斤.

超級比一比:Zenbook vs Aspire S3 vs MBA

- Adam - Engadget 中文版
目前已經發表的三台 Ultrabook,不論在硬體配備還是外觀(ahem),都頗接近. 為了協助讀者們做一個簡單的比較,這裡我們將 Acer、Apple 和 Asus 的 Ultrabook 的主要規格和售價列出來,給大家做個參考比較. 當然,要特別注意的是 Apple 的價格相對來說比較硬,Acer 和 Asus 則比較有機會隨著時間逐步下調售價喔.