论文部分内容阅读
相对于多副本存储,纠删码在保证数据可用性的同时具有存储效率高、可扩展性好的优点。因此,如何将纠删码应用在多副本集群中成为热门的研究方向。当副本集群为了提升存储效率,提出冷数据编码请求时,会有如下问题:(1)7*24小时在线的集群无法为数据编码请求提供离线的环境,编码过程中的数据读取以及网络传输和用户数据访问之间会存在磁盘和网络资源的竞争;(2)当冷数据在集群中分布不均匀时,仅考虑数据局部性的编码方式会导致大量数据块在相同节点上编码,最慢的节点成为了编码过程的瓶颈;(3)节点硬件的异构和用户I/O导致集群中节点可用资源的差异,仅考虑数据局部性的调度方式无法解决编码过程中负载不均衡的问题。本研究的主要内容与贡献如下:(1)将每个节点可用于编码的资源(空闲能力)量化,为每个生产节点设定编码权重值。节点权重值的大小决定分配给该节点编码数据块的多少。这样可以有效地避免编码速度过慢的节点成为整个编码过程的短板,同时还可以降低编码作业与用户I/O的资源竞争,从而提高集群的工作效率。(2)提出一种基于时间窗口的编码调度机制,将以权重值为基础的任务分配以一个较短的时间为单位。时间窗口将一个长时间的大作业划分为多个时间片内的小作业,以小作业开始时的用户负载预测一个时间窗口的负载——即假定时间窗口内用户负载恒定不变,将动态的节点负载转换为静态。(3)利用每个节点上一个时间窗口编码任务的完成情况,线性的增加或减少该节点当前时间窗口的权重值。这样的权重值反馈机制不断的修正时间窗口内的节点空闲能力的偏差。实验结果表明,该方法能够大幅度加速冷数据块副本到纠删码的编码过程,相对于传统的调度机制加速比可以达到2.78;同时对用户作业的影响降低6.89%。