首页 理论教育云安全深度剖析:数据多副本实践

云安全深度剖析:数据多副本实践

【摘要】:目前,GFS和HDFS中数据普遍采用三个副本来保证冗余。对于冷数据,并一定要在HDFS里面保存3个副本。对于很冷的数据,由10个数据块通过里德-所罗门算法生成4个Parity文件,对于原来的数据块,只保留1个副本,Parity数据块有2个副本,这样,副本系数就降到1.2。

企业采用云运算时,将相当重视云端安全问题,特别是数据私密性、完整性以及可用性。因此,云端数据在储存时,应建立多个数据副本,并支持异地备援,以降低数据遗失的风险。

目前,GFS和HDFS中数据普遍采用三个副本来保证冗余。这是一个简单有效但不是最优的方法。原因是,三个副本份浪费了大量存储空间,在集群规模较小时可能不是那么明显,但是对于大规模集群就比较明显了。假设按照1GB存储空间的成本按1$来计算,如果数据规模是5TB,那么两个备份(10TB)和三个备份(15TB)的成本差距为5000$[29]

针对三个副本存在的问题,研究者一直在探讨能否使用类似的策略在不降低存储可靠性的前提下降低存储副本数目。比如二代Google分布式文件系统Colossus[30],即GFS2中使用里德-所罗门擦除码来实现成本更低的可靠存储。Microsoft的Azure平台采用擦除码技术来降低存储成本[31]

Facebook在开源Hadoop的基础上也实现了一套基于擦除码的RAID方案,并公布了它的基于Hadoop HDFS的RAID实现[32]。其基本思路是,存放在HDFS上的数据分为热数据和冷数据两种。热数据一般存放三个备份,因为这些数据经常会被用到,所以多备份除了高效冗余外还能起到负载均衡的作用。对于冷数据,并一定要在HDFS里面保存3个副本。比如对于不太冷的数据块A/B/C,通过XOR(异或操作)方式产生Parity(检验值)数据块,原来的数据块A/B/C各保留2个副本,Parity数据块也有2个副本,这样,副本系数就从3减小到了2.6(理论值)。对于很冷的数据,由10个数据块通过里德-所罗门(Reed Solomon)算法生成4个Parity文件,对于原来的数据块,只保留1个副本,Parity数据块有2个副本,这样,副本系数就降到1.2。按照这种方式,对同样的数据,通常能够节约25%~30%的HDFS集群的存储空间。(www.chuimin.cn)

总之,HDFS通过智能副本放置模型提高系统可靠性和高效性,使得HDFS不同于其他分布式文件系统,高带宽利用率且具有机架感知的副本放置策略进一步优化了系统。

采用多副本技术,尽管可以降低数据遗失的风险,但是这样的做法将可能造成较高的成本,故如何有效地存储副本将是未来一个重要的研究议题。