此前,UniSuper 基金的50多万会员自5月2日起,一连九天无法访问该基金的在线服务,最终 UniSuper 通过其他云服务厂商的备份重建在线服务。
故障发生后,谷歌云发言人曾向媒体表示:“UniSuper 服务中断是由于谷歌云的一系列罕见问题造成的,这些问题导致 UniSuper 在配置私有云时出现无意的错误配置,进而引发了一个之前未知的软件漏洞,影响了 UniSuper 的辅助系统。”
与此同时,事故发生在 UniSuper 做出“将交付和信息业务部门的职位外包”决定的第二周,因而故障披露初期,不少外国网友一度认为是外包的锅。
UniSuper 使用谷歌云的时间并不长。去年9月,UniSuper 将大部分业务(包括约1900个虚拟机在内的所有非生产工作负载)从澳大利亚数据中心迁移到谷歌云。
崩溃多日,只因为一个留空参数
在这份名为《分享最近影响我们客户之一的事件详情(Sharing details on a recent incident impacting one of our customers)》的官方报告,谷歌云对 UniSuper 删库故障进行详细解释:
在使用内部工具为客户首次部署 Google Cloud VMware Engine (GCVE) 私有云时,Google 操作员无意中错误配置了 GCVE 服务,原因是将一个参数留空。这导致了意想不到的、未知的后果,即默认客户的 GCVE 私有云为固定期限,并在该期限结束时自动删除。事件触发器和下游系统行为均已得到纠正,以确保不会再次发生这种情况。
除此客户的 GCVE 私有云外,此事件未影响任何 Google Cloud 服务。其他客户未受此事件影响。
谷歌自动删除客户信息却没有通知?
谷歌云表示,此次事件仅发生在 UniSuper 在两个区域运营的一个 Google Cloud VMware Engine (GCVE) 私有云中,同时,UniSuper 拥有多个私有云。
由于特定的配置要求,设置由谷歌云工程师自己使用不再使用的内部工具执行。
尽管谷歌云表示“遵循内部控制协议”,但工程师“在使用内部工具配置客户私有云时,有一个输入参数留空”。
“由于该参数为空白,系统为该参数分配了一个当时未知的默认固定一年期限值……系统指定的一年期限结束后,客户的 GCVE 私有云被删除了。”
为什么毫无通知就删除了客户的私有云环境?
谷歌云在官方公告中进一步解释道,UniSuper 没有收到删除警告,因为他们并未要求这样做。“没有发送客户通知,因为删除是由于谷歌运营商使用内部工具时参数留空而触发的,而不是由于客户的删除请求。”
“任何由客户发起的删除操作都会先通知客户。”
之所以能够恢复和重建已删除的环境,是因为 UniSuper 拥有“强大而有弹性的架构方法来管理停机或故障风险”,包括使用“第三方备份软件”。
“客户的首席信息官和技术团队值得称赞,他们与 Google Cloud 团队密切合作,以速度和精度执行了全天候恢复。”
谷歌云表示,它为 UniSuper 制作的额外备份也可以访问。同样的事件已不再可能发生,部分原因是客户现在可以自己进行更复杂的配置——如果环境被删除,就会触发警告。
此外,谷歌还“手动审查了所有 GCVE 私有云,以确保其他 GCVE 部署不会面临相同情况的风险”。
谷歌云的故障补救措施包括:
弃用了触发此事件序列的内部工具。现在,此过程已完全自动化,并由客户通过用户界面进行控制,即使需要特定的容量管理也是如此。
清理了系统数据库并手动检查了所有 GCVE 私有云,以确保其他 GCVE 部署不受风险。
修正了针对此类部署工作流程设置删除 GCVE 私有云的系统行为。
世界上最具弹性和最稳定的云基础架构
在官方公告的末尾,谷歌云还对此次故障进行了总结:
在此之前,Google Cloud 内部从未发生过此类事件。这不是系统性问题。
Google Cloud 服务拥有强大的保护措施,并根据需要结合了软删除、提前通知和人工介入等措施。
我们已确认这些保障措施仍然有效。
与客户密切合作对于快速恢复至关重要。客户的 CIO 和技术团队值得称赞,他们与 Google Cloud 团队密切合作,以快速和精确的方式执行了全天候恢复。
具有故障保护功能的弹性而强大的风险管理对于在发生意外事件时快速恢复至关重要。
Google Cloud 继续拥有世界上最具弹性和最稳定的云基础架构。尽管发生了这次一次性事件,但我们的正常运行时间和弹性经过独立验证,在领先的云中名列前茅。
云存储和备份,真的安全吗?
针对此次删库故障,网友也纷纷发表了自己的看法:
Reddit 用户 Ron0z:
我一直不明白为什么这么多机构都使用云存储。毫无疑问(原因)是成本问题,但数据存储成本却在逐年降低。在我看来,将数据发送给外部机构会使数据变得非常脆弱。将数据保存在内部并确保其安全。如果发生任何事情,你有自己的员工来处理问题。
你不知道谁在查看数据、复制数据或出售数据。而作为企业,你也不知道与你签约存储数据的公司最终是否会被卖给其他肆无忌惮的公司。
Reddit 用户 baezizbae:
如果你没有测试过你的备份,那么实际上你没有备份。
(匿名网友回复)的确,不仅要检查它们是否有效,还要真正检查它们是否能正常工作。我曾经遇到过一种非常罕见的情况,数据库备份似乎是有效的,它确实恢复了所有内容,而且一点问题都没有。但是有一个表,如果我查询一个特定记录,就会出现非常讨厌的错误,说数据无效。而在原始数据库中进行同样的查询却正确无误,我一直没弄明白是哪里出了问题,也许是宇宙辐射吧……
参考资料
https://www.itnews.com.au/news/unisupers-google-cloud-deletion-traced-to-blank-parameter-in-setup-608286
https://www.reddit.com/r/devops/comments/1co8qbi/google_cloud_accidentally_deletes_unisupers/
https://www.reddit.com/r/AusFinance/comments/1cibo5t/unisuper_down_for_3_days/
如果字段的最大可能长度超过255字节,那么长度值可能…
只能说作者太用心了,优秀
感谢详解
一般干个7-8年(即30岁左右),能做到年入40w-50w;有…
230721