12 月 18 日,阿里云香港 Region 可用区 C 发生了大规模服务中断事件。这是阿里云运营十多年来持续时间最长的一次大规模故障。


针对该故障,阿里云官方于12月25日发布了《关于阿里云香港 Region 可用区 C 服务中断事件的说明》,具体内容如下:

北京时间2022年12月18日,阿里云香港Region可用区C发生大规模服务中断事件。

以下为阿里云官方复盘,进一步说明了故障情况、问题分析和改进措施。

处理过程

12月18日08:56:阿里云监控到香港Region可用区C机房包间通道温控告警,阿里云工程师介入应急处理,通知机房服务商进行现场排查。

09:01:阿里云监控到该机房多个包间温升告警,此时工程师排查到冷机异常。

09:09:机房服务商按应急预案对异常冷机进行4+4主备切换以及重启,但操作失败,冷水机组无法恢复正常。

09:17:依照故障处理流程,启动制冷异常应急预案,进行辅助散热和应急通风。尝试对冷机控制系统逐个进行隔离和手工恢复操作,但发现无法稳定运行,联系冷机设备供应商到现场排查。此时,由于高温原因,部分服务器开始受到影响。

自10:30开始:为避免可能出现的高温消防问题,阿里云工程师陆续对整个机房计算、存储、网络、数据库、大数据集群进行降载处理。期间,继续多次对冷机设备进行操作,但均不能保持稳定运行。

12:30:冷机设备供应商到场,在多方工程师诊断下,对冷塔、冷却水管路及冷机冷凝器进行手工补水排气操作,但系统仍然无法保持稳定运行。阿里云工程师对部分高温包间启动服务器关机操作。

14:47:冷机设备供应商对设备问题排查遇到困难,其中一个包间因高温触发了强制消防喷淋。

15:20:经冷机设备商工程师现场手工调整配置,冷机群控解锁完成并独立运行,第1台冷机恢复正常,温度开始下降。工程师随后继续通过相同方法对其他冷机进行操作。

18:55:4台冷机恢复到正常制冷量。

19:02:分批启动服务器,并持续观察温升情况。

19:47:机房温度趋于稳定。同时,阿里云工程师开始进行服务启动恢复,并进行必要的数据完整性检查。

21:36:大部分机房包间服务器陆续启动并完成检查,机房温度稳定。其中一个包间因消防喷淋启动,未进行服务器上电。因为保持数据的完整性至关重要,工程师对这个包间的服务器进行了仔细的数据安全检查,这里花费了一些必要的时间。

22:50:数据检查以及风险评估完成,最后一个包间依据安全性逐步进行供电恢复和服务器启动。

服务影响

12月18日09:23,香港Region可用区C部分ECS服务器开始出现停机,触发同可用区内宕机迁移。随着温度继续升高,受影响的服务器停机数量持续增加,客户业务开始受到影响,影响面扩大到香港可用区C的EBS、OSS、RDS等更多云服务。

阿里云香港可用区C的故障,没有直接影响客户在香港其他可用区运行的业务,但影响了香港Region ECS管控服务(Control Plane)的正常使用。因大量可用区C的客户在香港其他可用区新购ECS实例,从12月18日14:49开始,ECS管控服务触发限流,可用性最低跌至20%。客户在使用RunInstances/CreateInstance API购买新ECS实例时,如果指定了自定义镜像,部分实例在购买成功之后会出现启动失败的现象,由于自定义镜像数据服务依赖可用区C的单AZ冗余版本的OSS服务,无法通过重试解决。此时,部分Dataworks、k8s用户控制台操作也受到了故障影响。API完全恢复可用为当日23:11。

12月18日10:37,阿里云香港可用区C的部分存储服务OSS开始受到停机影响,此时客户暂不会感知,但持续高温会导致磁盘坏道,影响数据安全,工程师对服务器进行停机操作,从11:07至18:26中断了服务。

阿里云在香港Region可用区C提供了2种类型的OSS服务,一种是OSS本地冗余LRS服务(通常叫单AZ冗余服务),仅部署在可用区C;另一种是OSS同城冗余ZRS服务(通常叫3AZ冗余服务),部署在可用区B、C和D。在此次故障中,OSS同城冗余ZRS服务基本没有受到影响。可用区C的OSS本地冗余服务中断时间较长,因不支持跨可用区切换,需要依赖故障机房的恢复。从18:26开始,存储服务器重新分批启动。其中,单AZ本地冗余LRS服务有部分服务器因消防问题需要做隔离处理。恢复服务前,我们必须要确保数据可靠性,花费了较多的时间进行完整性检验工作。直至12月19日00:30,这部分OSS服务(单AZ冗余服务)才恢复了对外服务能力。

阿里云网络少量单可用区产品(如:VPN、Privatelink以及少量GA实例)在此次故障中受到影响。

12月18日11:21,工程师启动网络产品可用区容灾逃逸,12:45完成SLB等大部分网络产品可用区容灾逃逸,13:47NAT产品完成收尾逃逸。除上述少量单可用区产品以外,各网络产品在故障期间保持了业务连续性,NAT有分钟级业务受损。

12月18日10:17开始,阿里云香港Region可用区C部分RDS实例出现不可用的报警。随着该可用区受故障影响的主机范围扩大,出现服务异常的实例数量随之增加,工程师启动数据库应急切换预案流程。截至12:30,RDS MySQL与Redis、MongoDB、DTS等跨可用区实例完成跨可用区切换。部分单可用区实例以及单可用区高可用实例,由于依赖单可用区的数据备份,仅少量实例实现有效迁移。少量支持跨可用区切换的RDS实例没有及时完成切换。经排查是由于这部分RDS实例依赖了部署在香港Region可用区C的代理服务,由于代理服务不可用,无法通过代理地址访问RDS实例。我们协助相关客户通过临时切换到使用RDS主实例的地址访问来进行恢复。随着机房制冷设备恢复,21:30左右绝大部分数据库实例恢复正常。对于受故障影响的单机版实例及主备均在香港Region可用区C的高可用版实例,我们提供了克隆实例、实例迁移等临时性恢复方案,但由于底层服务资源的限制,部分实例的迁移恢复过程遇到一些异常情况,需要花费较长的时间来处理解决。

我们注意到,同时在多个可用区运行业务的客户,在这次事件中依然可以维持业务运行。对于业务需要绝对高可用的客户,我们持续建议您采用全链路多可用区的业务架构设计,以应对各种可能的意外事件。

问题分析与改进措施

1、冷机系统故障恢复时间过长

原因分析:机房冷却系统缺水进气形成气阻,影响水路循环导致4台主冷机服务异常,启动4台备冷机时因主备共用的水路循环系统气阻导致启动失败。水盘补水后,因机房冷却系统的群控逻辑,无法单台独立启动冷机,手工修改冷机配置,将冷机从群控调整为独立运行后,陆续启动冷机,影响了冷却系统的恢复时长。整个过程中,原因定位耗时3小时34分钟,补水排气耗时2小时57分钟,解锁群控逻辑启动4台冷机耗时3小时32分钟。

改进措施:全面检查机房基础设施管控系统,在监控数据采集层面,扩大覆盖度,提升精细度,提高对故障的排查和定位速度;在设施管控逻辑层面,确保系统自动切换逻辑符合预期,同时保证手工切换的准确性,防止内部状态死锁从而影响故障的恢复。

2、现场处置不及时导致触发消防喷淋

原因分析:随着机房冷却系统失效,包间温度逐渐升高,导致一机房包间温度达到临界值触发消防系统喷淋,电源柜和多列机柜进水,部分机器硬件损坏,增加了后续恢复难度和时长。

改进措施:加强机房服务商管理,梳理机房温升预案及标准化执行动作,明确温升场景下的业务侧关机和机房强制关电的预案,力求更简单有效,并通过常态化演练强化执行。

3.客户在香港地域新购ECS等管控操作失败

原因分析:ECS管控系统为B、C可用区双机房容灾,C可用区故障后由B可用区对外提供服务,由于大量可用区C的客户在香港其他可用区新购实例,同时可用区C的ECS实例拉起恢复动作引入的流量,导致可用区 B 管控服务资源不足。新扩容的ECS管控系统启动时依赖的中间件服务部署在可用区C机房,导致较长时间内无法扩容。ECS管控依赖的自定义镜像数据服务,依赖可用区C的单AZ冗余版本的OSS服务,导致客户新购实例后出现启动失败的现象。

改进措施:全网巡检,整体优化多AZ产品高可用设计,避免出现依赖OSS单AZ和中间件单AZ的问题。加强阿里云管控平面的容灾演练,进一步提升云产品高可用容灾逃逸能力。

4、故障信息发布不够及时透明

原因分析:故障发生后阿里云启动对客钉群、公告等通知手段,由于现场冷机处理进展缓慢,有效信息不够。Status Page页面信息更新不及时引发客户困惑。

改进措施:提升故障影响和客户影响的快速评估和识别拉取能力。尽快上线新版的阿里云服务健康状态页面(Status Page),提高信息发布的速度,让客户可以更便捷地了解故障事件对各类产品服务的影响。

总结

最后,我们要向所有受到故障影响的客户公开致歉,并尽快处理赔偿事宜。此次香港Region可用区C服务中断事件,对很多客户的业务产生重大影响,也是阿里云运营十多年来持续时间最长的一次大规模故障。稳定性是云服务的生命线,对我们的客户至关重要。我们将尽一切努力从此次事件中吸取经验教训,持续提升云服务的稳定性,不辜负客户所托!

阿里云

2022年12月25日

------

我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。另外,如果你最近想跳槽的话,年前我花了2周时间收集了一波大厂面经,节后准备跳槽的可以点击这里领取!

推荐阅读

  • 性能优化的 10 种手段,你用过几个?

  • 责任链模式的高级用法:多级校验、工作流

  • 推荐一些小而美的互联网公司

··································

你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书创过业、国企4年互联网6年。从普通开发到架构师、再到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。

点击领取2022最新10000T学习资料

阿里云对运营10多年来持续最久的故障发布复盘说明相关推荐

  1. 短信也能玩出新花样?听阿里云产品运营畅聊“智能消息”服务

    为了帮助用户更好地了解和使用云通信的产品,秒懂云通信系列直播开课啦!第二期的首节课程中,阿里云产品运营胡超分享了<畅聊阿里云通信智能消息服务>议题,手把手教你玩转阿里云通信短信服务的创新业 ...

  2. 秒懂云通信:短信也能玩出新花样?听阿里云产品运营畅聊“智能消息”服务

    简介:为了帮助用户更好地了解和使用云通信的产品,秒懂云通信系列直播开课啦!第二期的首节课程中,阿里云产品运营胡超分享了<畅聊阿里云通信智能消息服务>议题,手把手教你玩转阿里云通信短信服务的 ...

  3. 排队五小时才能吃上一口的Popeyes,要借阿里云数据中台10年内开足1500家门店

    几个月前,还没多少国人了解美国炸鸡品牌Popeyes,但现在,Popeyes却成为上海滩最火爆的网红店:5月在上海市淮海中路开出首家门店当天,早上7点半,第一条队伍就已排出了半条街. 面对良好的开局, ...

  4. 解读阿里云成功运营生态体系的两个关键密码:开放与双向赋能

    早在2011年加入阿里云的时候,杨名就发现,生态已经成为阿里云核心的战略.2014年8月,阿里云推出"云合计划",旨在聚集合作伙伴.构建新的云生态体系,为企业.政府等提供一站式云服 ...

  5. 阿里云推PostgreSQL 10 高可用版

    2015年,阿里云宣布正式推出RDS for PostgreSQL服务,届时,阿里云成为国内首家同时支持MySQL.SQL Server 和PostgreSQL关系型数据库的云计算服务商. 用户在云上 ...

  6. 重磅发布!阿里云推PostgreSQL 10 高可用版

    2015年,阿里云宣布正式推出RDS for PostgreSQL服务,届时,阿里云成为国内首家同时支持MySQL.SQL Server 和PostgreSQL关系型数据库的云计算服务商. 用户在云上 ...

  7. 影片自由,丝滑流畅,Docker容器基于WebDav协议通过Alist挂载(百度网盘/阿里云盘)Python3.10接入

    使用过NAS(Network Attached Storage)的朋友都知道,它可以通过局域网将本地硬盘转换为局域网内的"网盘",简单理解就是搭建自己的"私有云" ...

  8. 阿里云栖大会首日:成立芯片公司“平头哥”,发布城市大脑2.0

    今天,一年一度的云计算峰会--云栖大会在杭州开幕.大会首日,阿里不仅发布了城市大脑2.0,更是宣布成立"平头哥半导体有限公司"开发AI芯片,引起众人关注. 在一年前的云栖大会上,阿 ...

  9. 阿里云EMAS超级App助力Agmo电动车超级应用程序发布

    近日,阿里云宣布与马来西亚本土数字方案专家Agmo控股(Agmo Holdings Berhad,简称Agmo)展开合作,签署谅解备忘录,联手推出马来西亚首个Agmo电动车超级应用程序.此次合作也标志 ...

最新文章

  1. 如何着手学习一个新的PHP框架
  2. flutter识别html标签,Flutter:获取HTML页面的某些元素
  3. 做一个基于python的树莓派MCU性能-温度监控仪表盘
  4. 比尔·盖茨推荐2020年度五本好书 你想读哪本?
  5. fetch 另一种ajax解决方案
  6. JAVA获取安卓系统下usb_Android 获取 usb 权限的两种方法
  7. Mac基础操作:在双显示器设置中将Dock保持在一个屏幕上以防止其移动的方法
  8. VSCode:vscode设置侧边资源管理器文字大小
  9. 【LaTeX应用】latex排版中插入参考文献
  10. Java ee 数据链路层重点协议 以太网
  11. WPF快速学习--一布局
  12. mysql数据库安装错误报错Falled不成功,感叹号
  13. 苹果手机显示服务器返回数据异常,iOS 请求数据 返回-9843 的错误
  14. C++基础(四)——模板
  15. unity3D期末作业-太空飞机射击游戏
  16. django mongo engine
  17. CAN/CANFD总线基础培训
  18. 机械键盘指南!告别码字疲劳!
  19. Win8系统flash无法播放视频怎么办?
  20. [BUUCTF-pwn] wdb_2020_1st_boom1

热门文章

  1. 利用python的matplotlib绘制分布图
  2. 游戏中常用的设计模式
  3. 拼多多校招编程题--大整数相乘(Java实现)
  4. 推荐系统 - 基于标签的推荐算法
  5. java汇编代码段,新手求助,跪求各位大神解答,怎么把这段汇编转成java代码
  6. Android 文字的收起与展开功能
  7. Cannot run program‘C:\Anaconda3\envs\...\python.exe’(in directory):CreateProcess error=2,系统找不到指定文件
  8. arduino设备跑 ros service server 的波折记
  9. 【flutter】按钮,添加圆角
  10. 基于《小米创业思考》,聊聊我们到底该如何读书?