论文部分内容阅读
鉴于用户数据的重要性,存储可靠性仍旧是存储领域的重点研究方向。副本和阵列编码是目前两种主流的存储可靠性保障方式,与副本相比,阵列编码具有更高的空间利用率。由于RAID-6编码技术能够容并发的两磁盘失效,近年来学术界和工业界进行了广泛的研究。RAID-6编码的重构性能和I/O均衡性直接影响存储可靠性和数据可用性,针对此,从编码和调度两个层面对RAID-6编码展开研究,具体包括设计新型RAID-6编码、优化RAID-6编码布局、提升RAID-6编码存储系统重构性能三个方面。本文提出了一种符合Non-MDS特性的,具有高效重构性能的新型RAID-6编码(V2-Code)。V2-Code编码是一种垂直编码,校验块均匀地分布于所有的磁盘列,从而使其具有良好的I/O均衡性。同时,V2-Code编码还具有近似最优的存储效率、最低密度编码、灵活的RAID大小、稳定的校验链长度和平衡计算等特性。性能比较结果显示,V2-Code的负载均衡性和重构性能均胜过通用的RAID-6编码,在单磁盘和双磁盘失效恢复过程中,V2-Code的重构性能分别是X-Code重构性能的3.31倍和1.79倍。本文设计了一种I/O均衡的RAID-6数据布局方案-UPC(Uniform P-Code,UPC)。UPC方案通过移动PC方案校验链中不均衡的数据块沿着所在列到其余行,使得所有数据块均匀的分布于各行,同时确保校验链中的计算关系和容错能力不变。通过对PC布局方案的优化,UPC方案不仅仅获得了最优存储效率、最优计算复杂度和更新复杂度,而且具有更好的I/O均衡性,以及更优的平均用户响应时间。实验测试结果显示,在12个磁盘组成的阵列环境中,相对于PC方案,UPC方案在平均用户响应时间上提升了29.9%。本文提出了一种异构感知的磁盘阵列单盘快速重构算法-SmartRec,该算法充分地考虑了异构磁盘阵列以及在线重构I/O存取特性,提出了从存活磁盘所读取的重构数据量与磁盘I/O能力相匹配、分时间片的重构思路,现有的重构算法(ConRec,MinRec, BalRec)主要利用最小读重构数据量和均衡读重构数据量提升重构性能。形式化了四种单盘失效重构模型,并验证了模型的有效性。理论分析可知SmartRec重构算法具有更优的重构性能;另外,真实实验测试结果表明,在9个磁盘组成的阵列中,与现有三种重构算法相比,SmartRec的重构性能提升了35.3%。