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

事件回顾:

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




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

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

640?wx_fmt=jpeg

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

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

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

640?wx_fmt=jpeg

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

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

再谈谈赔偿的事情

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

640?wx_fmt=jpeghttps://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 盖国强关于静默错误的技术分析


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Navicat for mysql备份与恢复

文章目录 一、Navicat for mysql备份1.打开navicat,找到备份2.点击新建备份,直接点备份3.备份完成 二、恢复数据1.删除表2.点击备份,选中备份文件,点击还原备份3.还原完成 三、其他命令四、视频演示总结 一、Navicat for mysql备份…

java mysql order by,java-使用LIMIT和MySQL进行ORDER BY

我在使用MySQL查询时遇到问题,在该查询中我得到了一个带有LIMIT 1的行.但是,将其与order一起使用时,它不起作用.在mysql工作台中运行的查询如下:select * from train twhere t.togId 1125and t.tilDato > 2013-12-20order by t.fraDato LIMIT 1;但是,当我通过ja…

一文详解微服务架构的数据设计

微服务是一个软件架构模式,对微服务的讨论大多集中在容器或其他技术是否能很好的实施微服务这些方面。本文将从以下几个角度来和大家分享在微服务架构下进行数据设计需要关注的地方,旨在帮助大家在构建微服务架构时,提供一个数据方面的视角:什…

java 不支持fork,grails不能运行fork模式解决方法

升级到grails 2.3.2之后,运行时报如下的异常:Exception in thread "main"Error |Forked Grails VM exited with errorjava.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at ../../../src/share/…

干货 | 数据分析的 7 个关键步骤是什么?

“数据科学家” 这个名号总让人联想到一个孤独的天才独自工作,将深奥的公式应用于大量的数据,从而探索出有用的见解。但这仅仅是数据分析过程中的一步。数据分析本身不是目标,目标是使企业能够做出更好的决策。数据科学家构建出的产品&#x…

java中挂起和恢复,应用程序“未能及时恢复”并挂起

事件标识符:6C33511B-7C9A-474C-B888-84A4FAFF6F91 CrashReporter密钥:93bbba4f690eb1b7638fa7a09a3ff3aa4e6872f4硬件型号:iPad2,1过程:Designer [5279]路径:/ var / mobile / Applications / 7AA5BF4A-007D-47F8-B1C…

Python 爬取了马蜂窝的出行数据,告诉你这个夏天哪里最值得去!

文章由数据森麟出品作者徐麟正值火辣的暑假,朋友圈已经被大家的旅行足迹刷屏了,真的十分惊叹于那些把全国所有省基本走遍的朋友们。与此同时,也就萌生了写篇旅行相关的内容,本次数据来源于一个对于爬虫十分友好的旅行攻略类网站&a…

谢华亮 php,谢华亮: PHP4和PHP5性能测试和对比

PHP 4到今年年底PHP Group将不再对其进行支持了,所以为了让大家更有信心的转移到PHP 5平台上,我特别做了这个测试,看看我们PHP 4.x 是否真的性能比我们的PHP 5.x要好,测试结果很明显,那就是PHP 5.x 比php 4.x不论是面向…

oracle rman 检查坏块,Oracle中使用RMAN来检验坏块

RMAN即recovery manager可以通过在执行的备份任务中,仅仅验证数据文件中的数据块而不生成实际的备份,这样做的目的是纯粹为了了解数据文件中是否有坏块。RMAN在这个环境中:验证数据文件是否存在数据文件位于正确的存放位置在RMAN尝试检验这些…

如何让笨重的系统架构变灵巧?

图片来源:Unsplash作者丨徐贤军来源丨徐贤军 架构师技术联盟如需转载,请联系原作者授权随着业务的复杂性增大、系统吞吐量增长,所有功能统一部署难度加大,各个功能模块相互影响使系统变的笨重且脆弱,因此需要对业务进行…

php ios 判断字符串长度,iOStextfield 限制输入字符长度和过滤表情符号

//增加修改框-(void)creatSaveView{UILabel * lab [[UILabel alloc]init];if (self.searchType 1) {lab.frame CGRectMake(14, 8 * KWIDTH 64, IPHONE_WIDTH - 100, 16 *KWIDTH);}else{lab.frame CGRectMake(14, 8 * KWIDTH, IPHONE_WIDTH - 100, 16 * KWIDTH);}lab.text …

约稿——码字能赢得百万人生?不开玩笑

2018是写作的风口。你不信?你不能写?我们来看看人们是如何写作的——其实人人都能写。绝望中靠写作赢回人生,并且财务自由2015年,夏知凉遭遇生意破产和朋友背叛,负债几十万的他,电脑都被拿去抵债&#xff0…

透过日播放量超过6亿的《延禧攻略》,看2018视频网站格局

作者介绍徐麟目前就职于上海唯品会产品技术中心,哥大统计数据狗,从事数据挖掘&分析工作,喜欢用R&Python玩一些不一样的数据文章来源数据森麟如需转载,请联系原作者授权前言随着《延禧攻略》的播出,魏璎珞、富察…

oracle怎么以时间排序,oracle指定数据排序在前面怎么处理

最近工作碰到客户的特殊要求,需要将特定的数据排序在前面,然后才按时间顺序排序,这个之前还真没有碰到过,好在有万能的度娘,搜索了一下,发现可以实现,使用order by decode语句即可。对于order b…

无法解析的外部符号 protected: virtual struct wxEventTable const * __thiscal

刚开始学习VC,对它的东西都不懂,其中最使用DECLARE_EVENTSINK_MAP时出现了一个错误, Linking... LegendWin.obj : error LNK2001: unresolved external symbol "protected: virtual struct AFX_EVENTSINKMAP const * __thiscall CLegend…

如何优雅使用Docker?请收下这15个小技巧

图片来源:Unsplash作者介绍ElNinoT文章来源Java架构沉思录原文链接www.cnblogs.com/elnino/p/3899136.html如需转载,请联系原作者授权1获取最近运行容器的id 这是我们经常会用到的一个操作,按照官方示例,你可以这样做(…

supervisor监控php进程程序,详解Supervisor进程守护监控(转)

Supervisor的配置2.0 创建目录,初始化配置文件mkdir /usr/supervisorecho_supervisord_conf > /usr/supervisor/supervisord.conf12mkdir/usr/supervisorecho_supervisord_conf>/usr/supervisor/supervisord.confecho_supervisord_conf详解:echo_s…

H264/ACC数据使用librtmp推流到服务器

这是本人第一次发表这个,首先声明本人也是个菜鸟!都说使用librtmp很简单,但是在网上找了很久,还是被各种大神坑了。 其实我也还是有很多东西不懂,如果下面有什么问题的地方,还请各位大神指点纠正。 1.视频数…

从容器到微服务,技术架构、网络和生态详解

图片来源:Unsplash作者晗狄文章来源架构师技术联盟如需转载,请联系原作者授权谈起容器技术,不得不提Docker技术。Docker 是 PaaS 提供商 DotCloud 开源的一个高级容器引擎,源代码托管在 Github 上,基于Go语言并遵从Apa…

brew php imagemagick,关于node使用gm和imageMagic在mac的坑

之前在windows上使用gm和imageMagic还是很顺手的,换了mac开发程序,发现自己才是坑。。emmmm但是要使用gm对图片进行拼接操作,只能硬着头皮上了笔记如下:mac不能直接安装imageMagic,而gm执行是依赖imageMagic的&#xf…