腾讯云事件的后思考:怀敬畏之心做存储
事件回顾:
8月5日,前沿数控技术新媒体通过官方通路发布文章“腾讯云给一家创业公司带来的灾难”,文章中表明“前沿数控在使用腾讯云服务器8个月后,放在云服务器上的数据全部丢失”。随即,腾讯云官方在8月6日和7日相继发布两则声明,声明主要内容为“前沿数控没有任何本地备份数据可以用来恢复业务”、“数据迁移过程的两次不规范操作导致副本功能失效”。此次事件在IT厂商圈和企业级用户圈引起了广泛的关注。
腾讯云给一家创业公司带来的灾难!前沿数控技术官方通告如下:
腾讯云给创业公司带来的灾难!(点击阅读全文)
腾讯云官方通告如下:
关于用户“前沿数控”数据完整性受损及腾讯云补偿措施的说明(截至本文发稿前已删除)
关于客户“前沿数控”数据完整性受损的技术复盘详情:
关于客户“前沿数控”数据完整性受损的技术复盘(点击阅读全文)
近两天腾讯云的数据丢失事件被炒得沸沸扬扬,今早在上班的路上,一个老客户电话急切地打了过来,“ 腾讯云的这个问题,分布式存储会不会出现?”
原本对于此类热点事件,我个人非常排斥去做过多回应,尽管每天都怀着敬畏之心谨做分布式存储产品,但也很难保证会不会在未来某一天出现问题,过多的回应也恐成为日后的打脸。但考虑到此次事件会影响用户对分布式存储产品的信任打折扣,我还是想从个人角度来分析下整个事件。
从腾讯云的官方回复来看,事件的关键问题是磁盘静默错误。什么是静默错误?简单来说,就是磁盘写入数据返回成功,或者当时写入是正确的,放置一段时间后,由于硬件错误、固件 BUG 或者软件 BUG、供电问题、介质损坏等等各种原因,数据被改变了。正常来讲,分布式存储内部都会在读取数据时或后台周期性地对数据和数据校验码进行校验,以保证数据的有效性,当发现静默错误时,分布式存储会将有效的副本复制过来,重新覆盖写入,保证数据的有效性。分布式存储读修复和周期性静默修复的原理如下图所示:
↓↓↓
所以,总体来说分布式存储都能够保证数据在静默错误下的数据安全。我个人认为腾讯云事件的主要问题是“人祸”, 总结起来大致有两点:
1. 腾讯云的存储运维 “艺高人胆大”
为什么这么说,腾讯云的运维人员,居然为了加快恢复迁移速度,就直接关闭了校验机制,要知道校验机制是静默数据恢复的关键步骤,只有对数据和校验码进行校正后,才能确定哪份副本是正确的,从而保证数据恢复的方向是正确的,而这么关键的参数调整,只因为加快速度就调整了, 显得如此随意。
这其中也暴露出如下问题:
第一,非紧急情况下,变更方案需要多重考量;
第二,运维的技术水平再高,对于调整存储的底层参数,也不能如此“艺高人胆大”。
作为面向大B企业的专业分布式存储提供商,我们对客户生产环境的变更都是非常谨慎的,特别是涉及到数据安全的变更操作,我们需要写变更方案,进行专家评审,重要操作甚至还需要模拟环境验证。
2. 作为基础架构提供商,腾讯云缺乏必要的数据安全措施
腾讯云认为除了公有云提供的三副本机制,客户应该自行备份,保证数据安全。
作为一个从事超过十年IT基础架构的专业人士,如果不是此次事件,我无法想象一家专业的公有云厂商除了存储的三副本机制外,没有任何额外的容灾或者备份机制。当出现问题后,虽然可以甩锅给“不懂本地备份”的客户,但换一个角度,一个非IT专业的小公司不可能配备容灾备份专家,客户选择将核心业务放在腾讯云上,就是相信腾讯云作为专业的云服务提供商能够帮助搞定一系列的复杂问题。
然而,腾讯云无论在技术手段或者是方案角度,都没有给到客户足够的支持,比如:没有指导虚拟磁盘的快照策略配置,这些配置在企业IT里面都是必须做的动作,而腾讯云居然默认“没有”,需要客户自行开启。对于2B项目的交付,这些都是必须培训和指导到位的。
企业级存储方案是一项系统工程,作为厂商,不仅仅是要考虑产品的质量,所有存储都不能做到100%的数据安全,更多的是需要在前期的方案合理性设计、运维能力建设上,降低出现问题的概率,同时提升在出现问题后的应急处理能力,这才是关键。
邱尚高 (杉岩数据CTO & 创始人),IT从业10年,曾任华为高级研发工程师、高级研发经理,2009年参与华为第一代云平台产品研发,2011年担任华为对象存储技术研究项目经理,主导新一代对象存储技术方向,2014年作为联合创始人创立杉岩数据。
↓↓ 点击"阅读原文" 【加入云技术社区】
相关阅读:
更多文章请关注