云磁盘故障的技术解读 鹏云网络ZettaStor有答案

腾讯云磁盘故障导致“前沿数控”数据丢失一事,有关各方进行了一系列解读,但大多没有摆脱借题炒作之嫌,真正地技术解读倒是被弃之一旁,这也是一种悲哀!

在国内环境条件下,对于故障进行技术解读是一个很困难的事情,主要障碍在于事件的信息披露,牵涉到追责的问题,当事方常常不能如实透露事件真相,从而让技术解读成为了无源之水。

为腾讯云点赞!

与国内大多数故障事件不同,腾讯云对于云磁盘故障信息披露,实事求是的态度值得点赞!

试想如果腾讯云坚持以“部分云硬盘IO异常”为由进行搪塞,那么真相就不会公之于众,更谈不上什么技术分析。就像人会生病一样,IT系统会发生故障,其实是最正常不过的事情,没有什么好隐瞒的!

在8月8日声明中,腾讯云故障进行了还原。

首先是云存储系统扩容要进行数据迁移,在数据迁移过程中,为了追求速度,人为/运维违章操作,没有进行数据校验,原有数据过早删除。恰逢磁盘静默错误,导致数据无法恢复!

这里提到了磁盘静默错误,简单说就是数据处理过程都是正常的,但是使用时才会发现数据错误,造成静默数据错误,磁盘本身的原因主要是固件错误以及硬盘介质本身的原因(如噪声、电磁等)。

横向扩展和数据迁移

此次故障原因清楚了,但也衍生、延展出来更多技术话题。

首先,数据迁移是由存储系统扩容引起的。对于云存储来说,不是横向扩展Scale out吗?扩容就是了,为什么要进行数据迁移呢?

这是一个非常有意思的话题。

为此,我也请教了软件定义存储的专业厂商,得到鹏云网络、华云网际等厂商专家的支持!在技术方面,他们是很有实力的厂商。以鹏云网络为例,创始人陈靓曾长期担任美国亚马逊AWS 核心构架师,带领团队进行 S3 云存储系统深度优化,并主持 Glacier 存储系统的设计和研发。

专家提示说,软件定义存储或者称云存储有不同的技术实现方式,有Paxos /Raft 、Zookeeper、DHT(Distributed Hash Table)等不同元数据管理方法。

其中,DHT是根据一致性哈希的方式计算出来,其好处是极大降低了元数据服务存储压力和访问压力。但弱点在于对于容量规模要有很好的预计,如果涉及添加节点,移除节点,添加磁盘,移除磁盘的情况,由于哈希环会发生变化,一部分数据需要重新分布,会在集群中产生不必要的数据迁移,而且数据量往往非常大。

这也是为什么,有推测认为腾讯云存储采用了DHT方式来构建,当然推测未经过证实。

实际上,即使不采用DHT。云存储单一资源池的规模也是有上限的,也就是说,集群内节点数量是由最佳实践的。以VSAN为例,有64个节点数量的限制;Ceph(DHT)是256,超过出这个限,节点之间网络通信的复杂度,以及效率都难以得到保障。

对于腾讯云存储来说,对外提供公有云服务,同时支持多个用户,数据规模和增长速度达到上限,这是可以想象的事情。因此,数据迁移在所难免!这一点,鹏云网络、华云网际的专家都是肯定的。

数据迁移的话题

专家指出:数据迁移不是灾难,磁盘静默错误也不是大问题,甚至违章操作关闭检验也不是致命的问题!

那么数据是怎么丢的呢?

实际上,磁盘静默错误是非常小概率的事件,是个别磁盘问题。要知道云存储数据有多副本保护,完全可以应对小概率事件导致的错误。

试想一下,如果是对云存储系统进行完整的数据迁移,即使关闭了校验,仍然有三副本(或者两副本)数据存储,应该可以应对磁盘静默错误。

那么,副本为什么没有发挥作用呢?

据专家推测,其数据迁移的过程并没有进行完整的数据迁移;估计就是迁移了主数据样本,并制作了三副本保护,迁移过程违章关闭了检验。如果主数据有误,其制作的副本数据也是错误的。加上,原有数据删除过早,造成了难以挽回的错误。

所以数据迁移、静默错误、关闭校验都不是问题的元凶!一系列问题叠加才是数据丢失的根本原因。

试想,腾讯云支持租户众多,为什么只有“前沿数控”中招了呢?只能说这是一个小概率事件!

“对于云存储或称软件定义存储,高性能和高可扩展度是必须考虑的因素,以鹏云ZettaStor DBS为例,可从几台服务器起步,扩展至上百万台服务器规模 , 且保持稳定和高性能。从底层进行磁盘性能优化,实现了同样数量磁盘3倍以上的性能表现。”专家说。

全流程数据校验更是需要着重考虑问题。分布式缓存一致、全流程数据校验、磁盘修复等全方位技术手段,也是鹏云ZettaStor DBS的显著特征。

快照和备份的话题

当事件发生之后,数据保护肯定是一个绕不开的话题。

很可悲的是,很多云租户会认为:备份、快照是云存储天生具备的属性,这样的想法就太天真了。

一来不是所有的应用都需要保护的;二来如果作为默认的属性,那么由此导致的价格提升,这是用户愿意承受的吗?

有人指出:作为一家1000万元业务规模的公司,“前沿数据”不知都对数据进行保护,数据处于近乎“裸奔”的状态,这样的经营意识也是没谁了!咎由自取!

类似的事情很多,很多时候,也不是水平和意识的问题,还是跟钱有关系。

数据保护是要花钱的!而且应对的是小概率事件!

铤而走险,有时候也是无奈之举。

那么,腾讯云不是提供了免费的快照服务吗?

既然,如此当事者就应该责怪自己,为什么不在快照的选项上打个√呢?即使打了√,用户也应该知道并不是万事大吉的。

快照有它的作用和限制。

首先,没有办法无限制的打快照,因为会影响性能;二来,快照只是记录了磁盘数据变化的一种状态,数据恢复需要依赖磁盘原始的数据;单纯依赖快照是没有办法恢复数据的。

有关数据备份,所针对的包括硬件故障,其这一点的作用和副本是相同;不同之处在于,数据备份还可以针对逻辑故障,在这种情况下,错误不是硬件造成的,而是人员操作失误造成的,如输入错误,删错数据等。借助快照、日志等数据备份,可以对错误进行修正。

一句话,不同的应用需要不同的数据保护。从双活数据中心,到CDP、备份,等级不同,效果和作用也不同,当然其费用支出也不同。因此,铤而走险也是可以的,需要的前提是:你的运气足够好!

小结

亡羊补牢,从中汲取教训是当务之急!

但是更加重要的,还是应该是对于技术的掌握和了解!相同的是:它们都叫软件定义存储或者云存储,不同的是,他们的技术方案不尽相同。以校验为例,鹏云网络的方案设计、华云网际、VASN、Ceph的方案设计各不相同。

对于这些不同设计方案的选型,其实没有捷径的方法可以选择!惟有不断地了解技术,并根据应用的实际情况加以选择,别无他法!