弹性存储关键技术介绍
本文分享自天翼云开发者社区《弹性存储关键技术介绍》,作者:1****m
关键技术:
(1)一致性 HASH 算法,保证数据分片尽量均衡在不同的故障域上,提升存储数据的安全可靠性。
以数据唯一标识符、当前存储集群的拓扑结构以及数据备份策略作为一致性 HASH 算法的输入,可以随时随地通过计算获取数据所在的底层存储设备并直接通信获取或者写入数据,从而避免查表操作,实现去中心化和高度并发,将数据均衡的存储到各个存储节点,实现数据存储的负载均衡去中心化以及哈希的数据随机分布,使得弹性存储底座在理论上具备无限的可扩展性一致性 HASH 算法支持数据的多种备份策略,支持可配置副本数,支持存储节点故障域定义与划分,从而使整个系统具备了高可靠性和高可用性。
(2)增加盘级缓存,提升引擎读写性能。为每个存储节点配置两块 SSD 盘作为读写的 cache,极大提升读写性能。
写 IO 操作时,会先写入 SSD cache 后即返回写操作,在后台将 IO 排序重整后,刷入硬盘。读 IO 时,采用分层机制,优先查找内存 cache,其次为 SSD cache,采用热点读机制,统计热点访问因子,当达到阈值时,系统会自动缓存数据到 SSD 中,同时长时间未被访问的数据移出 SSD。同时大块 Pass Throught 机制,缓存更多小 IO,提升小 IO 命中率,提升 SSD 卡使用寿命。另外,自动均衡读写 cache 比例,让 SSD cache 最大程度发挥作用。
(3)三副本/纠删码技术,保证数据多副本高可靠性。
三副本模式,默认将数据分为大小固定的数据块,每一个数据块被复制为三个副本,通过一致性 HASH 算法将这些副本保证在不同服务器的不同物理磁盘上,保证单个硬件设备的故障不会影响业务。
纠删码模式,将数据分割成片段(数据分片),并计算冗余分片,将数据分片和冗余分片,通过一致性 HASH 算法存储在不同的位置,比如磁盘、存储节点或者其他可用分区。
(4)数据一致性保证及自动重建技术,及时修复数据副本,进一步提升故障场景下的存储数据的安全可靠。
当应用写入数据时,存储系统会同步对 3 个副本执行写入数据的操作,并且只有当多个副本的数据都写入完成时,才会向应用返回数据写入成功的响应。
当应用读数据失败时,存储系统会判断错误类型。如果是物理磁盘扇区读取错误,则存储系统会自动从其他节点保存的副本中读取数据,然后在物理磁盘扇区错误的节点上重新写入数据,从而保证数据副本总数不减少以及副本数据一致性。
当存储系统检测到硬件(服务器或者物理磁盘)发生故障时,会自动启动数据修复。由于数据块的副本或分片分散存储在不同的节点上,数据修复时,将会在不同的节点上同时启动数据重建,每个节点上只需重建一小部分数据,多个节点并行工作,有效避免了单个节点重建大量数据所产生的性能瓶颈,将对上层业务的影响做到最小化。
评论