当系统“谎报军情”,数据端到端校验为您支招!
2018年8月5日,某公司在微博上发表长文表示,其在某云上的“近千万元级的平台数据,包括经过长期推广导流积累起来的精准注册用户以及内容数据”全部丢失。8月8日,某云方回应,称该故障缘起于因磁盘静默错误导致的单副本数据错误,再加上数据迁移过程中的两次不规范操作,导致云盘的三副本安全机制失效,并最终导致客户数据完整性受损。
那“静默错误”究竟是什么,足以将一家创业公司击倒?
静默错误,何许人也?
一般而言,磁盘在使用过程中,往往会造成两类数据错误:一是可以正常告警的错误;二是无法预警的错误。可正常告警的常规故障,往往由硬件错误、固件BUG、软件BUG、供电问题和介质损坏等造成。而无法预警的错误,即静默错误(Silent Data Corruption),往往是指用户直到需要使用这些数据时,才会发现这些数据已经发生了错误和损坏,最终造成无可挽回的损失。
简而言之,静默错误就是用户在使用数据时,发现读取出来的数据与当时写入的不一致,即数据损坏。打个比方,小明在银行里存入1万元。一段时间后,银行系统出现静默错误,此时系统并不会预警,直接导致小明去银行查询才会发现自己的账户上没有余额了!
在系统中,静默错误实际发生的频次并不是很低。比如,NetApp在针对超过150万台硬盘驱动器进行的41个月的观察中,发现了超过400,000个静默数据损坏。其中,硬件RAID控制器未检测到的超过30,000个。
伴随着大数据时代的到来,硬盘基数的指数级增长会导致静默错误越来越多地发生。在公有云场景下如此,私有云场景下亦是如此。常规的副本、备份和容灾等方法,都无法处理静默错误。
数据完整性保证的利器——端到端校验
数据存储最重要的要求之一,就是保证用户读取的数据和之前存入的数据一致。就像小明存入1万元,就需要保证小明之后取出来的仍然是1万元。如果出现错误,那么数据存储就不可靠。那么如何做到这种保证呢? 这就不得不提到数据完整性保证的利器——端到端校验。
为防止因静默错误而返回给用户错误数据,某公司企业级云提供aSAN数据端到端校验功能,通过Checksum引擎、Verify引擎和Checksum管理模块,选用具有业界领先水平的校验和(Checksum)算法,配合校验和存储性能优化关键技术,在用户数据一进入系统开始就生成一个校验和,作为该数据的“指纹”,并进行存储。之后就会一直用该校验和来对数据进行校验,保障用户远离静默故障。
以小明在银行存款为例,在存入1万元后,系统会针对小明的用户数据生成一个“指纹”。待之后小明查询账户余额的时候,会对这个“指纹”进行校验,以确保用户的数据没有发生不可预警的变化,从而保障小明的资产。
某公司企业级云-aSAN数据端到端校验总流程架构图
关键技术1:业界领先水平的校验和算法
校验和算法有两个主要的评价标准:一是生成校验的速度;二是冲突率和均匀性。冲突率是指两个数据不一样,但生成的校验和相同的概率。
某公司企业级云aSAN数据端到端校验方案使用XXhash64算法,相比目前业界普遍使用的CRC-32和Adler-32算法,具有速度更快、冲突率更低的特点。在i7-4770K和i5-3340M CPU环境中,针对XXhash64在不同负载情况下进行实测,速度均大于12.5GB/s,最高可达13.8GB/s,达到业界领先水平。
以上文中的场景为例,小明在银行存款时,银行系统针对小明的用户数据生成“指纹”的方法,更可靠、计算速度更快了。
关键技术2:校验和存储性能优化
校验和在内存中生成,并可以跟随数据一起传输、存储。当数据存储到磁盘、SSD等非易丢性存储中,校验和也需要进行存储。这样会带来额外的写开销,影响系统性能。
某公司企业级云基于无元数据中心架构,在aSAN端到端校验方案中,通过使用异步回刷、关键I/O路径Bypass、I/O竞争隔离等多项手段,优化校验和存储带来的性能问题。此外,通过自校验、冲突检测、时序检测来保证正确性和一致性。
数据稳定,某公司企业级云有效保护!
在大数据时代,数据是企业的核心资产。某公司企业级云基于业界领先的aSAN数据端到端校验能力,可以有效地帮助用户规避因静默错误而导致的核心数据资产丢失问题。若检验到静默错误的发生,可配合某公司企业级云的数据恢复功能进行数据重建,在全闪存部署集群环境下,重建速度可达每TB/30min。
此外,某公司超融合企业级云还提供了可靠性中心和容灾解决方案,支持CDP异地容灾,可以从容应对故障情况。
用户还可以使用某公司超融合企业级云构建双活数据中心,通过部署延伸集群和仲裁节点,灵活配置虚拟机的调度策略,实现业务双活和数据双活。某公司企业级云还具有亚健康告警和坏道修复功能,为用户提供稳定可靠的企业云环境,多手段多机制有效保障用户的数据资产。
总结
面对磁盘数据损坏不可预警的静默错误,用户通常会面临核心业务数据丢失,并且只有在需要使用数据时才会感知到数据受损。这种情况下,数据已经出错了系统却不知道,依然谎报军情!面对如此隐秘的bug,如何避免自己成为下一个“某公司”?选用稳定可靠、具备数据端到端校验功能的云计算基础设施,才能够有效保障数据资产,规避因静默错误带来的损失。