论文部分内容阅读
纠删码在大规模的分布式存储系统中得到了越来越广泛的使用。但受限于恢复过程会涉及到多个块的磁盘读取和网络传输,纠删码的恢复开销很高。这给分布式存储系统带来两个问题:a)高退化读延时;b)高节点失效恢复成本。为了提高纠删码存储系统的服务性能及数据可用性,本文对纠删码的恢复过程进行了深入的研究,针对这两个问题,分别提出了相应的优化方案。 本文的主要工作和创新点为: 1.针对高退化读延时,提出了基于数据热度的多级分组编码方法。传统的纠删码的存储系统中只采用一种编码方式,只能针对存储开销或恢复开销做优化。在分布式存储系统中存在数据访问的局部性原理:大部分的文件很少被访问到,少部分的文件集中了绝大多数的数据访问。基于这个原理,本文提出了一种对热数据使用恢复开销低的小分组编码进行编码,对冷数据使用存储开销低的大分组编码进行编码的多级分组编码方案。这可使系统在恢复开销和存储开销方面都取得不错的效果。同时,当数据的冷热程度出现变化时,能够自动地适应这种负载变化,把文件在不同的分组编码状态间进行转换。 2.设计并实现了节点失效恢复的并行流水线化。传统的纠删码恢复流程中,各部分操作串行执行的。在分布式存储系统中,基于数据可靠性的考虑,同一条带内的块都是分散存储在集群的不同节点上面,对于恢复所需的多个块可以进行并行的磁盘读取和网络传输。同时通过对块进行分片操作及基于增量编码原理,可以使纠删码恢复过程中的磁盘读取、网络传输及解码计算流水线化地进行,进一步降低恢复时间。 本文基于分布式文件系统ECFS实现了多级分组编码方案和节点失效恢复功能,并对退化读和节点失效恢复效果进行了评测。评测结果显示,结合了LRC(12,2,2)和LRC(12,6,2)的多级分组编码的退化读延时与RS(6,3)相比降低了20.3%,和RS(10,4)相比降低了41.7%。对节点失效恢复进行并行流水线化处理之后能将整体恢复时间降低26%。