论文部分内容阅读
近年来,分布式存储系统集群规模快速扩大,在单节点故障概率恒定的条件下,随着集群规模的增加,整个系统数据可靠性和可用性都会降低。提高系统中数据的可靠性和可用性可通过使用更快的数据恢复速率实现。但考虑到系统正在提供服务,盲目提高数据恢复速率会对前台服务产生干扰,使得前台负载和数据恢复的性能下降,并浪费宝贵的带宽资源。因此,亟需一种数据恢复方法能够在加快数据恢复速率的同时最小化对前台性能的干扰。本文探索大规模存储系统中快速且对前台负载低干扰的数据恢复方法。本文基于对线上系统负载和节点失效记录的分析,找到现有系统中恢复方法存在的问题,并设计了一套基于时间片的中心化数据恢复协议。为改善中心化调度器使其不会成为性能瓶颈并提升调度质量,本文采用一系列优化技术实现快速高质量的任务调度。本文的方法成功在大规模存储系统中实现了仅引入微小前台性能干扰的同时快速完成恢复。本文主要研究工作包括:(1)对线上大规模存储系统的前台负载和节点失效记录进行分析。通过分析发现:一方面,在具有这样规模的存储系统中前台负载存在短期不均衡现象和动态变化现象,现有的数据恢复方法无法在短时间内生成一套高质量的数据恢复计划;另一方面,节点失效产生的调度量巨大且可选择参与恢复的节点数量众多,复杂的调度算法无法很快的生成调度结果。(2)提出大规模存储系统中快速低干扰的数据恢复方法Dayu。Dayu采用了一个基于时间片的数据恢复框架,在每个时间片内只调度一部分任务,并期望它们能够在当前时间片内完成。这个协议在适应了动态的负载变化的同时降低了计算开销。在每个时间片内,基于对线上系统的观察,Dayu提出并采用了4个关键技术,实现了恢复协议中调度算法的快速高质量。(3)实现Dayu并进行了全面的性能测试。在大规模存储系统Pangu的基础上实现了Dayu,并在真实集群环境和模拟环境下分别进行了性能测试。在1000个节点真实集群中的实验表明,Dayu比Pangu原本的恢复协议拥有同时更高的恢复速率和较低的性能干扰。25000个节点的模拟实验表明Dayu拥有优异的可扩展性,可在2.5倍于目标规模的集群中正常运行。