事件回顾:

创业公司“前沿数控”8月5日发文称,公司存放在腾讯云上的精准注册用户以及内容数据全部丢失,并且不能恢复,造成公司平台全部停运的状态。前沿数控表示,公司丢失的数据近千万元级,对此索赔1000余万元。腾讯云对此回应称,该事故是因受所在物理硬盘固件版本bug导致的静默错误(写入数据和读取出来的不一致)影响,文件系统元数据损坏,仅能赔偿13万余元现金或云资源的额外补偿。截至昨晚,双方未能就赔偿方案达成一致。


看了双方的申明,没看到太多的技术细节,前沿数控只是控诉厂商没有做到承诺,腾讯云只是简单说了下磁盘静默错误故障以及赔偿的分歧,希望后面双方能复盘一下详细过程,对业界也是有益的事情。我自己从已经透漏出的信息简单推测一下,如果有推测的不对的地方还请指正。

首先从腾讯云给出的信息看,数据是在『操作系统云盘』上。先看看腾讯云主机的创建界面:

用户需要定义系统盘以及数据盘。系统盘用来展开操作系统镜像以及存储系统临时文件和日志之类的。数据盘是挂载后用来存数据的。个人推断前沿数控应该是直接申请了一个大的系统盘,然后把数据都存在了上面,并没有使用独立的数据盘。这个推断通过前沿数控平台的处理流程也可以印证,因为如果数据存在了数据盘上,主机出了问题,首先的恢复方式应该是重新创建一个主机,然后把数据盘挂载过来,而不是一直等待修复主机系统。

但这里的『操作系统云盘』如何理解呢?系统进程依赖操作系统盘,对网络延迟比较敏感,一般不会远程加载,同时如果用户正确使用,系统盘上的数据也不太重要(临时文件,日志之类的),做同步多写复制也没必要。所以个人推断这里的操作系统云盘和数据云盘实际上是两种东西,操作系统云盘并没有做到数据云盘那样的多副本机制,或者副本机制不一样。个人认为这也是为什么腾讯云在声明中只字未提副本的原因,因为名字都叫云硬盘,现在说实现方式不一样,给用户说不清楚。

但同时,这里的『操作系统云盘』也不应该仅仅是本地盘。因为腾讯云对一些高 IO 的主机提供专门的本地盘,如下图所示。

如果仅仅是本地盘,非搞出来两个概念就比较奇怪了。本人不清楚腾讯云的实现方式,无法解答上面的疑问,更详细的说明得等腾讯云官方给出解释了。

所以整个事情的技术分析大致是这个样子的:该用户创建了一台主机,直接挂了一块大系统盘,把数据都写里面了。云主机物理磁盘损坏,系统无法启动,只能反复和云厂商沟通等待恢复。云厂商的系统盘没有副本或者副本机制不一样,最后数据恢复失败,就是现在这个结果了。

再谈谈赔偿的事情

双方对赔偿的数额分歧较大。下图是截取的腾讯云官方的 CBS SLA 协议:

https://cloud.tencent.com/document/product/301/9515

按照上面的协议,腾讯云顶多把云硬盘的总使用费退换给用户,在腾讯云看来,这次做出的赔偿已经是够『良心』的了。因为云厂商认为自己提供的服务类似于出租或者出售硬盘,你买(租)了个硬盘,然后拷了一些珍贵的数据进去,结果硬盘坏了,你找厂商赔偿,厂商也最多赔你个新的硬盘啊。

如果觉得云厂商的协议是霸王条款,不公平,那单从法理角度分析。很多人凭直觉认为是云厂商的故障导致了用户的数据丢失,就应该赔偿全部或者至少是大部分数据的价值。且不说数据的价值如何客观评估,即便是可以准确估值,法律也需要考虑社会经济成本,从而划分两方的责任比例:

1. 谁更明白数据的价值?对云厂商来说,不同用户,不同业务的数据之间没太大区别,能观测到的指标也仅仅是数据大小。用户自己更清楚自己的哪部分数据重要。

2. 谁保护数据的成本更低?云厂商因为无法评估数据的价值,所以也无法给某些数据以特殊的注意力。而用户清楚自己的数据的价值,只需付出很低的成本,比如定时做快照,就可以避免这种情况。

整体而言,掌握更多信息的,付出成本更低的角色应该承担更大的责任。所以云服务以及快递这样的服务行业,赔偿都是按照服务价格的倍数进行赔偿,云厂商一般承诺 100 倍的故障时间赔偿,快递一般是 2~5 倍的运费。但快递有个特例,就是可以『保价』,因为有了『保价』信息,快递公司可以对保价高的货物付出特殊注意力,同时保价费也相当于一种保险。云厂商其实也考虑过引入保险,但很多用户不愿意在服务器资源上做投入,厂商之间还在打价格战。快递的保价费用一般是千分之五,如果云服务也按这个比例,千万元价值的数据,保价费几万元,如果愿意花这份钱到备份机制上,或者请个技术顾问,也不至于现在这个结果。

至于腾讯云方面是否有涉及虚假宣传,这个需要腾讯云方面解释了。但即便是有惩罚性赔偿,也只是和服务价格的倍数相关,和数据本身的价值没关系。

通过这个事情给所有的云用户一些建议:

1. 系统尽量是无状态的,数据和系统要分开。多装了几次电脑的人都能明白把系统和数据弄不同的盘上。对云上的虚拟机,最好能做到像 Docker 那样,系统可以随时还原而不影响应用。

2. 尽量不要自己管理机器,能用云厂商提供的数据库的,就别自己安装数据库。能用对象存储这种 PaaS 服务的,就别用主机硬盘。

3. 涉及公司生死攸关的数据,本地或者跨云备份。创业公司数据不多,实际上成本也不高。

同时也给云厂商一个建议:

出了故障,进行公开的技术复盘不丢人,也是消灭误解的最好方式。这方面可以多向国外同行学习。

本人是个云计算的前从业者,但和腾讯云没有任何关系,不存在『洗地』的动机,只是从技术角度进行分析,希望总结出一些教训,给业界借鉴。

相关链接:


  1. 腾讯云给一家创业公司带来的灾难(前沿数控) https://weibo.com/ttarticle/p/show?id=2309404269756587862904

  2. 腾讯云的声明 https://weibo.com/5174457807/GtlI3ngjc

  3. 静默错误:为什么看了那么多灾难,还是过不好备份这一关? https://mp.weixin.qq.com/s/ra8TP9kfsPPbY8A3Ayopjg 盖国强关于静默错误的技术分析

免责声明:文章为转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将删除内容或协商版权问题。

关于腾讯云丢数据事件的一些看法相关推荐

  1. 数据恢复工程师视角看腾讯云静默损坏事件

    腾讯云在这次事件中的结论表述为因受所在物理硬盘固件版本Bug导致的静默错误,文件系统元数据损坏: 根据这个表述,故障应出现在硬盘固件故障导致的文件系统元数据损坏.这其中,涉及具备因果关系的三个知识点: ...

  2. 腾讯云linux数据盘格式化,腾讯云服务器Centos挂载数据盘的方法

    腾讯云服务器Centos挂载数据盘的方法 发布时间:2020-08-24 08:24:30 来源:脚本之家 阅读:138 作者:逐风 栏目:服务器 第一.检查硬盘设备是否有数据盘 # 先执行 fdis ...

  3. 腾讯云仪征数据中心开服,辐射长三角产业数字化升级

    腾讯云仪征数据中心开服,辐射长三角产业数字化升级 12月15日,腾讯云仪征数据中心正式开服投产.该数据中心计划部署超过30万台服务器,是目前腾讯在华东地区最大的自建数据中心,也是腾讯在江苏建设容纳百万 ...

  4. 1核1g1m服务器部署web项目,腾讯云 – 香港数据中心1核1G1M云服务器的性能与速度测试...

    通过腾讯云白送的100元无门槛代金券,购买了一个月的香港数据中心1核1G1M云服务器的使用权,因为大鸟从来没有测评过腾讯的机子,所以这次是个好机会. 这篇文章就来测评下腾讯云香港节点的云服务器,额,至 ...

  5. 腾讯云通信WebIM事件回调的坑~

    最近在开过工作中用到了腾讯IM的功能,由于业务的需要主要使用到了: 1.loginInfo 用户登录,用户信息 2.getRecentContactList 获得最近联系人 3.getLastGrou ...

  6. 云端数智新引擎,腾讯云原生数据湖计算重磅发布

    引言 是否遇到过,一个简单的业务统计需求却让数据工程师们抓耳挠腮? 是否遇到过,业务峰值周期明显,要么资源大量闲置, 要么线上疯狂告警? 是否遇到过,大数据集群运维复杂,需要投入大量技术工程师? 针对 ...

  7. 腾讯云mysql数据库内网连接不上的问题

    我的腾讯云主机是广州三区,买的数据库是广州四区的,在同一个区可以使用内网连接,可是我通过数据库的内网ip连接却连接不上,下面记录一下的问题解决的过程 1.建立主机的私有网络 由于我之前的主机一直没有建 ...

  8. 腾讯云服务器数据盘买多了,腾讯云Windows云服务器数据盘分区和格式化

    Windows2008_64位系统手动格式化小于2TB数据盘操作指引 新购买的Windows云服务器,数据盘未做分区和格式化,无法使用. 请根据以下步骤手动对数据盘进行分区以及格式化.暂不支持对Win ...

  9. 腾讯云 AI 视觉产品基于流计算 Oceanus(Flink)的计费数据去重尝试

    | 导语: 介绍下最近使用 Flink 来对计费数据进行去重的具体做法 一. 背景 AI 视觉产品在我们腾讯云-人工智能的产品目录下,包括人脸识别.人脸特效.人脸核身.图像识别.文字识别等. 流计算 ...

最新文章

  1. Tab Bar Animation
  2. 分享Kali Linux 2016.2第47周镜像
  3. 成功解决 \tensorflow\…\datasets\mnist.py:290: DataSet.__init__ (from tensorflow.contrib.learn.python.lea
  4. mysql in 索引_mysql-IN子句不使用索引
  5. 【正在直播】:CSDN直播间专属福利!1399买Airpods Pro
  6. 匿名对象与非匿名对象的区别
  7. 那些让人惊叹的命令执行效果
  8. 磁盘被写保护解除方法
  9. 嵌入式软件设计(1)--概述
  10. Wireshark的下载安装及简单使用教程
  11. C-11 Problem H: 开宝箱2
  12. 手绘机器学习全流程,教你如何实现模型训练
  13. C#中{0}表示什么意思?
  14. 内插滤波器 matlab,多相分解实现内插滤波器.ppt
  15. 【嵌入式基础】用C语言编程、寄存器实现LED流水灯程序;stm32CubeMX+Keil使用HAL库点亮流水灯
  16. 安装activemq或者tomcat等启动时报错
  17. phpstudy_pro启动mysql后循环停止又重启
  18. Maven——maven中的 pom和import的作用到底是什么
  19. Object的wait()和notify()以及notifyAll()和interrupt()方法
  20. Python xlrd和xlwt操作Excel实现自动化

热门文章

  1. php表单 提交数据,PHP表单提交数据
  2. linux中nslookup命令功能,nslookup
  3. 虚数填补了数学的哪一个缺口?
  4. 扩大博士研究生招生规模!
  5. 数学如何杀死了雷曼兄弟
  6. 网站的服务器分哪几种,服务器有哪几种分类?_服务器可分为四种类型
  7. 《论可计算数及其在判定上的应用》简单理解
  8. java核心技术-jvm基础知识
  9. python机器学习常用包下载安装以及使用案例汇总
  10. java中正则表达式