华为云计算学习:FusionStorage-DHT算法

FusionStorage-DHT算法

DHT(distributed hash table)分布式hash算法,华为指的是数据路由算法

  • VBS提供SCSI\ISICI服务,DHT算法需要解决的问题是VBS接收到数据后怎么进行有效快速的分布式存储到OSD中

SCSI协议

预备知识,简单理解VBS怎么通过SCSI协议确定到具体的磁盘
在这里插入图片描述

  • HOST_ID,通过主板总线接口识别并加载驱动所识别的SCSI控制器
  • CHANNEL_ID,每个channel拥有一条scsi总线
  • TARGENT_ID,具体的设备,比如U盘,硬盘
  • LUN_ID,硬件具体使用还会再分成多个逻辑磁盘LUN
  • LAB_ID,LUN设备的具体哪个位置

VBS会把SCSI信息转换为VBS能识别的信息,最终的LABID就是OSD了

做法一:

  • HASH的值:LUNID+LABID(VBS中叫tree_id/branch_id)
  • HASH值的范围:0-2 ^32-1次方
  • 通过HASH值的范围和OSD通过映射平均对应
    在这里插入图片描述
  • 存在问题:每次检索需要2^32次方,CPU寻址时间过长

做法二:

  • 通过缩减检索范围,进行合并组(FS中叫Partition),减少条目
  • Partition跟osd_id对应关系用的是mod运算
  • Partition范围3600个组,过大影响检索,过小会影响OSD数量
  • 关系是N:1,Partition可以对应多个同样的OSD
    在这里插入图片描述
  • 存在问题:当增加或者减少OSD数据会被重新分配,因为OSD进行的是规律分配对应组

做法三:

  • OSD需要变成无规律分配对应,需要使用映射表做无规律的对应记录
  • Partition-osd_id形成映射表

总结

LUNID+LABID进行HASH得到HASH值
HASH值进行mod运算得到Partition
Partition–>OSD映射关系

问题:

关于存储池最大容量是多少?
一套fs仅有一个控制集群(MDC,ZK辅助),可以有多个存储池,存储池由多个OSD组成

  • 存储池:DHT环 ------- 1:1
  • DHT环是基于数学的建模,理解上就是一个环(没有真实这样的环存在),作用就是Partition–>OSD映射关系

在这里插入图片描述

  • hash值:扇区空间 ----- 1:1 (一个hash对应一块硬盘最小扇区大小)
  • 扇区空间-----512bytes
  • DHT环:hash------ 1:2^32

存储最大空间=2^32 *512bytes=2TB,所以一个卷也就最大为2TB

问题解决:

  • 增大扇区空间大小,FusionStorage认为合理值为1M,存储空间就扩大了1024*8倍
  • 扇区空间过大导致磁盘空间的浪费及数据分配不均衡,过小导致IO降低

做法:

要2个地方进行修改切片1M?

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值