storage R&D guy.
全部博文(1000)
分类: 服务器与存储
2015-01-29 15:46:35
纠删码(erasure coding,EC)是一种数据保护方法,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,比如磁盘、存储节点或者其它地理位置。
纠删码会创建一个数学函数来描述一组数字,这样就可以检查它们的准确性,而且一旦其中一个数字丢失,还可以恢复。多项式插值(polynomial interpolation)或过采样(oversampling)就是纠删码所使用的关键技术。
从数据函数角度来说,纠删码提供的保护可以用下面这个简单的公式来表示:n = k + m。变量“k”代表原始数据或符号的值。变量“m”代表故障后添加的提供保护的额外或冗余符号的值。变量“n”代表纠删码过程后创建的符号的总值。
举个例子来说,在一个EC 10/16的配置中,会有6个额外的符号(变量m)被添加到10个原始符号(变量k)中。这16个数据片段(变量n)会遍布16个驱动器、节点或地理位置中。而原始文件可以从10个验证片段中重建。
纠删码,也称为前向纠错(FEC)编码,早在50年前就已出现。随后产生了不同类型。其中一个最早也是最常见的类型就是RS(Reed-Solomon),这种类型的数据可以使用任何k符号的组合或数据块来重建,即使m符号丢失或不可用。比如,在EC 10/16中,即使有6个驱动器、节点或者地理位置丢失或不可用,而原始文件还是可以恢复。
纠删码可以用于有大量数据和任何需要容错的应用程序或系统中,比如磁盘阵列系统、数据网格、分布式存储应用程序、对象存储或归档存储。目前,纠删码的一个常见的使用案例是基于对象的云存储。