CN110806949A - 一种校验数据生成方法及系统、数据校验方法及系统 - Google Patents

一种校验数据生成方法及系统、数据校验方法及系统 Download PDF

Info

Publication number
CN110806949A
CN110806949A CN201911071977.1A CN201911071977A CN110806949A CN 110806949 A CN110806949 A CN 110806949A CN 201911071977 A CN201911071977 A CN 201911071977A CN 110806949 A CN110806949 A CN 110806949A
Authority
CN
China
Prior art keywords
data
file
verification
verified
source data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911071977.1A
Other languages
English (en)
Inventor
钟国裕
张龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amethystum Storage Technology Co Ltd
Original Assignee
Amethystum Storage Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amethystum Storage Technology Co Ltd filed Critical Amethystum Storage Technology Co Ltd
Priority to CN201911071977.1A priority Critical patent/CN110806949A/zh
Publication of CN110806949A publication Critical patent/CN110806949A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种校验数据生成方法及系统、数据校验方法及系统,将源数据文件分成大小均为p的n个数据块文件;根据所述源数据文件通过校验算法生成校验特征码;设置所述数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号。本发明可以通过对数据块文件的文件名进行命名设置,实现对源数据文件的完整性校验和准确性校验。

Description

一种校验数据生成方法及系统、数据校验方法及系统
技术领域
本发明涉及数据校验技术领域,更具体地,涉及一种校验数据生成方法及系统、数据校验方法及系统。
背景技术
常用的数据校验技术,是基于块设备、SAN设备、NAS设备等,缺少对系统级的大容量光存储系统的数据校验技术。
块设备是将数据存储在固定大小的块中,每个块都有自己的地址而且每个块都能独立于其它块而读写的存储设备。SAN(Storage Area Network,存储区域网络)设备是通过FC(Fibre Channel,网状通道)交换机连接存储设备和服务器,建立一个专用存储网络,而NAS(Network Attached Storage:网络附属存储)设备则是利用现有的以太网连接存储设备和服务器。SAN设备和NAS设备均允许独立地增加存储容量,也允许任何服务器连接到任何存储设备,这样不管数据放在哪里,服务器都可以直接存取所需的数据。
目前已有的大容量光存储系统主要有光盘库、光盘塔和光盘阵列三种。光盘库是由光盘驱动器、盘槽架、机械手和定位系统组成。光盘塔的物理结构为多个光盘驱动器通过SCSI总线和SCSI适配器与主机相连接,逻辑结构为光盘上的数据不分块,每个光盘上的数据都是完整的。光盘阵列的物理结构与光盘塔相同,但逻辑结构不相同,光盘阵列的数据分块存放在所有的数据光盘上,并且具有校验盘。
发明内容
本发明旨在克服上述现有技术的至少一种缺陷(不足),提供一种校验数据生成方法及系统、数据校验方法及系统,通过对数据块文件的文件名进行命名设置,实现对源数据文件的完整性校验和准确性校验。
本发明采取的技术方案是:
一种校验数据生成方法,包括以下步骤:
将源数据文件分成大小均为p的n个数据块文件;
根据所述源数据文件通过校验算法生成校验特征码;
设置所述数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号;
n为大于或等于1的整数。
源数据标识可以标识这些数据块文件是由哪个源数据文件划分出的,校验特征码可以唯一标识和验证源数据文件,数据块文件编号是由同一个源数据文件划分出的不同数据块文件之间的区分标识。通过设置数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,可以对源数据文件进行完整性和准确性的校验。
当需要校验源数据文件的完整性时,先根据源数据标识获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到数据块文件编号,根据数据块文件编号是否连续即可判断待校验的源数据文件是否有缺失。
当需要校验源数据文件的准确性时,先根据待校验的源数据文件生成待校验特征码,并获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到校验特征码,根据待校验特征码和校验特征码是否一致即可判断待校验的源数据文件是否准确。
进一步地,所述校验数据生成方法还包括以下步骤:
每m个所述数据块文件计算出一个校验数据文件;
设置所述校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号;
m为大于或等于1的整数,m小于或等于n。
校验数据标识可以标识校验数据文件是对应哪个源数据文件,校验数据文件编号是同一个源数据文件对应的不同校验数据文件之间的区分标识。通过校验数据文件可以确定源数据文件出错的位置。
当判断待校验的源数据文件是不准确时,先将待校验源数据文件分成大小均为p的n个待校验数据块文件,每m个待校验数据块文件计算出一个待校验数据文件,然后根据校验数据标识获取该待校验的源数据文件对应的校验数据文件,根据待校验数据文件与校验数据文件之间的对比结果即可判断具体是哪个数据块文件出错,从而定位出待校验源数据文件出错的位置。
一种数据校验方法,用于校验待校验源数据文件,包括以下步骤:
根据源数据标识获取待校验源数据文件对应的如上所述的数据块文件的文件名;
解析所述数据块文件的文件名,得到数据块文件编号;
根据数据块文件编号的连续性,判断待校验源数据文件的完整性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以根据源数据标识可以得到待校验源数据文件对应的数据块文件,解析这些数据块文件的文件名可以得到数据块文件编号,而数据块文件是由源数据文件划分出来的,所以根据数据块文件编号是否连续,可以判断源数据文件是否完整。如果数据块文件编号是连续的,则判断源数据文件是完整的;如果数据块文件编号存在缺失的,则判断源数据文件缺失了对应该缺失编号的数据块文件。
一种数据校验方法,用于校验待校验源数据文件,包括以下步骤:
根据源数据标识获取待校验源数据文件对应的如权利要求1所述的数据块文件的文件名;解析所述数据块文件的文件名,得到校验特征码;
根据所述待校验源数据文件通过校验算法生成待校验特征码;
根据所述待校验特征码和所述校验特征码之间的对比结果,判断待校验源数据文件的准确性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以根据源数据标识可以获取到待校验源数据文件对应的数据块文件,解析这些数据块文件的文件名可以得到校验特征码,而根据待校验源数据文件可以重新得到待校验特征码,对比所述校验特征码和所述待校验特征码,根据两者之间的对比结果,可以判断待校验源数据文件是否准确。
进一步地,所述数据校验方法还包括以下步骤:
当判断待校验源数据文件不准确时,根据校验数据标识获取待校验源数据文件对应的如上所述的校验数据文件;
将待校验源数据文件分成大小均为p的n个待校验数据块文件;
每m个待校验数据块文件计算出一个待校验数据文件;
根据所述待校验数据文件和所述校验数据文件之间的对比结果,判断待校验源数据文件损坏的位置。
当判断待校验源数据文件不准确时,由于校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号,所以根据校验数据标识可以获取待校验源数据文件对应的校验数据文件,而待校验源数据文件可以重新生成待校验数据文件,对比所述校验数据文件和所述待校验数据文件,根据两者之间的对比结果,可以判断待校验源数据文件损坏的位置。
一种校验数据生成系统,包括数据划分模块、校验算法模块和数据块命名模块;
所述数据划分模块,用于将源数据文件分成大小均为p的n个数据块文件,n为大于或等于1的整数;
所述校验算法模块,用于根据所述源数据文件通过校验算法生成校验特征码;
所述数据块命名模块,用于设置所述数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号。
源数据标识可以标识这些数据块文件是由哪个源数据文件划分出的,校验特征码可以唯一标识和验证源数据文件,数据块文件编号是由同一个源数据文件划分出的不同数据块文件之间的区分标识。通过数据块命名模块设置数据块文件的文件名可以对源数据文件进行完整性和准确性的校验。
当需要校验源数据文件的完整性时,先根据源数据标识获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到数据块文件编号,根据数据块文件编号是否连续即可判断待校验的源数据文件是否有缺失。
当需要校验源数据文件的准确性时,先根据待校验的源数据文件生成待校验特征码,并获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到校验特征码,根据待校验特征码和校验特征码是否一致即可判断待校验的源数据文件是否准确。
进一步地,所述校验数据生成系统还包括校验生成模块和校验数据命名模块;
所述校验生成模块,用于对每m个数据块文件计算出一个校验数据文件,m为大于或等于1的整数,m小于或等于n;
所述校验数据命名模块,用于设置所述校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号。
校验数据标识可以标识校验数据文件是对应哪个源数据文件,校验数据文件编号是同一个源数据文件对应的不同校验数据文件之间的区分标识。通过校验数据文件可以确定源数据文件出错的位置。
当判断待校验的源数据文件是不准确时,先根据待校验源数据文件重新计算出一个待校验数据文件,然后根据校验数据标识获取该待校验的源数据文件对应的校验数据文件,根据待校验数据文件与校验数据文件之间的对比结果即可判断具体是哪个数据块文件出错,从而定位出待校验源数据文件出错的位置。
一种数据校验系统,用于校验待校验源数据文件,包括数据获取模块、文件解析模块和编号对比模块;
所述数据获取模块,用于根据源数据标识获取待校验源数据文件对应的如上所述的数据块文件的文件名;
所述文件解析模块,用于解析所述数据块文件的文件名,得到数据块文件编号;
所述编号对比模块,用于根据数据块文件编号的连续性,判断待校验源数据文件的完整性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以数据获取模块根据源数据标识可以得到待校验源数据文件对应的数据块文件,文件解析模块解析这些数据块文件的文件名可以得到数据块文件编号,而数据块文件是由源数据文件划分出来的,所以根据数据块文件编号是否连续判断源数据文件是否完整。
一种数据校验系统,用于校验待校验源数据文件,包括数据获取模块、校验算法模块、文件解析模块和特征码对比模块;
所述数据获取模块,用于根据源数据标识获取待校验源数据文件对应的如上所述的数据块文件;
所述文件解析模块,用于解析所述数据块文件的文件名,得到校验特征码;
所述校验算法模块,用于根据所述待校验源数据文件通过校验算法生成待校验特征码;
所述特征码对比模块,用于对比所述待校验特征码和所述校验特征码,根据所述待校验特征码和所述校验特征码之间的对比结果,判断待校验源数据文件的准确性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以数据获取模块可以根据源数据标识获取到待校验源数据文件对应的数据块文件,文件解析模块解析这些数据块文件的文件名可以得到校验特征码,而通过校验算法模块可以根据待校验源数据文件重新得到待校验特征码,特征码对比模块对比所述校验特征码和所述待校验特征码,根据两者之间的对比结果,可以判断待校验源数据文件是否准确。
进一步地,所述数据校验系统还包括数据划分模块、校验生成模块和校验数据对比模块;
所述数据获取模块,还用于当特征码对比模块判断待校验源数据文件不准确时,根据校验数据标识获取如上所述的校验数据文件;
所述数据划分模块,用于将待校验源数据文件分成大小均为p的n个待校验数据块文件;所述校验生成模块,用于对每m个待校验数据块文件计算出一个待校验数据文件;
所述校验数据对比模块,用于对比所述待校验数据文件和所述校验数据文件,根据所述待校验数据文件和所述校验数据文件之间的对比结果,判断待校验源数据文件损坏的位置。
当特征码对比模块判断待校验源数据文件不准确时,需要进一步确定待校验源数据文件损坏的位置。由于校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号,所以数据获取模块根据校验数据标识可以获取待校验源数据文件对应的校验数据文件,而通过数据划分模块和校验生成模块可以重新根据待校验源数据文件生成待校验数据文件,校验数据对比模块对比所述校验数据文件和所述待校验数据文件,根据两者之间的对比结果,可以判断待校验源数据文件损坏的位置。
与现有技术相比,本发明的有益效果为:
(1)通过将源数据文件分成若干个数据块文件,并且使得数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,可以根据数据块文件的文件名中的校验特征码校验源数据文件的完整性,还可以根据数据块文件的文件名中的数据块文件编号校验源数据文件的准确性;
(2)通过设置数据块文件和校验数据文件的命名规则,可以将校验的空间开销转为逻辑开销,减少空间的占用率,减少对系统和其他服务的依赖,容易移植和应用到其他存储系统上;
(3)能够适应于光存储介质的数据校验特点,尤其是系统级的海量冷数据校验。
附图说明
图1为本发明实施例1的校验数据生成方法流程图。
图2为本发明实施例1和实施例4的校验数据生成流程示意图。
图3为本发明实施例2的数据校验方法示意图。
图4为本发明实施例3的数据校验方法示意图。
图5为本发明实施例4的校验数据生成系统组成图。
图6为本发明实施例5的数据校验系统组成图。
图7为本发明实施例6的数据校验系统组成图。
具体实施方式
本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
实施例1
如图1所示,本实施例提供一种校验数据生成方法,包括以下步骤:
S1.将源数据文件分成大小均为p的n个数据块文件;
S2.根据所述源数据文件通过校验算法生成校验特征码;
S3.设置所述数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号;
n为大于或等于1的整数。
源数据标识可以标识这些数据块文件是由哪个源数据文件划分出的,校验特征码可以唯一标识和验证源数据文件,数据块文件编号是由同一个源数据文件划分出的不同数据块文件之间的区分标识。
通过数据块文件的文件名可以对源数据文件进行完整性和准确性的校验。具体地,当需要校验源数据文件的完整性时,先根据源数据标识获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到数据块文件编号,根据数据块文件编号是否连续即可判断待校验的源数据文件是否有缺失。当需要校验源数据文件的准确性时,先根据待校验的源数据文件生成待校验特征码,并获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到校验特征码,根据待校验特征码和校验特征码是否一致即可判断待校验的源数据文件是否准确。
在具体实施过程中,可以是步骤S1和步骤S2同时进行,可以是步骤S1在步骤S2执行前执行,也可以是步骤S2在步骤S1执行前执行。
在本实施例中,所述校验数据生成方法还包括以下步骤:
S4.每m个所述数据块文件计算出一个校验数据文件;
S5.设置所述校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号;
m为大于或等于1的整数,m小于或等于n。
校验数据标识可以标识校验数据文件是对应哪个源数据文件,校验数据文件编号是同一个源数据文件对应的不同校验数据文件之间的区分标识。
通过校验数据文件可以确定源数据文件出错的位置。具体地,当判断待校验的源数据文件是不准确时,先将待校验源数据文件按照步骤S1和步骤S4,同样分成大小均为p的n个待校验数据块文件,每m个待校验数据块文件计算出一个待校验数据文件,然后根据校验数据标识获取该待校验的源数据文件对应的校验数据文件,根据待校验数据文件与校验数据文件之间的对比结果即可判断具体是哪个数据块文件出错,从而定位出待校验源数据文件出错的位置。
在具体实施过程中,n不一定是m的整数倍。当n是m的整数倍时,在步骤S4中,每m个数据块文件形成一组计算出一个校验数据文件;当n不是m的整数倍时,在步骤S4中,每m个数据块文件形成一组计算出一个校验数据文件,而最后不足m个数据块文件也形成一组计算出一个校验数据文件。
优选地,所述校验算法为MD5算法,所述校验特征码为MD5码。
根据MD5算法对源数据文件进行数学变换后得到的一个128位(bit)的特征码。根据源数据文件生成128位的MD5码可以唯一地标识和验证源数据文件,而且128位的MD5码也很便于作为文件名的一部分。
优选地,每m个所述数据块文件计算出一个校验数据文件,具体为:每m个所述数据块文件通过异或校验算法计算出一个校验数据文件。
由于异或校验算法可以高效地校验数据是否出错,而对于同一个源数据文件,m个数据块文件中,两个及两个以上的数据块文件在同一个位置出错的概率是微乎其微的,所以异或校验算法是优选的算法。
以p=16MB,m=10,n=35为例。如图2所示,对于一个源数据文件data,按照步骤S1,将源数据文件data分成大小均为16MB的数据块文件,数据块文件共有35个。按照步骤S2,根据源数据文件data通过MD5算法可以计算出其MD5码。按照步骤S3,数据块文件的文件名可以命名为data_<MD5>_<indexD>,文件名中的“data”为标识源数据文件的源数据标识、“MD5”为根据源数据文件计算出的MD5码、“indexD”为数据块文件编号。按照步骤S4,每10个数据块文件计算出一个校验数据文件,也即35个数据块文件可以计算出4个校验数据文件。按照步骤S5,校验数据文件的文件名可以命名为parity_<MD5>_<indexP>,文件名中的“parity”为校验数据标识、“MD5”为根据源数据文件计算出的MD5码、“indexP”为校验数据文件编号。
具体实施过程中,p还可以是32MB、64MB、128MB、256MB、512MB、1024MB、等取值;n还可以是8、14、22、36、44等取值,m还可以是3、6、8、12、15、18等取值,但需满足m在小于或等于n的前提。p、m、n还可以根据源数据文件的大小调整取值。
本实施例通过设置数据块文件和校验数据文件的命名规则,可以将校验的空间开销转为逻辑开销,减少空间的占用率,减少对系统和其他服务的依赖,容易移植和应用到其他存储系统上。
本实施例适合光存储介质的数据校验,尤其是系统级的海量冷数据校验,可以应用在系统级大容量的光存储设备,如光存储阵列等。在具体应用时,可以将本实施例所生成的数据块文件和校验数据文件存储在光存储设备中。
实施例2
如图3所示,本实施例提供一种数据校验方法,用于校验待校验源数据文件,包括以下步骤:
A1.根据源数据标识获取待校验源数据文件对应的如实施例1所述的数据块文件的文件名;
A2.解析所述数据块文件的文件名,得到数据块文件编号;
A3.根据数据块文件编号的连续性,判断待校验源数据文件的完整性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以根据源数据标识可以得到待校验源数据文件对应的数据块文件,解析这些数据块文件的文件名可以得到数据块文件编号,而数据块文件是由源数据文件划分出来的,所以根据数据块文件编号是否连续,可以判断源数据文件是否完整。如果数据块文件编号是连续的,则判断源数据文件是完整的;如果数据块文件编号存在缺失,则判断源数据文件缺失了对应该缺失编号的数据块文件。
在具体实施过程中,可以是步骤A1和步骤A2同时进行,可以是步骤A1在步骤A2执行前执行,也可以是步骤A2在步骤A1执行前执行。
优选地,所述数据校验方法还包括以下步骤:
A4.将待校验源数据文件的完整性判断结果形成报告。
存储设备维护人员可以通过报告有效地监控数据的完整性,及时发现数据丢失并及时采取数据重录或恢复等措施。
如图2所示,同样以p=16MB,m=10,n=35为例,如实施例1所述,数据块文件的文件名为data_<MD5>_<indexD>,则indexD的取值可以为1到35。
如果待校验源数据文件为data,按照步骤A1,根据源数据标识“data”可以从存储设备中找到所有源数据标识为“data”的数据块文件。按照步骤A2,解析这些数据块文件的文件名,可以得到数据块文件编号。按照步骤A3,根据数据块文件编号是否从1到35都是连续的,如果是则判断待校验源数据文件data是完整的,如果否则判断待校验源数据文件data存在缺失。
实施例3
如图4所示,本实施例提供一种数据校验方法,用于校验待校验源数据文件,包括以下步骤:
B1.根据源数据标识获取待校验源数据文件对应的如实施例1所述的数据块文件的文件名;
B2.解析所述数据块文件的文件名,得到校验特征码;
B3.根据所述待校验源数据文件通过校验算法生成待校验特征码;
B4.根据所述待校验特征码和所述校验特征码之间的对比结果,判断待校验源数据文件的准确性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以根据源数据标识可以获取到待校验源数据文件对应的数据块文件,解析这些数据块文件的文件名可以得到校验特征码,而根据待校验源数据文件同样按照实施例1所述的校验算法也可以得到待校验特征码,对比所述校验特征码和所述待校验特征码,根据两者之间的对比结果,可以判断待校验源数据文件是否准确。如果校验特征码和待校验特征码是一致的,则待校验源数据文件是准确的;如果校验特征码和待校验特征码不是一致,则待校验源数据文件是不准确的。
在具体实施过程中,可以是步骤B1和步骤B2同时进行,可以是步骤B1在步骤B2执行前执行,也可以是步骤B2在步骤B1执行前执行。
在本实施例中,所述数据校验方法还包括以下步骤:
B5.当判断待校验源数据文件不准确时,根据校验数据标识获取待校验源数据文件对应的如实施例1所述的校验数据文件;
B6.将待校验源数据文件分成大小均为p的n个待校验数据块文件;
B7.每m个待校验数据块文件计算出一个待校验数据文件;
B8.根据所述待校验数据文件和所述校验数据文件之间的对比结果,判断待校验源数据文件损坏的位置。
当在步骤B4中判断待校验源数据文件不准确时,需要进一步确定待校验源数据文件损坏的位置。由于校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号,所以根据校验数据标识可以获取待校验源数据文件对应的校验数据文件,而待校验源数据文件可以同样按照实施例1中校验数据文件的生成方法生成待校验数据文件,对比所述校验数据文件和所述待校验数据文件,根据两者之间的对比结果,可以判断待校验源数据文件损坏的位置。如果某个校验数据文件与待校验数据文件是不一致的,则损坏的位置应为计算出该校验数据文件的m个数据块文件中。
优选地,所述数据校验方法还包括以下步骤:
B9.将待校验源数据文件的准确性判断结果和/或待校验源数据文件损坏的位置形成报告。
存储设备维护人员可以通过报告有效地监控数据的准确性,及时发现数据损坏并及时采取数据重录或恢复等措施,还可以有针对性地对损坏的位置进行重录或修复。
如图2所示,同样以p=16MB,m=10,n=35为例,如实施例1所述,数据块文件的文件名为data_<MD5>_<indexD>,则indexD的取值可以为1到35,校验数据文件的文件名为parity_<MD5>_<indexP>,则indexP的取值可以为1到4。
如果待校验源数据文件为data,按照步骤B1,根据源数据标识“data”可以从存储设备中找到所有源数据标识为“data”的数据块文件。按照步骤B2,解析这些数据块文件的文件名,可以得到校验特征码。按照步骤B3,同样按照实施例1所述的校验算法可以根据源数据文件data得到待校验特征码。按照步骤B4,如果待校验特征码与校验特征码是一致的,表明待校验源数据文件data是准确的,可以继续校验下一个待校验的源数据文件;如果待校验特征码与校验特征码不一致,表明待校验源数据文件data是不准确的,需要进一步确定待校验源数据文件损坏的位置。
当需要进一步确定待校验源数据文件损坏的位置时,按照步骤B5,待校验源数据文件data对应的校验数据标识为“parity”,根据校验数据标识“parity”可以从存储设备中找到所有校验数据标识为“parity”的校验数据文件。按照步骤B6和步骤B7,同样按照实施例1中校验数据文件的生成方法可以生成4个待校验数据文件。按照步骤B8,一一对应地对比4个待校验数据文件和校验数据文件,第1个待校验数据文件与校验数据文件编号indexP为1的校验数据文件进行对比,第2个待校验数据文件与校验数据文件编号indexP为2的校验数据文件进行对比,以此类推。假设第2个待校验数据文件和第2个校验数据文件是不一致的,则表明出错的位置是第11个到第20个数据块文件。
在本实施例中,所述数据校验方法还可以包括如实施例1所述校验数据生成方法的步骤和/或实施例2所述数据校验方法的步骤。
实施例4
如图5所示,本实施例提供一种校验数据生成系统,包括数据划分模块11、校验算法模块12和数据块命名模块13;
数据划分模块11,用于将源数据文件分成大小均为p的n个数据块文件,n为大于或等于1的整数;
校验算法模块12,用于根据所述源数据文件通过校验算法生成校验特征码;
数据块命名模块13,用于设置所述数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号。
源数据标识可以标识这些数据块文件是由哪个源数据文件划分出的,校验特征码可以唯一标识和验证源数据文件,数据块文件编号是由同一个源数据文件划分出的不同数据块文件之间的区分标识。
通过数据块命名模块13设置数据块文件的文件名可以对源数据文件进行完整性和准确性的校验。具体地,当需要校验源数据文件的完整性时,先根据源数据标识获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到数据块文件编号,根据数据块文件编号是否连续即可判断待校验的源数据文件是否有缺失。当需要校验源数据文件的准确性时,先根据待校验的源数据文件生成待校验特征码,并获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到校验特征码,根据待校验特征码和校验特征码是否一致即可判断待校验的源数据文件是否准确。
在本实施例中,所述校验数据生成系统还包括校验生成模块21和校验数据命名模块22;
校验生成模块21,用于对每m个数据块文件计算出一个校验数据文件,m为大于或等于1的整数,m小于或等于n;
校验数据命名模块22,用于设置所述校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号。
校验数据标识可以标识校验数据文件是对应哪个源数据文件,校验数据文件编号是同一个源数据文件对应的不同校验数据文件之间的区分标识。
通过校验数据文件可以确定源数据文件出错的位置。具体地,当判断待校验的源数据文件是不准确时,先将待校验源数据文件同样分成大小均为p的n个待校验数据块文件,每m个待校验数据块文件计算出一个待校验数据文件,然后根据校验数据标识获取该待校验的源数据文件对应的校验数据文件,根据待校验数据文件与校验数据文件之间的对比结果即可判断具体是哪个数据块文件出错,从而定位出待校验源数据文件出错的位置。
在具体实施过程中,n不一定是m的整数倍。当n是m的整数倍时,校验生成模块21将每m个数据块文件形成一组计算出一个校验数据文件;当n不是m的整数倍时,校验生成模块21将每m个数据块文件形成一组计算出一个校验数据文件,而最后不足m个数据块文件也形成一组计算出一个校验数据文件。
优选地,校验算法模块12,具体用于根据所述源数据文件通过MD5算法生成MD5码。
根据MD5算法对源数据文件进行数学变换后得到的一个128位(bit)的特征码。根据源数据文件生成128位的MD5码可以唯一地标识和验证源数据文件,而且128位的MD5码也很便于作为文件名的一部分。
优选地,校验生成模块21,具体用于每m个所述数据块文件通过异或校验算法计算出一个校验数据文件。
由于异或校验算法可以高效地校验数据是否出错,而对于同一个源数据文件,m个数据块文件中,两个及两个以上的数据块文件在同一个位置出错的概率是微乎其微的,所以异或校验算法是优选的算法。
以p=16MB,m=10,n=35为例。如图2所示,对于一个源数据文件data,数据划分模块11将源数据文件data分成大小均为16MB的数据块文件,数据块文件共有35个。校验算法模块12根据源数据文件data通过MD5算法可以计算出其MD5码。数据块命名模块13对数据块文件的文件名命名为data_<MD5>_<indexD>,文件名中的“data”为标识源数据文件的源数据标识、“MD5”为根据源数据文件计算出的MD5码、“indexD”为数据块文件编号。校验生成模块21对每10个数据块文件计算出一个校验数据文件,也即35个数据块文件可以计算出4个校验数据文件。校验数据命名模块22对校验数据文件的文件名命名为parity_<MD5>_<indexP>,文件名中的“parity”为校验数据标识、“MD5”为根据源数据文件计算出的MD5码、“indexP”为校验数据文件编号。
具体实施过程中,p还可以是32MB、64MB、128MB、256MB、512MB、1024MB、等取值;n还可以是8、14、22、36、44等取值,m还可以是3、6、8、12、15、18等取值,但需满足m在小于或等于n的前提。p、m、n还可以根据源数据文件的大小调整取值。
本实施例通过设置数据块文件和校验数据文件的命名规则,可以将校验的空间开销转为逻辑开销,减少空间的占用率,减少对系统和其他服务的依赖,容易移植和应用到其他存储系统上。
本实施例适合光存储介质级别的数据校验,尤其是系统级的海量冷数据校验,可以应用在系统级大容量的光存储设备,如光存储阵列等。在具体应用时,可以将本实施例所生成的数据块文件和校验数据文件存储在光存储设备中。
实施例5
一种数据校验系统,用于校验待校验源数据文件,包括数据获取模块31、文件解析模块32和编号对比模块33;
数据获取模块31,用于根据源数据标识获取待校验源数据文件对应的如实施例4所述的数据块文件的文件名;
文件解析模块32,用于解析所述数据块文件的文件名,得到数据块文件编号;
编号对比模块33,用于根据数据块文件编号的连续性,判断待校验源数据文件的完整性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以数据获取模块31根据源数据标识可以得到待校验源数据文件对应的数据块文件,文件解析模块32解析这些数据块文件的文件名可以得到数据块文件编号,而数据块文件是由源数据文件划分出来的,所以根据数据块文件编号是否连续判断源数据文件是否完整。如果数据块文件编号是连续的,则判断源数据文件是完整的;如果数据块文件编号存在缺失,则判断源数据文件缺失了对应该缺失编号的数据块文件。
优选地,所述数据校验系统还包括报告生成模块;
所述报告生成模块,用于将待校验源数据文件的完整性判断结果形成报告。
存储设备维护人员可以通过报告有效地监控数据的完整性,及时发现数据丢失并及时采取数据重录或恢复等措施。
如图2所示,同样以p=16MB,m=10,n=35为例,如实施例4所述,数据块文件的文件名为data_<MD5>_<indexD>,则indexD的取值可以为1到35。
如果待校验源数据文件为data,数据获取模块31根据源数据标识“data”可以从存储设备中找到所有源数据标识为“data”的数据块文件。文件解析模块32解析这些数据块文件的文件名,可以得到数据块文件编号。编号对比模块33根据数据块文件编号是否从1到35都是连续的,如果是则判断待校验源数据文件data是完整的,如果否则判断待校验源数据文件data存在缺失。
实施例6
如图7所示,本实施例提供一种数据校验系统,用于校验待校验源数据文件,包括数据获取模块31、校验算法模块12、文件解析模块32和特征码对比模块34;
数据获取模块31,用于根据源数据标识获取待校验源数据文件对应的如实施例4所述的数据块文件的文件名;
文件解析模块32,用于解析所述数据块文件的文件名,得到校验特征码;
校验算法模块12,用于根据所述待校验源数据文件通过校验算法生成待校验特征码;
特征码对比模块34,用于对比所述待校验特征码和所述校验特征码,根据所述待校验特征码和所述校验特征码之间的对比结果,判断待校验源数据文件的准确性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以数据获取模块31可以根据源数据标识获取到待校验源数据文件对应的数据块文件,文件解析模块32解析这些数据块文件的文件名可以得到校验特征码,而通过校验算法模块12可以如实施例4所述根据待校验源数据文件得到待校验特征码,特征码对比模块34对比所述校验特征码和所述待校验特征码,根据两者之间的对比结果,可以判断待校验源数据文件是否准确。如果特征码对比模块34判断校验特征码和待校验特征码是一致的,则待校验源数据文件是准确的;如果特征码对比模块34判断校验特征码和待校验特征码不是一致,则待校验源数据文件是不准确的。
在本实施例中,所述数据校验系统还包括数据划分模块11、校验生成模块21和校验数据对比模块35;
数据获取模块31,还用于当特征码对比模块34判断待校验源数据文件不准确时,根据校验数据标识获取获取如实施例4所述的校验数据文件;
数据划分模块11,用于将待校验源数据文件分成大小均为p的n个待校验数据块文件;
校验生成模块21,用于对每m个待校验数据块文件计算出一个待校验数据文件;
校验数据对比模块35,用于对比所述待校验数据文件和所述校验数据文件,根据所述待校验数据文件和所述校验数据文件之间的对比结果,判断待校验源数据文件损坏的位置。
当特征码对比模块34判断待校验源数据文件不准确时,需要进一步确定待校验源数据文件损坏的位置。由于校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号,所以数据获取模块31根据校验数据标识可以获取待校验源数据文件对应的校验数据文件,而通过数据划分模块11和校验生成模块21可以如实施例4所述根据待校验源数据文件生成待校验数据文件,校验数据对比模块35对比所述校验数据文件和所述待校验数据文件,根据两者之间的对比结果,可以判断待校验源数据文件损坏的位置。如果校验数据对比模块35判断出某个校验数据文件与待校验数据文件是不一致的,则损坏的位置应为计算出该校验数据文件的m个数据块文件中。
优选地,所述数据校验系统还包括报告生成模块;
所述报告生成模块,用于将待校验源数据文件的准确性判断结果和/或待校验源数据文件损坏的位置形成报告。
存储设备维护人员可以通过报告有效地监控数据的准确性,及时发现数据损坏并及时采取数据重录或恢复等措施,还可以有针对性地对损坏的位置进行重录或修复。
如图2所示,同样以p=16MB,m=10,n=35为例,如实施例4所述,数据块文件的文件名为data_<MD5>_<indexD>,则indexD的取值可以为1到35,校验数据文件的文件名为parity_<MD5>_<indexP>,则indexP的取值可以为1到4。
如果待校验源数据文件为data,数据获取模块31根据源数据标识“data”可以从存储设备中找到所有源数据标识为“data”的数据块文件。文件解析模块32解析这些数据块文件的文件名,可以得到校验特征码。校验算法模块12同样按照实施例4所述可以根据源数据文件data得到待校验特征码。如果特征码对比模块34判断待校验特征码与校验特征码是一致的,表明待校验源数据文件data是准确的,可以继续校验下一个待校验的源数据文件;如果特征码对比模块34判断待校验特征码与校验特征码不一致,表明待校验源数据文件data是不准确的,需要进一步确定待校验源数据文件损坏的位置。
当需要进一步确定待校验源数据文件损坏的位置时,待校验源数据文件data对应的校验数据标识为“parity”,数据获取模块31根据校验数据标识“parity”可以从存储设备中找到所有校验数据标识为“parity”的校验数据文件。通过数据划分模块11和校验生成模块21同样按照实施例5所述可以生成4个待校验数据文件。校验数据对比模块35一一对应地对比4个待校验数据文件和校验数据文件,第1个待校验数据文件与校验数据文件编号indexP为1的校验数据文件进行对比,第2个待校验数据文件与校验数据文件编号indexP为2的校验数据文件进行对比,以此类推。假设对比结果为第2个待校验数据文件和第2个校验数据文件是不一致的,则表明出错的位置是第11个到第20个数据块文件。
在本实施例中,所述数据校验系统还可以包括如实施例4所述校验数据生成系统的模块和/或实施例5所述数据校验系统的模块。
显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (10)

1.一种校验数据生成方法,其特征在于,包括以下步骤:
将源数据文件分成大小均为p的n个数据块文件;
根据所述源数据文件通过校验算法生成校验特征码;
设置所述数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号;
n为大于或等于1的整数。
2.根据权利要求1所述的校验数据生成方法,其特征在于,还包括以下步骤:
每m个所述数据块文件计算出一个校验数据文件;
设置所述校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号;
m为大于或等于1的整数,m小于或等于n。
3.一种数据校验方法,用于校验待校验源数据文件,其特征在于,包括以下步骤:
根据源数据标识获取待校验源数据文件对应的如权利要求1所述的数据块文件的文件名;
解析所述数据块文件的文件名,得到数据块文件编号;
根据数据块文件编号的连续性,判断待校验源数据文件的完整性。
4.一种数据校验方法,用于校验待校验源数据文件,其特征在于,包括以下步骤:
根据源数据标识获取待校验源数据文件对应的如权利要求1所述的数据块文件的文件名;
解析所述数据块文件的文件名,得到校验特征码;
根据所述待校验源数据文件通过校验算法生成待校验特征码;
根据所述待校验特征码和所述校验特征码之间的对比结果,判断待校验源数据文件的准确性。
5.根据权利要求4所述的一种数据校验方法,其特征在于,还包括以下步骤:
当判断待校验源数据文件不准确时,根据校验数据标识获取待校验源数据文件对应的如权利要求2所述的校验数据文件;
将待校验源数据文件分成大小均为p的n个待校验数据块文件;
每m个待校验数据块文件计算出一个待校验数据文件;
根据所述待校验数据文件和所述校验数据文件之间的对比结果,判断待校验源数据文件损坏的位置。
6.一种校验数据生成系统,其特征在于,包括数据划分模块、校验算法模块和数据块命名模块;
所述数据划分模块,用于将源数据文件分成大小均为p的n个数据块文件,n为大于或等于1的整数;
所述校验算法模块,用于根据所述源数据文件通过校验算法生成校验特征码;
所述数据块命名模块,用于设置所述数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号。
7.根据权利要求6所述的校验数据生成系统,其特征在于,还包括校验生成模块和校验数据命名模块;
所述校验生成模块,用于对每m个数据块文件计算出一个校验数据文件,m为大于或等于1的整数,m小于或等于n;
所述校验数据命名模块,用于设置所述校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号。
8.一种数据校验系统,用于校验待校验源数据文件,其特征在于,包括数据获取模块、文件解析模块和编号对比模块;
所述数据获取模块,用于根据源数据标识获取待校验源数据文件对应的如权利要求6所述的数据块文件的文件名;
所述文件解析模块,用于解析所述数据块文件的文件名,得到数据块文件编号;
所述编号对比模块,用于根据数据块文件编号的连续性,判断待校验源数据文件的完整性。
9.一种数据校验系统,用于校验待校验源数据文件,其特征在于,包括数据获取模块、校验算法模块、文件解析模块和特征码对比模块;
所述数据获取模块,用于根据源数据标识获取待校验源数据文件对应的如权利要求6所述的数据块文件的文件名;
所述文件解析模块,用于解析所述数据块文件的文件名,得到校验特征码;
所述校验算法模块,用于根据所述待校验源数据文件通过校验算法生成待校验特征码;
所述特征码对比模块,用于对比所述待校验特征码和所述校验特征码,根据所述待校验特征码和所述校验特征码之间的对比结果,判断待校验源数据文件的准确性。
10.根据权利要求9所述的一种数据校验系统,其特征在于,还包括数据划分模块、校验生成模块和校验数据对比模块;
所述数据获取模块,还用于当特征码对比模块判断待校验源数据文件不准确时,根据校验数据标识获取如权利要求7所述的校验数据文件;
所述数据划分模块,用于将待校验源数据文件分成大小均为p的n个待校验数据块文件;
所述校验生成模块,用于对每m个待校验数据块文件计算出一个待校验数据文件;
所述校验数据对比模块,用于对比所述待校验数据文件和所述校验数据文件,根据所述待校验数据文件和所述校验数据文件之间的对比结果,判断待校验源数据文件损坏的位置。
CN201911071977.1A 2019-11-05 2019-11-05 一种校验数据生成方法及系统、数据校验方法及系统 Pending CN110806949A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911071977.1A CN110806949A (zh) 2019-11-05 2019-11-05 一种校验数据生成方法及系统、数据校验方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911071977.1A CN110806949A (zh) 2019-11-05 2019-11-05 一种校验数据生成方法及系统、数据校验方法及系统

Publications (1)

Publication Number Publication Date
CN110806949A true CN110806949A (zh) 2020-02-18

Family

ID=69501266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911071977.1A Pending CN110806949A (zh) 2019-11-05 2019-11-05 一种校验数据生成方法及系统、数据校验方法及系统

Country Status (1)

Country Link
CN (1) CN110806949A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111884818A (zh) * 2020-08-25 2020-11-03 中移(杭州)信息技术有限公司 数据文件处理方法、系统、服务器及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004185188A (ja) * 2002-12-02 2004-07-02 Fit:Kk データの転送処理方法及びシステム並びにデータ転送処理用プログラム
CN102915325A (zh) * 2012-08-11 2013-02-06 深圳市极限网络科技有限公司 基于md5哈希列表的文件分解与组合技术
CN103412929A (zh) * 2013-08-16 2013-11-27 蓝盾信息安全技术股份有限公司 一种海量数据的存储方法
CN103984607A (zh) * 2013-02-08 2014-08-13 华为技术有限公司 分布式存储的方法、装置和系统
CN104134447A (zh) * 2014-05-04 2014-11-05 武汉光忆科技有限公司 一种光盘存储系统及光盘数据读写方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004185188A (ja) * 2002-12-02 2004-07-02 Fit:Kk データの転送処理方法及びシステム並びにデータ転送処理用プログラム
CN102915325A (zh) * 2012-08-11 2013-02-06 深圳市极限网络科技有限公司 基于md5哈希列表的文件分解与组合技术
CN103984607A (zh) * 2013-02-08 2014-08-13 华为技术有限公司 分布式存储的方法、装置和系统
CN103412929A (zh) * 2013-08-16 2013-11-27 蓝盾信息安全技术股份有限公司 一种海量数据的存储方法
CN104134447A (zh) * 2014-05-04 2014-11-05 武汉光忆科技有限公司 一种光盘存储系统及光盘数据读写方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111884818A (zh) * 2020-08-25 2020-11-03 中移(杭州)信息技术有限公司 数据文件处理方法、系统、服务器及存储介质
CN111884818B (zh) * 2020-08-25 2022-12-27 中移(杭州)信息技术有限公司 数据文件处理方法、系统、服务器及存储介质

Similar Documents

Publication Publication Date Title
CN105122213B (zh) 用于数据存储系统中的错误检测和纠正的方法和装置
US10725692B2 (en) Data storage method and apparatus
CN100390745C (zh) 在处理数据时检验数据完整性的装置及方法
CN107015881B (zh) 数据存储驱动器中的增强的低开销数据保护
US8020074B2 (en) Method for auto-correction of errors in a RAID memory system
US7917810B2 (en) Method for detecting problematic disk drives and disk channels in a RAID memory system based on command processing latency
CN110837660A (zh) 一种数据存储方法及系统、数据校验方法及系统
CN102937922B (zh) 查询和修复数据
US10877843B2 (en) RAID systems and methods for improved data recovery performance
CN102981927B (zh) 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统
US7774643B2 (en) Method and apparatus for preventing permanent data loss due to single failure of a fault tolerant array
CN105468479B (zh) 一种磁盘阵列raid坏块处理方法及装置
CN102708019A (zh) 一种硬盘数据恢复方法、装置及系统
US9136010B2 (en) Method for generating physical identifier in storage device and machine-readable storage medium
JP2008525898A (ja) シンドローム生成及びデータ復旧のための方法及びシステム
CN109726036B (zh) 一种存储系统中的数据重构方法和装置
CN115292266B (zh) 一种基于存储器的高可靠日志存储方法
CN108141229A (zh) 损坏数据的高效检测
CN104375905A (zh) 一种基于数据块的增量备份的方法和系统
CN110806949A (zh) 一种校验数据生成方法及系统、数据校验方法及系统
CN104205097B (zh) 一种去重方法装置与系统
US20030163757A1 (en) RAID subsystem and data input/output and recovery method in disk error mode
CN106708445B (zh) 链路选择方法及装置
US6985971B2 (en) Testing method of array configuration for multiple disk-array system
CN116339644B (zh) 一种独立磁盘冗余阵列创建方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200218

RJ01 Rejection of invention patent application after publication