ZOL论坛 > 技术论坛 > 服务器综合讨论论坛 > 超融合集群数据分布原理
帖子很冷清,卤煮很失落!求安慰
返回列表
签到
手机签到经验翻倍!
快来扫一扫!

超融合集群数据分布原理

401浏览 / 3回复

Winhong520

Winhong520

0
精华
29
帖子

等  级:Lv.3
经  验:878
  • Z金豆: 254

    千万礼品等你来兑哦~快点击这里兑换吧~

  • 城  市:广东
  • 注  册:2018-01-23
  • 登  录:2018-09-21
发表于 2018-03-13 14:31:37
电梯直达 确定
楼主

    超融合是通过软件定义基础架构整合计算、存储、网络和虚拟化资源。超融合基础架构的目标是提供更为简易的方式,它通过软件定义存储和服务器虚拟化的整合,以替代传统SAN存储的方式来建设数据中心。超融合更注重基于低成本的X86服务器来达到数据的管理和控制。在超融合中,集群数据分布起了较关键的作用。


超融合集群数据分布概念

  • Ojbect —— object即“对象”,是文件切片后生产的逻辑对象,object的最大size通常限定为2MB4MB,以便实现底层存储的组织管理。

  • PGPlacement Group)—— 顾名思义,PG的用途是对object的存储进行组织和位置映射。具体而言,一个PG负责组织若干个object(可以为数千个甚至更多),但一个object只能被映射到一个PG中,即,PGobject之间是“一对多”映射关系。同时,一个PG会被映射到nOSD上,而每个OSD上都会承载大量的PG,即,PGOSD之间是“多对多”映射关系。在实践当中,n至少为2,如果用于生产环境,则至少为3。一个OSD上的PG则可达到数百个。

  • OSD —— 即Object Storage Device,主要功能包括:存储数据,副本数据处理,数据恢复,数据回补,平衡数据分布,并将数据相关的一些儿监控信息提供给至少2 OSD,才能有效保存两份数据。


软件定义存储

云宏超融合是整合了自主研发的服务器虚拟化平台CNware和自主研发的高性能分布式文件系统WinStore

      软件定义存储(WinStore)基于开源的Ceph并做了深度的优化和功能开发。云宏在2015年超融合元年推出了Winhong HCI v1.0WinStore以模块化的方式运行在WinServer中而不是运行在虚拟机上,WinStore可以将多台物理机上面的本地SSDHDD组成一个虚拟的存储池,利用多台x86服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。


数据分布算法-CRUSH算法

CRUSH算法是WinStore的基石,是一种可扩展的伪随机数据分布算法,用于控制数据的分布,能够高效稳定的将数据分布在普通的结构化集群中。

CRUSH算法有以下特征:

  • 去中心化架构,无元数据服务器,读写性能不会因为集群的扩大而降低;

  • 在相同的环境下,相似的输入得到的结果之间没有相关性,相同的输入得到的结果是确定的;

  • 确保数据尽可能的平均分布在集群的各个节点的所有硬盘上;

  • 在增删节点导致存储目标数量出现变化时,能够最小化集群间的数据迁移量;


数据分布过程

WinServerWinStore融合部署,WinServer虚拟机的虚拟磁盘直接使用WinStore提供的rbd块设备。在虚拟机上一个文件的写入过程中,首先会将文件分片,分成多个object,每一个object都可能会写入到不同的HDDOSD)上,均衡分散到整个集群中。


超融合集群数据分布原理

  • WinStore首先将文件分片(2M),分成多个object,产生object id;

  • 根据虚拟磁盘所属的存储池Poolobject id,通过哈希算法和取模,得出所属的PGPlacement Group)的IDPG Pool 被创建后就会根据 CRUSH 算法计算出来的 PG 应该所在若干的 OSD 上被创建出来了。也就是说,在客户端写入对象的时候,PG 已经被创建好了,PG OSD 的映射关系已经是确定了的;

  • 然后将PG的值传给CRUSH算法,由CRUSH算法得出对应的主从OSD

  • 数据写入到与主从OSD所对应的SSD后,即给上层的业务系统返回写入成功的信息;

  • 最后WinStore会根据一定的规则,将SSD中的数据刷写到持久化存储HDD磁盘中。

      由此可见,系统指定的一个静态哈希函数计算object id的哈希值,将object id映射成为一个近似均匀分布的伪随机值。然后,将这个伪随机值和mask按位相与,得到最终的PG序号(pgid)。根据系统的设计,给定PG的总数为mm应该为2的整数幂),则mask的值为m-1。因此,哈希值计算和按位与操作的整体结果事实上是从所有mPG中近似均匀地随机选择一个。基于这一机制,当有大量object和大量PG时,RADOS能够保证objectPG之间的近似均匀映射。又因为object是由file切分而来,大部分objectsize相同,因而,这一映射最终保证了,各个PG中存储的object的总数据量近似均匀。

其中PG映射到OSD中使用CRUSH算法,而不是其他哈希算法,原因之一正是CRUSH具有可配置特性,可以根据管理员的配置参数决定OSD的物理位置映射策略;另一方面是因为CRUSH具有特殊的“稳定性”,也即,当系统中加入新的OSD,导致系统规模增大时,大部分PGOSD之间的映射关系不会发生改变,只有少部分PG的映射关系会发生变化并引发数据迁移。

这种可配置性和稳定性都不是普通哈希算法所能提供的。因此,CRUSH算法的设计也是WinStore的核心内容之一。



超融合集群数据分布原理









weixin_19504...

weixin_1950412e


精华

帖子

等  级:Lv.1
经  验:179
发表于 2018-03-13 15:26:54 1楼
回帖奖励 +1Z金豆
学习学习,谢谢分享~

能宇科技

能宇科技


精华

帖子

等  级:Lv.1
经  验:122
发表于 2018-04-23 10:53:31 2楼
回帖奖励 +1Z金豆
好多文字~~贴份vmware的上来再发一贴

wslifoyi85

wslifoyi85


精华

帖子

等  级:Lv.1
经  验:100
发表于 2018-04-26 13:27:31 3楼

谢谢楼主!

高级模式
论坛精选大家都在看24小时热帖7天热帖大家都在问最新回答

针对ZOL论坛您有任何使用问题和建议 您可以 联系论坛管理员查看帮助  或  给我提意见

快捷回复 APP下载 返回列表