多副本技术详解

2022-6-7 296 6/7

什么是多副本

多副本技术是分布式存储系统中的一种数据安全冗余技术,数据在写入后会按需生成多份副本,并根据设置将数据主从副本存储在不同的硬盘、服务器、机柜、机房中,以此保证在硬盘损坏、服务器损坏、机柜损坏、机房故障情况下,数据的安全性以及业务的连续性。 

相比于RAID的优势

本身分配灵活,可按需支持2-6副本,相比RAID,数据副本策略可屏蔽由于硬盘损坏而造成的数据恢复缓慢、恢复过程中存储卷不可用、多块硬盘同时损坏的数据丢失风险。 

实现原理

分布式存储系统通过强一致性复制协议来保证数据多个副本的一致性,只有当数据的所有副本都写入成功后,才会返回前端数据写入完成。正常情况下系统保证每个副本上的数据都是完全一致的,从任意副本读到的数据都是相同的。如果系统中的某个硬盘出现短暂故障,系统会暂时不写这个硬盘上的数据,通过日志记录的方式,记录此硬盘上数据的变化,等硬盘恢复后通过日志信息恢复该硬盘上的数据,如果硬盘长时间或者永久故障,系统会将硬盘从存储系统中移除掉,并统计出此硬盘上所有数据的副本位置,将这些丢失数据恢复到其它服务器的硬盘中。

 数据切片

分布式存储系统副本机制按照4MB粒度对数据进行切片后存储,小于等于4MB文件不进行切片,直接将数据存储在存储服务器中,并按需生成副本,大于4MB文件按照4MB粒度进行切片后再存储并生成副本。

存储是先存储到主OSD中,主OSD再向其余OSD复制数据,当所有OSD(主从OSD)都写成功,主OSD收到全部响应后才对客户端返回写完成。 

数据切片过程是在内存中完成的,但并不是所有数据均写入到内存中才会进行切片,而是采用流式切片,即来4MB切4MB的方式进行存储,如若最后一个片段不足4MB但接收到了数据写完成的信息,这个不足4MB的数据也会被当作一个数据块写入到存储系统中,并按需生成相应的副本。

数据恢复

分布式存储系统中硬件设备状态由MON维护,当某个硬件设备失效时,MON会检测到此硬件设备状态,当某存储节点损坏,其上的主副本失效时,存储服务由从副本提供,同时开启数据恢复机制,恢复到其他节点OSD。

数据分布和负载均衡策略

分布式存储系统采用分布式写入算法将数据均匀的写到存储系统的各个节点和硬盘上,当存储系统中新增加或者减少一个硬盘/节点时,存储系统可自动检测到数据分布不均衡信息,并开启数据迁移机制,直至数据分布均衡后自动停止数据迁移。 

常见副本配置及利用率

1.2副本,空间利用率为50%,服务器最少3台(因为管理和MON最少3台)。

2.3副本,空间利用率为33%,服务器最少3台。

3.4副本,空间利用率为25%,服务器最少配置4台。

※:服务器最小数量如果不单独规划MON节点,则最小数量= 2n-1,n为副本数量。

与EC的区别

副本切片颗粒度小,数据也是完整的存放在一个OSD中,读取效率更高,更适合I/O交互频繁的结构化数据存储,如数据库、共享文件等。

- THE END -

Tenkms

12月01日00:12

最后修改:2023年12月1日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论