论文部分内容阅读
现在,分布式存储系统存储数PB字节的数据变得越来越常见。这些系统不得不忍受由软件失效,硬件损坏和机器重启等引起的各种不同的系统故障。为了保证系统可靠性和数据完整性,传统的分布式存储系统大多数采用基于多副本的高可靠性技术,多副本不仅可以多节点提供服务分担负载,而且当数据丢失时只需要从另外的可用副本拷贝数据即可完成恢复,恢复开销较小,但是因为需要对数据存储多份,导致其存储开销太大。而纠删码技术作为另外一种冗余策略部署在分布式存储系统中,能够以较低的存储开销为系统提供高可靠性。但是纠删码也存在一个明显的缺点,纠删码系统中所有的数据只存储一份,所以当发生数据丢失时,需要通过读取多个磁盘,进行解码计算才能恢复数据,这个过程会产生大量的网络传输和存储I/O操作,导致系统恢复开销大。目前,国内外针对纠删码存储系统的恢复性能优化做了大量的研究,其中大部分工作是通过设计一种新型编码结构来提高恢复性能,但是或多或少都会牺牲一些其他方面的性能。为了能够在不损失其他性能的同时降低恢复开销,本文着眼于纠删码系统的修复路径,针对传统纠删码系统在恢复数据过程中产生的网络瓶颈,利用软件定义网络(software define network,SDN)的技术,提出一种在网络中进行计算的高效故障重建方案INP(In-network Pipeline),其中SDN控制器根据网络的全局拓扑信息以及交换机的负载情况,选择出合适的交换机用于计算,并将交换机和数据节点之间的连接方式以一种树型结构进行表示,系统根据该树型结构让交换机和数据节点建立连接,进行数据传输,并在交换机上完成部分计算,减少向后传输的网络流量,从而消除网络瓶颈,提升恢复性能。本文在HDFS(Hadoop Distributed File System)系统上部署RS(Reed-Solomon)编码实现了INP方案,并通过理论分析说明INP方案可以适用于多种编码结构。在测试部分,以降级读为例,评估了不同网络带宽下INP方案的恢复效率。实验结果表明,与传统纠删码系统相比,INP方案总是能大幅减少网络流量,并且在一定带宽条件下,能够接近和正常读取数据一样的时间开销。