对于广大云用户来说,再次提醒大家:一、对于公有云,建议放置非关键业务,企业内部的关键业务要搭建容器云平台,核心数据存放在存储和磁带库中。二、一定要做异地备份。备份可以是存储,也可以是磁带库;备份数据分应用数据和数据库数据。关键数据要永久增量保存, 这样才能防患未然。三、要建立容灾备份机制。数据备份,可以备份到其他云,按小时,天,周,月计算,所能容忍丢失的数据;数据备份也可以备份到本地,按月、季度、年进行容灾。
近日,腾讯云“数据丢失”事件在业界引起广泛关注。腾讯云通过微信公众号发出公告,解释了数据丢失原因,并提出了补偿措施。
大概内容是,北京清博数控科技有限公司所属“前沿数控”平台一块操作系统云盘,因受所在物理硬盘固件版本bug导致的静默错误(写入数据和读取出来的不一致)影响,文件系统元数据损坏。为此,腾讯云将提供132900元现金或云资源的额外补偿。但是,北京清博数控科技有限公司对结果并不满意,声称所丢失数据价值千万,提出了1101.6万元的补偿额。并质疑腾讯云的的可靠性是否达到了99.9999999%,搭载了云硬盘三副本存储策略,是否真实存在。
事件发生后,舆论界一方面抨击用户自己没做备份;另一方面对于云的安全性表示担忧,尤其是公有云,还不够靠谱。对于用户自己不做备份的说法,前沿数控表示自己很委屈。一家创业公司,原本就是为节约成本,才选择了云,我总不至于买了一个腾讯云,再买个阿里云来备份。但对于腾讯云来说,云本身就没有100%的可靠性,硬件损毁导致数据丢失,并不是腾讯独有,你支付了1000多块钱,我总不至于付给你上千万的赔偿,这是敲诈!
到现在为止,整个事件还没有结束。到底谁对谁错,赔偿多少,都不是重点。重点是,不管对于腾讯云,还是对于前沿数控来说,“数据丢失”都是一次惨痛教训。为了避免这类恶性事件再次发生,我们有必要从技术角度分析出问题出现的各种可能。
1、硬盘静默错误
数据静默错误分几类,包括parity error、 paritial write、 write lose和mis-redirect write等。大概是数据写入时,硬盘时发生错误,或者是写了一部分扇形区数据,而另一部分没写。或者没写完,中途断电了。再或者,目标扇区数据是老数据,导致读取数据时出现乱码。更离谱一点,写入目标扇区的数据,写错了地方,不但本次I/O对应的扇区没更新,而且还破坏了其他扇区。
但是,腾讯云丢数据不太像是硬盘的问题,用户的数据一点都没找回来,说明集群数据有大量丢失。除非是大量盘同时集体损坏,不然不可能发生这样严重的事件。但是,大量盘同时坏的概率,几乎等于零。所以笔者猜测,可能是软件bug导致大量数据被写坏。
2、EBS出现故障
一般情况下,如果EBS出现故障,应该以数据可靠性为主,先恢复数据再恢复服务,相对数据丢失,停机时长的损失的损失更可控,腾讯云可能是反其道而行了。
3、使用了虚拟机
从目前提供的信息来看,腾讯云好像使用了虚机,结果虚机挂了。但是,一般情况下,云产品对这种虚机都提供了快照功能,以防止意外发生。但是,这种快照一般需要手动开启。
4、云产品bug
别说是云计算,即使是物理机,也能通过raid的方式保证数据冗余,不可能导致数据完全丢失。云服务本身处于分布式存储中,云盘损坏,应该属于逻辑上损坏,无外乎云产品bug和人为误操作。而逻辑上的数据损坏,可以通过技术手段恢复,只不过技术不在中国。这种灾难性问题虽然偶发,但目前Open Stack版本还在不断迭代,各种模块处于合并变更、消除的过程,这中间很可能会给用户带来未知的安全风险。
5、人为的误操作
数据丢,除了元数据损坏,很可能是被哪个管理员一键删除了。元数据基本不会损坏,因为数据至少是3副本的。大概率是平台有误操作,或者设计缺陷,导致被删除。
当然,这些都是我们的猜测,腾讯云数据丢失到底是什么原因,ITPUB将持续关注。总之,数据安全无小事,备份一定是企业上云的必选项。