云宏超融合集群数据分布原理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云宏超融合集群数据分布原理相关的知识,希望对你有一定的参考价值。
超融合通过软件定义基础架构,整合计算、存储、网络和虚拟化资源以替代传统SAN存储的方式来建设数据中心,更注重基于低成本的x86服务器来达到数据的管理和控制。
云宏超融合整合了自主研发的服务器虚拟化平台CNware?和高性能分布式存储系统WinStore。云宏分布式存储基于开源的Ceph做了深度的优化和功能开发。在2015年——超融合元年,云宏便推出了Winhong HCI v1.0,云宏分布式存储WinStore以模块化的方式运行在Hypervisor中而不是运行在虚拟机上,可以将多台物理机上面的本地SSD和HDD组成一个虚拟的存储池,利用多台x86服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和读写效率,还易于扩展,极为方便。
云宏超融合集群数据分布,数据多副本分布,基于全分布式架构,通过CRUSH算法确保数据能够尽可能地平均分布到各个节点上,数据的主副本会自动分布在不同的节点上。
要了解超融合集群数据分布,首先有几个重要概念:
Object(对象)——文件切片后生产的逻辑对象,其最大size通常限定为2MB或4MB,以便实现底层存储的组织管理。
PG(Placement Group,放置组)——对object的存储进行组织和位置映射。具体而言,一个PG负责组织若干个object(可以为数千个甚至更多),但一个object只能被映射到一个PG中,即 “一对多”映射关系。
OSD(Object StorageDevice,对象存储设备)——主要功能包括存储数据、副本数据处理、数据恢复,、数据回补、平衡数据分布,将数据相关的一些监控信息提供给至少2个OSD,才能有效保存两份数据。一个PG会被映射到n个OSD上,而每个OSD上都会承载大量的PG,即,PG和OSD之间是“多对多”映射关系。在实践当中,n至少为2,如果用于生产环境,则至少为3。一个OSD上的PG则可达到数百个。
超融合集群数据分布算法采用CRUSH算法。CRUSH算法是云宏分布式存储的基石,是一种可扩展的伪随机数据分布算法,用于控制数据的分布,能够高效稳定地将数据分布在普通的结构化集群中。
CRUSH算法特征
1.去中心化架构,无元数据服务器,读写性能不会因为集群的扩大而降低;
2.在相同的环境下,相似的输入得到的结果之间没有相关性,相同的输入得到的结果是确定的;
3.确保数据尽可能平均分布在集群的各个节点的所有硬盘上;
4.在增删节点导致存储目标数量出现变化时,能够最小化集群间的数据迁移量。
数据分布过程
明晰了概念和运用的算法,对数据分布过程的解析将更加直截了当。
在超融合集群数据分布中,虚拟化与分布式存储融合部署,WinServer虚拟机的虚拟磁盘直接使用WinStore分布式存储提供的rbd块设备。在虚拟机上一个文件的写入过程中,首先会将文件分片,分成多个object,每一个object都可能会写入到不同的HDD(OSD)上,均衡分散到整个集群中。
具体操作流程
1.WinStore首先将文件分片(2M),分成多个object,产生object id;
2.根据虚拟磁盘所属的存储池Pool和object id,通过哈希算法和取模,得出所属的PG的ID;PG 在Pool被创建后,就会根据CRUSH算法计算出来其应该所在的OSD位置,被创建出来。也就是说,在客户端写入对象的时候,PG就已经被创建好了,PG和OSD的映射关系也已经是确定了的;
3.将PG的值传给CRUSH算法,由CRUSH算法得出对应的主从OSD;
4.数据写入到与主从OSD所对应的SSD后,即给上层的业务系统返回写入成功的信息;
5.最后WinStore会根据一定的规则,将SSD中的数据刷写到持久化存储HDD磁盘中。
其中PG映射到OSD中使用CRUSH算法,而不是其他哈希算法,原因之一正是CRUSH具有可配置特性,可以根据管理员的配置参数决定OSD的物理位置映射策略;另一方面是因为CRUSH具有特殊的“稳定性”,当系统中加入新的OSD导致系统规模增大时,大部分PG与OSD之间的映射关系不会发生改变,只有少部分PG的映射关系会发生变化并引发数据迁移。这种可配置性和稳定性都不是普通哈希算法所能提供的。因此,CRUSH算法的设计也是WinStore的核心内容之一。
以上是关于云宏超融合集群数据分布原理的主要内容,如果未能解决你的问题,请参考以下文章
知名云计算厂商云宏加入龙蜥社区,共同打造信息安全坚实“地基”