阿里云香港可用区C发生史诗级故障
12月18日,阿里云香港可用区C发生大规模服务中断事件,12月25日阿里云发布了事件复盘说明,我们一起来看看这个史诗级的故障是咋回事。
由于内容很多,我在这里进行部分摘要,只描述过程和问题,就不完整复制了。
事件过程
12月18日
- 08:56,阿里云监控到香港可用区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,香港可用区C部分ECS服务器开始出现停机,触发同可用区内宕机迁移。随着温度继续升高,受影响的服务器停机数量持续增加,客户业务开始受到影响,影响面扩大到香港可用区C的EBS、OSS、RDS等更多云服务。
因大量可用区C的客户在香港其他可用区新购ECS实例,从12月18日14:49开始,ECS管控服务触发限流,可用性最低跌至20%。
12月18日10:37,阿里云香港可用区C的部分存储服务OSS开始受到停机影响,此时客户暂不会感知,但持续高温会导致磁盘坏道,影响数据安全,工程师对服务器进行停机操作,从11:07至18:26中断了服务。
问题分析
冷机系统故障恢复时间过长
机房冷却系统缺水进气形成气阻,影响水路循环导致4台主冷机服务异常,启动4台备冷机时因主备共用的水路循环系统气阻导致启动失败。水盘补水后,因机房冷却系统的群控逻辑,无法单台独立启动冷机,手工修改冷机配置,将冷机从群控调整为独立运行后,陆续启动冷机,影响了冷却系统的恢复时长。整个过程中,原因定位耗时3小时34分钟,补水排气耗时2小时57分钟,解锁群控逻辑启动4台冷机耗时3小时32分钟。
现场处置不及时导致触发消防喷淋
随着机房冷却系统失效,包间温度逐渐升高,导致一机房包间温度达到临界值触发消防系统喷淋,电源柜和多列机柜进水,部分机器硬件损坏,增加了后续恢复难度和时长。
客户在香港地域新购ECS等管控操作失败
ECS管控系统为B、C可用区双机房容灾,C可用区故障后由B可用区对外提供服务,由于大量可用区C的客户在香港其他可用区新购实例,同时可用区C的ECS实例拉起恢复动作引入的流量,导致可用区 B 管控服务资源不足。新扩容的ECS管控系统启动时依赖的中间件服务部署在可用区C机房,导致较长时间内无法扩容。ECS管控依赖的自定义镜像数据服务,依赖可用区C的单AZ冗余版本的OSS服务,导致客户新购实例后出现启动失败的现象。
商业用途请联系作者获得授权。
版权声明:本文为博主「任霏」原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
相关推荐
猜你还喜欢这些内容,不妨试试阅读一下评论与留言
以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。微信订阅号
扫码关注「任霏博客」微信订阅号- 你写得非常清晰明了,让我很容易理解你的观点。
- 感谢分享!拿走了~
- 您是说 UCClient 类接收来自Discuz的UCenter的消息吧,请求是来自 Discuz 的 UCenter吗?code 为 null 说明请求URL地址中没有 code 参数 (?code=xxx) ,确定是 UCenter 发起的请求吗?
- String code = request.getParameter("code"); code一直是null 这是为什么啊
- 你好,我想问一下如果是分析型的数据库要怎么制作docker镜像呢 是修改V008R003C002B0320版本号吗
- 可以的,我也正在开发分享的程序,可以邮件或群联系我都可以,关于页面里有联系方式:https://www.renfei.net/page/about 。
- 有破解软件的需要可以私下联系您吗?
- 您好,手机APP只是个客户端,用于数据呈现展示,数据均保存在服务器上,只留个APP没有任何用处,无能为力哦。
- 老哥 看你弄了这么多软件好厉害啊。 我有个软件 我买过几个小会员 没用几天 然后商家跑路了,软件服务器关闭了,连不上去 用不了。 你能做成一个打补丁版本可以本地用的么? 方便看下么?https://haodezhe.lanzouw.com/iD0f30h9joza 谢谢老哥!
- 您好,由于版权投诉和我国知识产权法的完善,我已经下架所有破解软件的下载链接了。
- 生花妙笔信手来 – 基于 Amazon SageMaker 使用 Grounded-SAM 加速电商广告素材生成 [1]
- github.renfei.net 不再完整代理 Github 页面改为代理指定文件
- 优雅的源代码管理(三):本地优雅的使用 Git Rebase 变基
- 优雅的源代码管理(二):Git 的工作原理
- 优雅的源代码管理(一):版本控制系统 VCS(Version Control System)与软件配置管理 SCM(Software Configuration Management)
- ChatGPT 开发商 OpenAI 买下极品域名 AI.com
- 火爆的 AI 人工智能 ChatGPT 国内注册教程、使用方式和收费标准
- 解决 SpringCloud 中 bootstrap.yml 不识别 @activatedProperties@ 参数
- Cron表达式书写教程搞定Linux、Spring、Quartz的定时任务
- 阿里云香港可用区C发生史诗级故障