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                                         网络电信 二零一八年五月
   31   32   33   34   35   36   37   38   39   40   41