数据校验冗余方法及装置制造方法及图纸

技术编号:2912869 阅读:240 留言:0更新日期:2012-04-11 18:40
一种数据校验冗余方法,包括更新校验数据的方法,其特征在于,所述更新校验数据的方法包括, 获取更新数据; 读取所述更新数据待存储位置的当前数据; 计算当前数据和更新数据的异或值; 读取校验数据存储位置的当前校验数据;   计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据; 在所述校验数据存储位置写入新的校验数据。

【技术实现步骤摘要】

本专利技术涉及一种数据校验冗余方法及装置
技术介绍
分布式网络存储系统中,为了充分利用系统带宽,一般采用分条机制,将文件分块存储在多个网络存储设备上。如图1所示,N个网络存储设备组成的系统中,文件按M字节顺序分割成数据块D1、D2、......、Dk-1、Dk、Dk+1、Dk+2、......、D2k-1、D2k、......,这些数据块轮转地循环存储在其中K个网络存储设备上。每个网络存储设备上的文件块,一起称为一个分条。文件分条后,读写文件的并行度增大,性能提高,但可靠性下降,故障概率增大,K个分条中任何一个分条的数据被破坏,都会导致文件不可用。为了解决分条导致的可靠性问题,需要对文件数据进行冗余备份。对于有高可靠性要求的系统,则需要实时的冗余备份。冗余技术又称为RAID技术,RAID是英文Redundant Array of Inexpensive Disks的缩写,即廉价磁盘冗余阵列。RAID就是一种由多块硬盘构成的冗余阵列存储设备。一种常用的数据实时冗余备份方法是远程同步镜像。远程同步镜像是一种同步复制技术,将本地数据以完全同步的方式复制到异地,每一个本地的I/O事务均需等待远程复制的完成确认信息,方予以释放。同步镜像使远程复制总能与本地要求复制的内容相一致。当某个网络存储设备出现故障时,被镜像的远程数据副本可以保证业务继续执行而没有数据的丢失。如图2所示,文件的数据块D1、D2、......、Dk-1、Dk、Dk+1、Dk+2、......、D2k-1、D2k、......,轮转地循环存储在网络存储设备i、i+1、......、i+k-2、i+k-1这K个网络存储设备上。写入这些数据块时,同时在网络存储设备i+1、i+2、......、i+k-1、i这K个网-->络存储设备上复制这些数据块。例如,在网络存储设备i上写入D1时,也同时在网络存储设备i+1上写入D1,这样即使网络存储设备i出现故障,仍然可以从网络存储设备i+1取得D1。在申请号为200510024963.6的中国专利申请中还有更多与上述远程同步镜像相关的内容。远程同步镜像的缺点是存储空间开销大,至少需要额外消耗与被保护数据等量的存储空间,这是复制冗余方法的固有缺陷,可以复制多个数据副本,副本越多,可靠性越高,但消耗的存储空间越大。远程同步镜像采用的是复制冗余方法,除此还有校验冗余方法。RAID5是一种常用的校验冗余级别,是一种存储性能、数据安全和存储成本兼顾的存储解决方案。以四个硬盘组成的RAID5为例,其数据存储方式如图3所示。图中,P0为D0,D1和D2的奇偶校验信息,其它以此类推。由图中可以看出,RAID5不直接对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。因此,采用校验冗余方法,可以减少存储空间开销,只需要使用1/n(n>=2)的原始数据存储空间,例如四个硬盘组成的RAID5的奇偶校验信息只需占用1个硬盘的存储空间。上述校验冗余方法的实际操作过程举例如下,参照图4所示,每k-1(k>2)个内容连续的数据块Dp(k-1)+1、Dp(k-1)+2、......、Dp(k-1)+k-1视为一个校验组,每一个校验组都有1个校验数据块Cp+1,所述校验数据块Cp+1=Dp(k-1)+1⊕Dp(k-1)+2⊕...⊕Dp(k-1)+k-1,]]>p=0,1,2,......。例如,C1=D1⊕D2⊕...⊕Dk-1,]]>C2=Dk⊕Dk+1⊕...⊕D2k-2,]]>校验数据块与数据块分别存储在k个不同的网络存储设备上,这样任何1个数据块被破坏,都能够根据其他k-2个数据块和校验数据块,进行恢复。例-->如,由于网络存储设备i故障,导致数据块D1被破坏,则可以从网络存储设备i+1、i+2、......、i+k-2分别读取数据块D2、D3、......、Dk-1,从网络存储设备i+k-1读取校验数据块C1,然后由它们计算出D1的值并恢复D1,D1按下述公式计算得到:D1=C1⊕D2⊕...⊕Dk-1.]]>为了实现对数据进行冗余保护的实时性,每个数据块写入时,都必须同步更新校验数据块的内容。但根据上述校验数据块的算法可以看到,上述更新校验数据块的算法性能开销很大。假设Dp(k-1)+q的内容改变为newDp(k-1)+q,则对应地,Cp+1的内容也要改变,则相对应的新的校验数据块newCp+1的算法如下:newCp+1=Dp(k-1)+1⊕Dp(k-1)+2⊕...⊕newDp(k-1)+q⊕...⊕]]>Dp(k-1)+k-1.]]>例如,D1的内容改变,则有newC1=newD1⊕D2⊕...⊕Dk-1.]]>从上面newCp+1的计算公式可以看出,已知newDp(k-1)+q,为了得到newCp+1,需要先读取Dp(k-1)+1、Dp(k-1)+2、...、Dp(k-1)+q-1、Dp(k-1)+q+1、Dp(k-1)+k-1,然后进行计算。整个过程需要k-2次网络读操作和k-2次异或运算,效率非常低,其中,k-2次网络读操作是主要的性能开销。并且,在得到newCp+1后,写入newCp+1。比较写数据块与校验数据块的过程,改变Dp(k-1)+q的内容,只需要1次网络写操作,而为了对应地改变Cp+1的内容,却需要k-2次网络读操作和1次网络写操作。将网络读操作和网络写操作视为同等时间量级的操作,不考虑计算开销,则写校验数据块的耗时是写数据块的k-1倍。而有校验冗余的写操作耗时(写数据+写校验数据)是没有校验冗余的写操作的k倍。因此,当网络存储设备的规模较大时,上述更新校验数据的操作耗时很大,效率也较低。并且,当网络存储设备的规模较大时,上述更新校验数据的所涉及的网络存储设备也较多,从而对网络带宽的消耗很大,因而网络存储系统整体性-->能较低。
技术实现思路
本专利技术提供一种数据校验冗余方法及装置,解决现有技术校验冗余方法操作耗时、网络贷款消耗较大的问题。为解决上述问题,本专利技术提供一种数据校验冗余方法,包括更新校验数据的方法,所述更新校验数据的方法包括下列步骤,获取更新数据;读取所述更新数据待存储位置的当前数据;计算当前数据和更新数据的异或值;读取校验数据存储位置的当前校验数据;计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据;在所述校验数据存储位置写入新的校验数据。所述数据校验冗余方法还包括,在所述校验数据存储位置写入新的校验数据后,在所述更新数据待存储位置写入更新数本文档来自技高网
...

【技术保护点】
一种数据校验冗余方法,包括更新校验数据的方法,其特征在于,所述更新校验数据的方法包括, 获取更新数据; 读取所述更新数据待存储位置的当前数据; 计算当前数据和更新数据的异或值; 读取校验数据存储位置的当前校验数据;计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据; 在所述校验数据存储位置写入新的校验数据。

【技术特征摘要】
1.一种数据校验冗余方法,包括更新校验数据的方法,其特征在于,所述更新校验数据的方法包括,获取更新数据;读取所述更新数据待存储位置的当前数据;计算当前数据和更新数据的异或值;读取校验数据存储位置的当前校验数据;计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据;在所述校验数据存储位置写入新的校验数据。2.如权利要求1所述的数据校验冗余方法,其特征在于,还包括,在所述校验数据存储位置写入新的校验数据后,在所述更新数据待存储位置写入更新数据。3.一种数据校验冗余装置,其特征在于,包括接收单元、第一读取单元、计算单元、第二读取单元和校验数据更新单元,所述接收单元用于接收更新数据,并向计算单元发送;所述第一读取单元用于读取更新数据待存储位置的当前数据,并向计算单元发送;所述计算单元用于根据第一读取单元发送的当前数据和接收单元发送的更新数据,计算所述当前数据和更新数据的异或值,并向校验数据更新单元发送;所述第二读取单元用于读取校验数据存储位置的当前校验数据,并向校验数据更新单元发送;所述校验数据更新单元用于根据第二读取单元发送的当前校验数据和计算单元发送的当前数据和更新数据的异或值,计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据。4.如权利要求3所述的数据校验冗余装置,其特征在于,还包括用于读取接收单元中的更新数据,并将更新数据写入所述更新数据待存储位置的写入单元。5.如权利要求4所述的数据校验冗余装置,其特征在于,所述写入单元在所述校验数据更新单元写入新的校验数据后,将更新数据写入所述更新数据待存储位置。6.一种数据校验冗余方法,包括更新校验数据的方法,其特征在于,所述更新校验数据的方法包括,获取更新数据;若更新数据待存储位置有数据,则读取所述更新数据待存储位置的当前数据,计算当前数据和更新数据的异或值,若校验数据存储位置有数据,则读取当前校验数据,并计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;若校验数据存储位置无数据,则将当前数据和更新数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;若更新数据待存储位置无数据,则在校验数据存储位置有数据时,读取当前校验数据,并计算当前校验数据和更新数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;在校验数据存储位置无数据时,将所述更新数据作为新的校验数据,并在校验数据存储位置写入新的校验数据。7.如权利要求6所述的数据校验冗余方法,其特征在于,还包括,在所述校验数据存储位置写入新的校验数据后,在所述更新数据待存储位置写入更新数据。8.一种数据校验冗余装置,其特征在于,包括接收单元、第一判断单元、第一读取单元、计算单元、第二判断单元、第二读取单元和校验数据更新单元,所述接收单元用于接收更新数据,并向计算单元发送;所述第一判断单元用于判断更新数据待存储位置是否有数据,并向第一读取单元和计算单元发送判断结果;所述第一读取单元用于在获得所述更新数据待存储位置有数据的判断结果后,读取所述更新数据待存储位置的当前数据,并向计算单元发送;所述计算单元用于在获得第一读取单元发送的当前数据后,计算当前数据和更新数据的异或值,并向校验数据更新单...

【专利技术属性】
技术研发人员:郑翔陈左宁朱建涛蒋金虎
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1