云课堂专题
海云捷迅云课堂专题,旨在秉承开源理念,为大家提供OpenStack技术原理与实践经验,该专题文章均由海云捷迅工程师理论与实践相结合总结而成,如大家有其他想要了解的信息,可留言给我们,我们会根据问题酌情回复。
纠删码简介
随着计算机技术和存储技术的发展,数据正以爆炸式的速度增长,海量数据对存储系统提出了巨大的挑战。为了保障存储系统的CAP,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),对于可用性来说常见的2种技术是多副本和纠删码,多副本就是把数据复制多份分别存储到不同地方以实现冗余备份,这种方法容错性能较好但存储利用率低,比较典型的3副本磁盘利用率仅33.33%,当系统数据量很大时,多副本带来巨大的额外存储空间消耗,导致TCO居高不下。纠删码技术以牺牲CPU计算量和网络负载为代价,提高存储空间利用率,同时提供近似副本的可靠性。
纠删码(Erasure Coding, EC)算法起源于1960年,最早应用于通信系统领域。最著名的是范德蒙RS编码Reed-Solomon。随着时间的推移,出现了一些变种算法,例如柯西RS编码等。目前,纠删码技术在分布式存储系统中的应用主要有三类,阵列纠删码(Array Code: RAID5、RAID6等)、RS(Reed-Solomon)里德-所罗门类纠删码和LDPC(LowDensity Parity Check Code)低密度奇偶校验纠删码。纠删码首先对原始数据进行分片,然后基于分片编码生成备份数据,最后将原始数据和备份数据分别写入不同的存储介质。数据恢