昨天,一家名为“前沿数控技术”的互联网创业公司爆料,自7月20日起其存储在腾讯云服务器上的网站、H5、小程序产品及平台数据全部无法访问。
最初,腾讯并没有回避问题,并表示积极协助解决问题。给出的答复是:腾讯云北京三区部分云硬盘IO异常,导致云主机无法访问,正在紧急恢复中。
然而过了14天,数据仍然没能找回来,腾讯也给出了最终的答复。恢复称物理硬盘固件版本Bug导致的静默错误(写入数据和读取出来的不一致)影响,文件系统元数据损坏。为此,腾讯提出了“赔偿+补偿”总金额为136,469元的解决方案。
这份公告说明意味着用户近千万元级的平台数据全部丢失,包括经过长期推广导流积累起来的精准注册用户以及内容数据。这些损失几乎瞬间将这家创业公司摧毁。
那么何为“静默错误”?什么样的故障能导致如此灾难性的后果?针对此问题笔者采访了下北京数盾信息科技有限公司的存储业务产品经理唐彦永。
神秘的“静默错误”数盾科技的唐彦永告诉记者,其实“静默错误”很好理解,就是我原本存的是“12345”,结果读的时候变成了“67890”或其他奇奇怪怪的东西。即写入数据和读取出来的不一致,对于存储来说这是致命的问题。
出现静默错误主要有三种可能性,通俗来说就是“没写进去”,“写串行了”和“写错了没查出来”。
第一种,Write Lose - “没写进去”。这种情况是说硬盘本应该在某个区域(扇区)存储我想写入的内容,但是实际上没有写上去,该区域仍然是老的数据。当我需要读我新写的数据时,实际上读到的却是个老数据。
第二种,Mis-Redirect Write – “写串行了”。试想一台打印机,本来想在第2行打印“世界真美好”,结果因为故障,打印到了第12行。当我拿到打印出的文章,想在第2行的位置找那句话当然是找不到。更严重的是,我原本第12行写的文字也会因为打印机故障被覆盖成“世界真美好”。对于硬盘来说也是如此,原本需要写入A区域的数据因为故障写到了别的地方,此后再从A区域读取到的数据肯定是不正确的。
第三种,Parity Error – “写错了没查出来”。硬盘都有校验功能,在写入数据前会计算一个校验码,在读出数据时再用校验码进行验证。但是如果主机端给出的数据原本就是错误的,硬盘即使校验正确,也不能保证数据的正确性。虽然各个厂商也都在想办法实现从数据生成、数据写入到数据读取的全程跟踪校验,但目前想做到100%的错误检出仍然很有难度。
对于这次事件,网友们也有不同的看法。
认为腾讯云宣称的99.99%数据可靠性是虚假宣传
也有认为用户应该自己做好备份
对此,数盾科技的唐彦永也给出了自己的看法。
备份!备份!!备份!!! 云存储如今已成为最“流行”的方式,但是数据上云就真的安全么?数盾科技唐彦永表示,不管腾讯云宣传的99.99%的可靠性是否真实,但那万分之一的可能性降落在用户头上就是100%的灾难。对于在云端建站或者开展云端业务的企业,都应该在公司本地保存冷备份。
目前冷备份的方式有很多,比如数盾科技的Shudun Hippo系列分布式存储服务器,就提供对象存储、SAN、NAS多种接口。在本案例中,中小企业可通过对象存储接口定期将数据备份至公司内部的存储服务器,避免数据丢失的情况再次发生。
总之,对于关键业务数据,尤其是上云的数据,一定要在本地做好备份,做到“手中有数 心中不慌”。