浅谈分布式存储之数据校验 原创

鹏云网络
发布于 2023-8-30 11:06
浏览
0收藏

在信息技术不断进步的今天,电子产品已然成为人们生活的一部分,人们每时每刻产生大量的数据,持续的数据增长必然对存储系统有着紧要需求。

而如何将海量数据准确无误的运输到存储系统?这就显现了存储系统数据校验的重要性。存储系统是怎样进行数据校验并具有哪些优势?小编给您来一一细说。

存储系统的校验机制是将用户产生的数据进行固化或者网络传输时,对原数据计算校验码并一同传输或固化,在再次使用这部分数据的时候,重新计算校验码并与之前的进行对比以验证数据一致性。

当网络传输受到网络环境的影响很可能产生数据错误,只有对每次网络通信进行校验才能保障数据在网络上不会丢失或出错。

浅谈分布式存储之数据校验-鸿蒙开发者社区

而对于数据固化,我们知道,硬盘是相对可靠的存储介质,不论是机械硬盘还是固态硬盘,在日常的使用中,我们几乎都没有碰到过写进去的数据和读出来不一致的情况,那么为什么存储系统需要这样的校验机制呢?

其实一个简单的硬盘并没有那么可靠。在计算机的世界里,数据不过是0和1的集合,硬盘中存储的也只是一大堆的0和1,以机械硬盘为例,硬盘盘片上的数据在没有主动读写的情况下,由于磁场等因素的干扰发生0和1的翻转是非常常见的事情。

而在一个存储集群中,硬盘往往以很高的密度堆叠在一起,彼此的磁场干扰更是大大增加了异常出现的可能性。

为了避免这种情况的发生,硬盘本身都配有自己的校验系统,硬盘的每个扇区(大小为512或者4096字节)都会有自己的校验码,并会在读取的时候重新计算并对比,如果只是少量的位翻转,甚至能够反向计算出正确的数据。

硬盘本身的校验机制基本上能够将出错的概率降低到一个很低的程度以满足日常的需求, 但是对于一个存储系统来说,就远远不够了。

存储系统有大量的硬盘组成,硬盘由于有了本身的校验机制,出错的概率变得很低,但是当基数大大增加后,这个概率也随之大大增加。

除此之外,分布式存储系统的一大特性是能够应对各种异常情况,比如常见的掉电,举个例子,如果我们正在写一个1MB块的数据,写了一半的时候突然掉电了。重启之后硬盘的校验并不能发现这个1MB的数据错误,因为每一个扇区里的数据都是正确的,但是这个1MB的数据却是缺失的。这时候就只能依赖硬盘之外的校验机制来解决。

校验机制的存在能大大降低数据丢失的风险,但也势必会增加IO路径上的延时以及CPU的占用,总体上对性能的影响就依赖于各存储产品的架构以及实现了。

众所周知,始终以技术创新为主的鹏云存储系统,在所有涉及到持久化或者网络传输的地方都启用了校验机制,对性能的影响也已经降到了几乎难以察觉的程度。

并且在数据读取的过程中,如果主副本发现了某个数据块存在校验错误,会自动地从其他副本将正确的数据同步过来返回给用户,再将错误的数据覆盖掉。用户只能从告警系统中发现这一次异常,而业务不会受到任何影响。

而如果某块硬盘出现错误的几率非常高的话,鹏云存储也会自动尝试将这块硬盘隔离,在空间足够、业务允许并保证安全的情况下,异常硬盘上的数据将被迁移到其他地方。管理员能在告警系统中发现这个异常的盘,可以对它做人为的检查或者维修替换,不延误业务系统的正常运行。

实际上不止是校验出错的盘,鹏云的自动隔离系统还涉及到坏盘的隔离,异常节点的隔离,网络亚健康检测,甚至是慢盘的检测等等。这些内容将在之后的更新中详细阐述,大家敬请期待。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
已于2023-8-30 11:06:48修改
收藏
回复
举报
回复
    相关推荐