光电工程  2019, Vol. 46 Issue (3): 180557      DOI: 10.12086/oee.2019.180557     
一种用于光盘数据存储的冗余恢复码纠错方法
郑穆 , 罗铁威     
广东紫晶信息存储技术股份有限公司,广东 梅州 514779
摘要:为提升光存储数据可靠性,本文提出一种用于光盘数据存储的冗余恢复码纠错方法,涉及光盘数据存储领域。对用户数据进行冗余恢复码编码,将其与用户数据组成数据条带组,对编码后的数据条带组再次进行纠错和调制的编码,将再次编码后的数据条带组刻录在光盘上;读取已刻录的数据条带组,先经过调制和纠错的解码,当读取到无法读取的错误数据时,进行冗余恢复码解码,还原用户数据。该方法可兼容光盘现有标准的纠错码,提高光盘的容错率。在蓝光光盘的物理符号误码率为4.2×10-3情况下,经过蓝光标准ECC(error correction code)纠错后符号误码率为4.1×10-13,在此基础上叠加冗余恢复码,符号误码率可下降至7.4×10-24
关键词光存储    冗余恢复码    纠错方法    数据可靠性    
Error correction methodology based on redundant recovery code for optical storage system
Zheng Mu, Luo Tiewei     
Amethystum Storage Technology Co., Ltd., Meizhou, Guangdong 514779, China
Abstract: In order to improve the reliability of optical storage data, this paper proposes an error correction methodology in optical storage system which is based on redundant recovery code technology, it relates to the field of optical disc data storage. The methodology consists of two opposite processes – recording and retrieving. While recording data, firstly, splitting user data into blocks and encoding it with redundancy recovery code; next, organizing data blocks as UDF (universal disc format) file system; finally, modulating and encoding UDF file system data as strip group according to the optical disc physical format and recording it into optical disc. In contrast, while retrieving data, demodulating and decoding data strip group which is stored in optical disc at first; later, following UDF file system format to resume user data; in the end, verifying user data with redundant recovery code and return it to user. The methodology is compatible with the standard optical disc file system, and improves the fault tolerance efficiently. Original blu-ray physical format signal error rate is 4.1×10-13, the signal error rate can be down to 7.4×10-24 after redundancy recovery code check.
Keywords: optical storage    redundant recovery code    error correction    data reliability    

1 引言

在大数据时代,数据呈几何级数快速增长。在海量数据中,经常被访问的数据被称为热数据,而极少被访问的数据被称为冷数据。经过一段时间的使用,80%以上都会变为冷数据,这种存储规律被称为数据存储的“2·8定律”。光盘存储有高存储密度、长期稳定[1]、节能、安全等天然优势,在大数据存储有着广泛的前景及应用。为满足低能耗、长寿命数据存储的市场需求,光存储正逐步得到数据存储行业重视。广东紫晶信息存储技术股份有限公司(紫晶)正是在这种需求中孕育而生的。自2010年成立以来,在短短的几年里,发展成为国内大数据光存储行业拥有存储介质、存储设备、存储软件和行业解决方案全系列产品的企业,是国内唯一拥有专业蓝光存储介质技术开发能力和生产能力的高新技术企业,参与国家光盘行业标准的起草,也是国家出版产品质量监督检测中心“蓝光检测实验室”的承办和运行管理单位。公司在广州及广东梅州设有软、硬件研发中心,重视核心技术的自主研发,面向大数据市场提供冷数据存储系统及服务。主要产品有极光、彗星及水星系列软件系统,BD、ZL及MHL系列硬件设备,如图 1所示,目前最高可提供单机柜2.4 PB(1 PB=1024 TB)容量,并可提供多种存储服务。

图 1 紫晶存储设备 Fig. 1 Amethystum storage devices

紫晶作为提供云计算存储综合解决方案的企业,不仅在存储介质(高容量档案级蓝光存储光盘)以及光盘库管理系统等方面予以创新开发,更提供虚拟化IT系统和智能化软件的整体解决方案,该系统具有国际领先水平。紫晶软件首创基于光存储技术的融合存储云架构平台,实现系统平台的核心技术自主可控,并开发了适应不同系统架构的软件平台产品,能满足客户的定制化需求,与各企业具有自身特色的流程管理系统相兼容。紫晶存储的产品解决方案,集成了光存储(蓝光)与磁存储(机械硬盘)或电存储(固态硬盘)的多种不同存储介质,将光、电、磁[2]三种介质聚合为一个“即插即用”虚拟存储资源池,并实现系统可扩展、适配或嵌入各行业客户的文档管理系统或企业IT系统。完成该系统的开发,需要对不同存储介质具有深刻的理解。公司产品系统可以智能化计算用户数据的冷热度而主动调配存储资源,根据数据生命周期特点设定参数标签,通过智能算法,主动实现大数据的分层存储[3],为用户提供最佳的大数据管理解决方案,如图 2所示。

图 2 分层存储系统 Fig. 2 Tiering storage system

随着光盘技术的发展,出现了多层记录数据的技术,增加了数据密度。由于单位密度下记录数据的增加,光盘上同样尺寸的损伤所造成的错误数据也会增加;为了进一步提升光存储的可靠性,在软件系统数据恢复及纠错方面提出了新的要求。

在光盘介质层面,数据在进行光盘刻录的同时,光驱及光盘介质通过符号误码率[4](signal error rate)检验来保证刻录质量及信息保存年限;即刻录同时,紫晶专业级光驱会同步检查刻录时光盘上所记录信息的符号误码率值,并保证符号误码率值小于1×10-3。根据蓝光光盘物理材料属性及“国际光盘长期数据存储生命周期检验标准”,它可保证数据在50年时间内,光盘的物理符号误码率仍低于4.2×10-3,使其处于一个可控范围内。为达到长期保存数据的目标,即最终数据的符号误码率需要低于1×10-20。在原有光盘物理格式标准ECC(error correction code)纠错的基础上,本文提出在UDF(universal disc format)文件系统[5]层增加冗余恢复码(redundant recovery code,RRC)的一种纠错方法。

2 基于光盘存储的冗余恢复码原理

冗余恢复码是一种所用符号数或信号码元数比表示信息所必需的数目多的代码,利用了纠错码的编码原理,在存储或者传输过程中发生错误后能够自行发现或纠正的编码方法。冗余恢复码在信息技术领域有着广泛的应用,常用的冗余码有海明码、CRC码(循环冗余校验码,cyclic redundancy check)[6]、BCH码(Bose-Chaudhuri-Hocquenghem codes)[7]

蓝光光盘上运用的纠错码机制是采用了切线方向上的长距码(long-distance code,LDC)和突发指示子码(burst-indicating subcode,BIS)相结合进行编码。将突发指示子码均匀插入长距码中,用于标记在长距码中的长突发错误位置,再由长距码纠正已知位置的长突发错误和未知位置的随机错误和短突发错误。CD光盘上运用的纠错码机制是采用交叉交错理德-所罗门码(cross interleaved Reed-Solomon code,CIRC)[8],它的主旨除了增加二维纠错编码外,还将源数据打散,根据一定的规则进行扰频和交错编码,使数据相互交叉交错,从而进一步提高纠错的能力。DVD光盘上运用的纠错码机制是采用使用理德-所罗门乘积码(Reed-Solomon product-like code,RS-PC)纠错编码方式和8/16位信号调制方式,确保数据读取可靠。

在光盘数据的读取过程中,可能会出现两种错误。第一种是随机错误,它主要由光盘的倾斜、激光光斑的离焦等因素引起,错误长度较短,在盘片上分布比较均匀,容易得到纠正;第二类是突发性错误,它由光盘表面的划痕、灰尘、指纹等引起,错误长度较长,容易形成集中分布,可能会出现无法纠正的情况。因此,需要一种纠错能力更强的方法来满足数据纠错需求。

2.1 算法整体框架

图 3所示,当数据要求刻录时,对用户数据进行冗余恢复码编码后,再经过蓝光光盘标准的纠错编码和调制编码,最后将电平脉冲信号刻录在光盘上。如图 4所示,在数据被读取时,先由激光拾光头提取光强信号,进行通道位的检测,再经过调制解码和纠错解码,最后通过冗余恢复码解码,还原成原始的用户数据。

图 3 冗余恢复码编码过程 Fig. 3 Redundant recovery code encoding flow diagram

图 4 冗余恢复码解码过程 Fig. 4 Redundant recovery code decoding flow diagram
2.2 编码方法

图 5所示,对用户数据进行冗余恢复码编码,具体是指:因为1 GB=1024 MB=1073741824 Byte,1024 MB/32=32 MB,32 MB×31=992 MB;从需要刻录的用户数据中取出992 MB,等分为31块并进行编号,分别为data#0、data#1、data#2……data#30;然后将在data#0中存储数据的每一位二进制数值和data#1内对应数据位的二进制数值进行异或运算,得到一个和等分数据同等长度(32 MB)的冗余恢复码RRC#1;再将得到的RRC#1的每一位二进制数值和data#2对应数据位的二进制数值进行异或运算,得到第二个冗余恢复码RRC#2;如此类推,按照上述方法得到的冗余恢复码RRC#29和data#30进行异或运算,得到RRC#30,即该992 MB用户数据的冗余恢复码(RRC)。

图 5 冗余恢复码编码方法 Fig. 5 Redundant recovery code encoding methodology

图 6所示,992 MB用户数据和通过异或运算得到32 MB的冗余恢复码合并得到一个1 GB的数据块,称为数据条带(band)。

图 6 冗余恢复码数据块组成 Fig. 6 Redundant recovery code data block components

图 7所示,上述对数据块内二进制数值进行异或运算,例如对data#0和data#1数据片段相同位置的每一位二进制数值进行异或运算,从第一位到第四位分别是:

图 7 冗余恢复码条带 Fig. 7 Redundant recovery code strip

1 ⊕ 1=0;

0 ⊕ 0=0;

1 ⊕ 0=1;

0 ⊕ 1 =1。

如此对两个数据块内对应位置上的数值进行异或运算可以得到冗余恢复码RRC#1。

图 8所示,在对光盘数据进行读取时,检测到某个位置的数据无法正常读取,开始进行冗余恢复码解码:找到错误数据(x)所在的数据块(data#1),使用该数据块所在的数据条带(band#1)的其他数据块(data#0、data#2、data#3……data#30)和冗余恢复码(RRC)内对应位置的数值逐一进行异或运算,求出x的值,实现对错误数据的恢复;上述异或运算求x,求解如下:

图 8 冗余恢复码解码方法 Fig. 8 Redundant recovery code decoding methodology

x ⊕ 1=0,则x=1;

x ⊕ 0=0,则x=0;

x ⊕ 0=1,则x=1;

x ⊕ 1=1,则x=0。

加入了冗余恢复码机制后,对于突发性错误,可以恢复条带上的任意最大连续32 MB的数据错误,如在数据块data#0中某段位置x-y(xy为此数据块中出错的字节位置)的数据损坏时,只要同条带中其余的数据块(data#1~data30)以及记录RRC的数据块中在相应的x-y区域数据正确,即可对data#0中的错误区域进行恢复。对于随机错误,错误数据的位置在32个数据块(data#0~data#30,RRC#)中没有重叠的部分,也可恢复最大32 MB的随机错误。

2.3 恢复效率分析

以出现最大的错误区域来进行举例,若一个条带内,连续32 MB的数据出现错误,若需要恢复该数据块,则需要读取同条带内的其余992 MB数据,使用光驱读取数据时,即使使用4倍速(18 MB/s)读取。读取992 MB的光盘数据需要55.1 s,然后对数据进行异或运算得到恢复数据,以当前计算机的处理能力,异或运算所需要的时间非常短,时间消耗主要在光驱读取。可以得出恢复32 MB的出错数据,需要大概1 min,即冗余恢复码的恢复效率为599186 Byte/s。即在光驱使用4倍速下,冗余恢复码的恢复速度可以达到599186 Byte/s。实际使用过程中,光驱使用的读取速率可以达到更高[9]

2.4 纠错效果

在蓝光光盘的数据刻录中使用本方法提出的一种用于光盘数据存储的冗余恢复码纠错方法后,它可以有效地提高光存储突发错误数据的恢复能力;在切线方向,从蓝光存储的4.5 mm长度提高到整个圆周长度;在径向方向,从蓝光存储的0 mm长度提高到33 μm,即100个轨道(track)[10],如图 9图 10之比较。

图 9 蓝光物理格式标准恢复能力 Fig. 9 Blu-ray disc physical format specifications recovery performance

图 10 冗余恢复码恢复能力 Fig. 10 Redundant recovery code recovery performance
2.5 其他冗余码兼容问题

冗余恢复码不会破坏原数据的基本结构,只对数据作条带处理。因此基于数据条带为处理单位的其他冗余码都能并用。

3 实验结果及数据分析 3.1 可行性实验 3.1.1 实验目的

1) 检查冗余码原理的可行性,找出当前设计的缺点和完善方法;

2) 检验数据区的数值是否正确;

3) 校验效率比较。

3.1.2 实验过程

1) 在XFS[11]文件系统中创建9920 MB大小的文件A;

2) 将文件A视为数据源,并将文件A切分为310个数据块,并按照地址标记顺序;

3) 将310个数据块按顺序平均分成10组;

4) 将每组的数据块按位进行异或运算,最终形成32 MB的校验块。将每个组得出的校验块添加到每个组中,并将校验块视为最后一个数据块,由31个数据块和1个校验块按照顺序拼接成1 GB的数据条带;

5) 按照步骤4),10组数据可以形成10个1 GB的数据条带,将10个1 GB的数据按顺序写入新文件(文件B);

6) 将每个数据条带中的31个数据块按照组合方式抽取30个数据块加1个校验块为一个组合,并且做异或运算,运算结果与没被抽中的数据块比较;

7) 将一个条带随机取32 MB数据(这些数据可以分散到每个数据块中)当作损坏数据,利用RRC原理恢复,并且记录数据恢复状态和效率。

3.1.3 实验结果及分析

1) 文件B的大小为10 GB,所有数据块和所有校验块的总大小与理论计算值相等;

2) 利用组合方式推算的结果全部与原始数据相同;

3) 当选用的数据在相对位置(该数据处于本身数据块的位置)一样时,数据无法恢复,当选用数据不在同一相对位置时,数据可以恢复;

4) 当需要恢复数据大小为32 MB时,数据恢复速度最慢,需要把992 MB的数据全部读取出来;

5) 恢复32 MB数据所需要的时间为12 s,主要耗时在硬盘读取992 MB数据。

3.2 蓝光光盘冗余恢复码实验 3.2.1 实验目的

1) 检验蓝光光盘附带冗余恢复码存储数据的可行性;

2) 研究冗余恢复码运用在蓝光光盘介质的恢复能力;

3) 冗余恢复码结合光盘UDF文件系统的数据恢复能力与兼容性;

4) 按照可恢复数据大小的极限值,结合所用光盘,找出32 MB数据在光盘的径向和切向分别对应多大的范围。

3.2.2 实验过程

1) 将原理可行性实验中的文件B刻录在蓝光光盘上;

2) 分别在蓝光光盘上随机抽取一个数据条带,并且选取32 MB数据作为损坏数据,利用冗余恢复码的原理,恢复数据并对比;

3) 把冗余码刻入光盘UDF文件系统的保留区域;

4) 在光盘上随机刻录数据,利用显微镜查看刻录情况,并推算出可接受的损坏范围;

5) 根据步骤3),对光盘进行定点破环,利用冗余恢复码恢复数据。

3.2.3 实验结果及分析

1) 利用刻录在蓝光光盘的数据模拟恢复数据场景,数据恢复后与原数据对比一致;

2) 冗余恢复码可以结合光盘UDF文件系统,并且可以达到1×10-20符号误码率及文件系统兼容性要求;

3) 可接受损坏的数据大小对应的范围为33 μm,即100轨道(track),蓝光光盘在损坏范围小于33 μm的圆周范围的情况下可以恢复数据;

4) 在圆周方向可以恢复4.5 mm长度数据;

5) 如图 11所示,数据在蓝光光盘,按UDF文件系统格式,按轨道填入数据块,最大可纠错32 MB连续错误,而径向方向,由于蓝光物理格式定义有寻轨间隔,且数据是跨冗余纠错条带,故而圆周方向纠错能力强于径向方向[12]

图 11 光盘UDF文件系统结合冗余恢复码 Fig. 11 Redundant recovery code in Universal Disc Format file system 注:元数据及元数据位图是UDF标准中的定义,用于管理媒体中的目录和文件

6) 根据BD光盘标准规格定义,光盘的校验技术主要靠ECC[13]。ECC(ECC块为64 K[14])可在BD光盘存储介质的符号误码率达到4.2×10-3时,经校验恢复后误码率降低至4.2×10-13。在使用本文提供的二重冗余恢复码后,误码率进一步降低至7.4×10-24

4 结论

针对某蓝光光盘数据刻录读取实验测试,与现有技术相比,本文所述技术方案的结果是:可兼容现有标准纠错码,提高光盘的容错率,并且支持多种格式蓝光光盘,例如25 GB单层蓝光光盘,50 GB双层蓝光光盘,100 GB三层蓝光光盘[15]。光存储是大数据、低成本及高可靠存储的有效手段,而灰尘、刮伤等外界因素是影响光存储数据可靠性的主要障碍,本文利用一种光盘数据存储的冗余恢复码纠错方法来克服这些障碍,达到提高光存储数据可靠性的要求。

参考文献
[1]
ECMA International. Test method for the estimation of lifetime of optical disks for long-term data storage: ECMA-396[S]. Geneva: ECMA International, 2014.
[2]
Bill Dawkins. Common RAID Disk Data Format Specification: Version 2.0 Revision 19[M]. U.S.A.: Storage Networking Industry Association, 2009.
[3]
张冬. 大话存储Ⅱ:存储系统架构与底层原理极限剖析[M]. 北京: 清华大学出版社, 2011.
[4]
邢亚斌. 对"误码率"的分析[J]. 微波与卫星通信, 1998(3): 24-26 [Crossref]
[5]
Optical Storage Technology Association. Universal Disk Format Specification[M]. U.S.A.: Optical Storage Technology Association, 2005.
[6]
姚七栋, 张春玉. CRC校验及其软件实现[J]. 现代电子技术, 2006, 29(13): 67-68, 71 [Crossref]
[7]
王泽东. 纠错编码原理分析及(15, 7)BCH循环码设计[J]. 内江师范学院学报, 2014, 29(8): 34-37 [Crossref]
[8]
Oz J, Naor A. Reed Solomon encoder/decoder on the StarCore™ SC140/SC1400 cores, with extended examples[EB/OL]. (2004-12-01). http://cache.freescale.com/files/dsp/doc/app_note/AN2407.pdf.
[9]
Pioneer Electronics (USA) Inc. Pioneer ships PC-based blu-ray disc drives; Innovative drive significantly increases storage capacity for professionals[EB/OL]. (2006-05-25). https://www.thefreelibrary.com/Pioneer+Ships+PC-Based+Blu-ray+Disc+Drives%3b+Innovative+Drive...-a0145880351.
[10]
ISO/IEC. Information technology -- Digitally recorded media for information interchange and storage -- Test method for the estimation of lifetime of optical disks for long-term data storage: ISO/IEC 16963[S]. U.S.A.: International Organization for Standardization, 2017.
[11]
Silicon Graphics Inc. XFS Filesystem Structure 2nd ed[M]. Sunnyvale, California, U.S.: Silicon Graphics Inc., 2006.
[12]
Blu-ray Disc Founders. White paper Blu-ray disc format, 3. File system specifications for BD-RE, R, ROM[R]. Blu-ray Disc Founders, 2004.
[13]
Blu-ray Disk Association. White paper, Blu-ray DiscTM format, 1. B physical format specifications for BD-R: 5th edition[R]. CA 91608 U.S.A.: Blu-ray Disc Association, 2010.
[14]
Liu X, Jia H B, Ma C. Error-correction codes for optical disc storage[J]. Proceedings of SPIE, 2005, 5643: 342-347. [Crossref]
[15]
Blu-ray Disk Association. White paper, Blu-ray DiscTM format, general: 3rd edition[R]. CA 91608 U.S.A.: Blu-ray Disc Association, 2012.