Page 36 - 网络电信2018年5月刊下
P. 36
解 决 方 案
等。该种静态配置方式的缺点是:配置参数复杂、缺乏灵活 用于集群管理。
性、效果较差。系统繁忙时后端任务会阻塞I/O请求,系统空闲 ZTE-DBSS在线性地址空间内可以任意创建虚拟卷,虚拟卷
时后端任务无法充分利用系统的磁盘、网络带宽等资源。 切分成固定大小的数据片分布在不同的物理存储节点上。每个
以上参考文献提出的任务调度技术本质上是资源隔离, 数据片均有3份副本分别保存在不同的存储设备中,提供了高可
与云存储共享、弹性的理念相违背,存在资源利用率低下的问 用性。通过虚拟块设备驱动,将用户数据切分为小粒度数据分
题。 片,并通过路由算法确定当前主节点,发送到对应的服务端进
3、缓存替换技术 行处理。根据集群中主机状态、容量、负载等情况,进行路由
Lee等人[14]结合最少使用(least recently used,LRU) 算法的动态调整,从而满足可用性、扩展性、一致性要求。
和最不经常使用(least frequently used,LFU)页置换算法 本系统支持异构的存储设备,能够自动根据不同设备的负
提出了LRFU算法。当替换发生时,LRFU替换具有最小CRF的数据 载能力,按照一定的比例关系使用每台存储设备的存储资源,
块。CRF表示数据块会在不久的将来被访问到的概率大小。LRFU 实现负载均衡分布、提升设备的利用率。如图2所示,ZTE-DBSS
既可用作LRU,也可用作LFU,因此LRFU在时效型和频率型的数 分为两级寻址。
据访问模式下都能取得比较好的效果。
图2 ZTE-DBSS两级寻址
Jiang等人[15]提出LIRS算法,通过使用两次访问同一数据
块之间的距离动态地对访问数据块排序,从而进行数据块替换
算法。LIRS将每个存储层划分为两部分:LIR空间和HIR空间。
该算法能够保证在LIR空间里的所有数据块都比HIR空间里的数
据块具有更小的访问间隔。因此,HIR空间中的数据块将会被优
先考虑替换。
Megiddo等人[16]提出了ARC算法,将每个存储层划分为两
部分,分别存储只访问过一次的数据块和访问次数超过一次的
数据块。ARC可以根据具体的数据访问工作流自动调整这两部分
空间的大小来提升命中率。
顾荣[17]提出一种通用化分层存储系统缓存调度框架,将
参考文献[14-16]中的不同的数据访问模式和缓存策略以及上层
的大数据应用融合起来,并为用户提供一组覆盖多种不同数据
访问模式的高效缓存调度策略,从而加速上层大数据应用的数
据读写访问性能。
以上参考文献提出的缓存替换技术均是对LRU、LFU等经典
算法的局部改进或重新组合。
4、分布式块存储系统的优化设计方案
本文设计并实现了中兴分布式块存储系统ZTE-DBSS,其
采用无中心的分布式架构[18],如图1所示。其中,MDS主要用
•首次寻址:根据一致性散列计算本次读写请求归属的CG
于集群配置和元数据管理;ZK用于实现分布式数据的强一致更
(Chunk group),根据CG的路由定位请求应该发到那个节点的
新;CSD(Chunk存储服务)主要负责实际的数据存储;CLI实现
哪个CSD。
内核态客户端,提供块存储的访问接口;OMM为操作维护平台,
•二次寻址:请求磁盘后,调用裸盘K/V引擎对物理数据块
图1 ZTE-DBSS系统整体架构 进行读写,利用裸盘K/V的内部B+元数据管理完成二次寻址。为
提升I/O利用率和系统吞吐量,如图3所示,ZTE-DBSS采用定制
化的裸盘文件系统替代常规文件系统。直接管理物理磁盘的空
间分配,采用段/区/页三级组织形式,避免了文件系统常见的
图3 ZTE-DBSS裸盘文件系统
60 网络电信 二零一八年五月