分布式存储具有很高的性价比和很好的扩展性,已成为大规模数据中心的主流存储结构。然而,分布式存储系统包含大量存储节点,节点失效是经常性事件;为了避免数据丢失,通常采用副本进行容错。对于PB级、EB级、ZB级存储系统来说,多副本方案的存储开销给硬件成本和运营开支造成巨大压力;而纠删编码具有高容错能力和低存储空间开销的优点,于是纠删码已经成为大规模存储的基本容错方案。
武汉光电国家实验室数据存储与数字媒体团队谢长生教授带领的团队,针对性的对此展开了系列研究,提出采用I/O调度方式来优化纠删码集群存储性能,其中包括节点重构性能、数据归档性能、存储扩容性能。
纠删码存储集群的一个关键设计目标是降低节点重构时间,提高存储可靠性。针对离线重构情形,提出一种流水线式重构方法。如图1所示,任一存活节点根据其本地分块及其所接收分块,采用线性组合计算出一个中间分块,然后将该中间分块发送到下一节点;当达到替换节点时,将恢复出失效数据分块。在这种流水线式I/O方式下,各个存活节点都承担一部分CPU计算,同时其I/O吞吐率和网络带宽的利用率都处于高位。另外,同步式重构按Many-to-One模式传输分块数据,会引起TCP Incast问题;而流水线式重构方案中分块数据按One-to-One模式进行传输,可以从根本上避免TCP Incast所引起的吞吐率急剧下降问题。该研究成果“ 一种纠删码存储集群下流水线式重构方案”(PUSH: A Pipelined Reconstruction I/O for Erasure-Coded Storage Clusters)于2015年2月发表在国际期刊IEEE Transactions on Parallel and Distributed Systems (IEEE TPDS). Vol.26(2):516-526,2015上。
图1 两种离线重构方式的对比
除了离线重构,还需要考虑在线重构情形,因为当发生节点失效时,纠删码存储集群需要同时支持后端数据恢复和前端用户访问请求。试验发现,(1)离线重构的重构时间小于在线重构,原因在于在线重构时用户请求参与了带宽竞争;(2)降级模式获得比在线重构更低的用户响应时间,因为在线重构下重构请求参加了带宽资源竞争。即在线重构时由于带宽竞争导致重构时间和用户响应时间的增加。针对这个I/O互扰问题,提出了一种叫做“ RAM-RS”的重定向方案,将失效用户请求定向到一个内存区域,通过隔离重构读请求和失效用户I/O来最小化I/O互扰。该研究成果“ 一种为纠删码存储集群设计的基于I/O重定向的高效重构方案”(An Efficient I/O-Redirection-based Reconstruction Scheme for Erasure-Coded Storage Clusters)于2015年11月发表在国际期刊IEEE Transactions on Computers (IEEE TC)上(http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7017502)。
图2 基于RAM-RS方案的在线重构数据流方式
随着数据访问频度的降低,将数据从多副本方式转存为纠删码方式(即,数据纠删码归档)有助于降低存储系统的硬件投入和运营开支。如今,一些实用存储系统(例WAS,GFS II)采用混合式冗余策略,分别提出了两种数据布局[D+P]cd和[3X]cd;然后在数据布局[D+P]cd和[3X]cd的基础上分别设计了两种流水线式纠删码归档方案DP和3X,分别如图3和图4所示。所有节点被分成两个组或三个组,每个组都能够针对单独的副本集进行编码,从而实现并行式归档。该研究“ 利用流水线式编码过程来加速纠删码数据归档过程”(Exploiting Pipelined Encoding Process to Boost Erasure-Coded Data Archival)于2015年11月发表在国际期刊 IEEE Transactions on Parallel and Distributed Systems (IEEE TPDS)上(http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6942231)。
图3将[D+P]cd布局存储的数据转为纠删码存储
图4 将[3X]cd数据布局转换为纠删码归档存储
随着数据的累积,已有存储系统的容量将逐渐降低,存储系统存在扩容需求。对纠删码集群扩容而言,不仅要减少数据分块的迁移量,还要降低校验分块的更新开销。针对此,设计了一种高效集群扩容方案Scale-RS,它能利用纠删码的结构特性来优化数据迁移和校验更新,不仅让数据块迁移总量达到理论下界,而且能最小化校验更新所导致的数据访问量。该研究成果“ 一种RS码存储集群下的高效扩容方案”(Scale-RS: An Efficient Scaling Scheme for RS-Coded Storage Clusters)已于2015年6月发表在国际期刊IEEE Transactions on Parallel and Distributed Systems (IEEE TPDS). Vol.26(6):1704-1717,2015)上。
图5 Scale-RS存储扩容示意图
以上研究得到了国家重点基础研究发展计划973项目(NO. 2011CB302303)和国家高技术研究发展计划863项目(NO. 2013AA013203)的资助。
(责任编辑:陈智敏)