论文部分内容阅读
大数据和云存储在经济生活中广泛应用,系统数据量巨大,为减少冗余数据开销并保证数据可靠性和可用性,采用纠删码取代副本已经成为业界一种趋势。数据一致性是纠删码的本质属性,保证了数据可靠性和可用性;数据不一致将导致数据的冗余校验失效,使得数据丢失可靠性,从而不能恢复丢失的数据。因此,保证纠删码的数据一致性是实现纠删码存储系统的关键。为了能够在故障发生后定位不一致的数据并恢复数据一致性,系统需要持久保存数据一致性的变更信息。然而,现有方法存储开销高,或大幅降低存储性能,或成倍增加成本;大数据和云存储系统数据规模大,进一步放大了存储开销总量。本文重点研究纠删码存储系统中低存储开销的数据一致性技术,提出了结合数据异地更新和预写日志技术的新存储模型及事务实现方法,主要工作及贡献如下: A)提出了一种“写后映射”存储模型AWM(After Write Mapping),结合数据异地更新和预写日志,实现了延迟地址映射,具有存储开销小的优点。其中,数据异地更新到存储设备;同时,预写日志记录更新地址,从而使得这些新写入的数据形成一个逻辑上的日志。当数据更新完成且地址被保存到预写日志后,事务才将提交记录存入预写日志,由此提供了事务原子性。事务提交后,依据预写日志中的地址,事务通过重映射将逻辑日志批量转换为数据,从而避免了传统预写日志读取数据并写入存储设备的开销。 B)提出了一种保证纠删码数据一致性的AWM事务实现方法,该方法引入日志结构存储,实现了组提交技术,并针对Linux系统已有的回刷操作进行了语义增强。使用同步AWM事务的RAID原型具有MD RAID85%的顺序写带宽,单盘上事务带宽占用小于0.5MB/s,事务写入数据量是用户写入数据量的0.2%。在同一硬盘的2~8个Ext4上,语义增强的回刷减少20%~60%回刷数量,提高平均写带宽2%~9%。试验结果表明AWM事务的存储开销小。 C)设计并实现了一个非阻塞高可靠的日志结构存储阵列RALD(Redundancy Arrayof Log-structured Disks),该系统采用了事务日志按副本同时存储到多个日志结构以及事务流水化回刷等多种优化技术。事务流水化回刷技术减少AWM事务中20%~30%回刷数量。在故障测试中,RALD能够同时容忍降级和宕机,没有单点故障。在写密集负载下,RALD比Linux MD RAID增加10%到190%的IOPS; RALD的4KB和64KB顺序写带宽分别是采用写时复制事务Btrfs RAID6的8倍和4倍。试验结果表明RALD保证了纠删码数据一致性且存储开销小,高可靠且具有高性能。