码-分布式存储的研究现状及研究理论

发布时间 2023-11-21 11:04:42作者: 沉梦昂志_doc

1. 分布式存储的研究过程

分布式存储系统中最基本的两个性能要求是数据的可靠性和可用性。可靠性是指不会因为节点的失效而失效,可用性是指用户能从存储系统中获得所需的数据。分布式系统主要是依靠冗余来实现的。

冗余策略主要分为复制策略和纠删策略两种,只是相比于复制策略,纠删策略在存储上面的开销更小。

2002年,weatherspoon等人对复制和纠删策略进行分析,定量地对比了两种策略之后得出的结论。复制就是将一个节点的数据备份到多个节点上。纠删策略有个典型的(n,k)MDS码,就是将源消息M分成k份,再对这k份进行编码处理成n份并存储在n个节点上。我们可以利用这n个数据块中的任意的m(m>k)个拿出来解码重构出原始文件。

2007年,Dimakis 提出了网络编码和分布式存储系统相结合,旨在减少数据在分布式系统中的流动。他们将节点修复问题抽象成网络中单源多播的问题,通过网络信息流图分析,在存储容量和下载带宽之间的折中关系上提出了再生码的观念。再生码具备比纠删码更小的修复带宽,一种是MBR(最小修复带宽),一种是MSR(最佳存储效率)。

2007年,Yunnan Wu等人通过分析网络信息流图,得出了在分布式系统中存储容量和下载带宽的理论下界。

2009年,Yunnan Wu他们利用干扰对齐技术降低下载带宽设计出了相应的MDS码,使在k≤n/2,d=k+1的条件下,对应的再生码可以达到最小修复带宽下界。 

2009年,Rashmi等人在d=n−1的条件下设计出了最小下载带宽再生码方案,在 d=k+1时达到理论下界。

2010年,Suh等人设计出了在k/n≤1/2,d≥2k−1时达到最优存储效率下修复带宽的理论下界的MDS码,Shah利用干扰对齐技术,在d>2k−1的时候,设计出了MISER码。

2010年,Rashmi基于矩阵乘积给出了一种再生码的一般性编码构造方案,对于 MBR给定任意参数(n,k,d),均能达到修复带宽的理论下界。 2010年,Salim等人提出了具有低复杂度,无编码修复过程并且能容忍多节点失效的MBR。这种编码由外部MDS编码和内部重复编码组成,内部编码被称为部分重复编码,并提出一些重复编码的架构,能保证随机连接的有效的节点能修复失效的节点。

2011年,Sameer在Salim的基础上提出了一种适用于大型分布式系统的精确MBR 码—DRESS码,这个码无需编码的修复和增长,有最小修复带宽,磁盘读写和计算开销小。

2013年,Yuchong Hu等人通过研究FMSR码,提出了一种修复时无需解码,有最小磁盘读取量,可提高修复速度的最小存储再生码。

Kenneth W. Shum 等人首先在(n, k=2, d= n−1, α=M/k) 的参数下构造出了磁盘访问开销与带宽开销同时达到最优的再生码。他们的修复方式局限于功能性修复,即只保证修复出来的新生节点和原失效节点功能上是一样的,并不要求失效的数据和修复的数据严格相等。

 

2. 分布式存储的研究理论

2.1 纠删码 

纠删码最早被应用于网络数据传输中,发送端将编码的数据包通过信道传输,接收端收到编码数据包后再解码得到原始数据,从而避免通信中的数据丢包。由于纠删码具有良好容错特性,之后被引入存储系统中以提高数据的可靠性,与网络通信不同的是,存储系统中的纠删编码是将编码的冗余数据存放到磁盘中,只有磁盘失效发生的时候,才会读取相应的存活数据和冗余数据来实现丢失数据的再生,如果没有磁盘失效发生,可能不会发生冗余数据的存取操作。与副本技术相比,纠删编码具有高容错性、高存储效率、计算开销大等特点。目前RS编码、LDPC编码和磁盘阵列编码(RAID编码)等都是被广泛应用于存储系统中的纠删编码。

 2.2 再生码及局部修复码的提出背景

纠删码虽然降低了存储成本,但也要以修复时需要大量的帮助数据为代价。对于一个分布式集群而言,它其中的一个节点的数据量就成千上百个PB,因此出现节点故障的时候,触发的纠删码修复引起的网络流量将是巨大的。

编码理论家们为了应对这种需求,想出了两种编码,一种叫再生码,一种叫局部修复编码。再生码侧重于减少修复失败的节点需要的数据下载量,也就是修复带宽; 而局部修复编码是为了追求当一个节点损坏的时候,需要尽可能少的帮助节点,因此可以被称为是修复级别。

局部修复编码有:Pyramid Code,Tamo-Barg,(r,  δ)Codes,Cyclic LR

再生码有:Piggyback,Hitchhiker,polygon MBR Codes,Coupled Layer Code,Ye-Barg Codes