CN110837660A - 一种数据存储方法及系统、数据校验方法及系统 - Google Patents
一种数据存储方法及系统、数据校验方法及系统 Download PDFInfo
- Publication number
- CN110837660A CN110837660A CN201911071281.9A CN201911071281A CN110837660A CN 110837660 A CN110837660 A CN 110837660A CN 201911071281 A CN201911071281 A CN 201911071281A CN 110837660 A CN110837660 A CN 110837660A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- data block
- verification
- verified
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000013524 data verification Methods 0.000 title claims abstract description 45
- 238000013500 data storage Methods 0.000 title claims abstract description 30
- 238000012795 verification Methods 0.000 claims abstract description 249
- 230000003287 optical effect Effects 0.000 claims abstract description 73
- 230000001172 regenerating effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (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;
设置所述校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号;
将所述校验数据文件存储在光存储设备中。
校验数据标识可以标识校验数据文件是对应哪个源数据文件,校验数据文件编号是同一个源数据文件对应的不同校验数据文件之间的区分标识。通过校验数据文件可以确定源数据文件出错的位置。通过校验数据文件还可以在数据块文件和数据块文件副本不一致时,判断是数据块文件出错还是数据块文件副本出错。
一种数据校验方法,用于校验待校验源数据文件,包括以下步骤:
根据源数据标识,从光存储设备中某个分布节点下获取待校验源数据文件对应的如上所述的数据块文件;
从光存储设备中另一个分布节点下获取如权利要求1所述的数据块文件副本;
根据所述数据块文本和所述数据块文件副本之间的对比结果,判断待校验源数据文件在光存储设备中不同分布节点下的一致性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以根据源数据标识可以从某个分布节点下得到待校验源数据文件对应的数据块文件,同时可以根据预设的数据块文件与数据块文件副本之间的关联关系或者预设的数据块文件副本存储位置或者数据块文件副本的文件名等等,在不同的分布节点下可以得到待校验源数据文件对应的数据块文件副本,对数据块文件和数据块文件副本进行比较,根据数据块文件和数据块文件副本之间是否一致即可判断待校验源数据文件在光存储设备中不同分布节点下是否一致。
进一步地,所述数据校验方法还包括以下步骤:
当判断待校验源数据文件在光存储设备中不同分布节点下存在不一致时,从光存储设备中根据校验数据标识获取待校验源数据文件对应的如权利要求2所述的校验数据文件;
每m个所述数据块文件计算出一个待校验数据文件;
根据所述待校验数据文件和所述校验数据文件之间的对比结果,查找出发生错误的数据块文件。
由于校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号,所以根据校验数据标识可以获取待校验源数据文件对应的校验数据文件,而数据块文件可以重新生成待校验数据文件,对比所述校验数据文件和所述待校验数据文件,根据两者之间的对比结果,可以判断待校验源数据文件发生错误的位置,也即可以查找出具体发生错误的数据块文件。
进一步地,所述数据校验方法还包括以下步骤:
当没有查找出发生错误的数据块文件时,根据所述数据块文件重新生成新的数据块文件副本,将新的数据块文件副本替换旧的数据块文件副本。
当查找出发生错误的数据块文件时,表明数据块文件发生了错误;当没有查找出发生错误的数据块文件时,表明数据块文件副本发生了错误,此时根据准确的数据块文件重新生成数据块文件副本,可以替换掉发生错误的数据块文件副本。
一种数据存储系统,包括数据划分模块、校验算法模块、数据块命名模块、副本生成模块和数据存储模块;
所述数据划分模块,用于将源数据文件分成大小均为p的n个数据块文件,n为大于或等于1的整数;
所述校验算法模块,用于根据所述源数据文件通过校验算法生成校验特征码;
所述数据块命名模块,用于设置所述数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号;
所述副本生成模块,用于根据所述数据块文件生成数据块文件副本;
所述数据存储模块,用于将所述数据块文件和所述数据块文件副本分别存储在光存储设备中的不同分布节点下。
源数据标识可以标识这些数据块文件是由哪个源数据文件划分出的,校验特征码可以唯一标识和验证源数据文件,数据块文件编号是由同一个源数据文件划分出的不同数据块文件之间的区分标识。
通过数据块命名模块设置数据块文件的文件名可以对源数据文件进行完整性和准确性的校验。
当需要校验源数据文件的完整性时,先根据源数据标识获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到数据块文件编号,根据数据块文件编号是否连续即可判断待校验的源数据文件是否有缺失。
当需要校验源数据文件的准确性时,先根据待校验的源数据文件生成待校验特征码,并获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到校验特征码,根据待校验特征码和校验特征码是否一致即可判断待校验的源数据文件是否准确。
当需要校验源数据文件的一致性时,读取存储在其它分布节点下的数据块文件副本,根据数据块文件副本与数据块文件是否一致即可判断待校验的源数据文件与存储在其它分布节点的副本是否一致。
进一步地,所述数据存储系统还包括校验生成模块和校验数据命名模块;
所述校验生成模块,用于对每m个数据块文件计算出一个校验数据文件,m为大于或等于1的整数,m小于或等于n;
所述校验数据命名模块,用于设置所述校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号;
所述数据存储模块,还用于将所述校验数据文件存储在光存储设备中。
校验数据标识可以标识校验数据文件是对应哪个源数据文件,校验数据文件编号是同一个源数据文件对应的不同校验数据文件之间的区分标识。通过校验数据文件可以确定源数据文件出错的位置。通过校验数据文件还可以在数据块文件和数据块文件副本不一致时,判断是数据块文件出错还是数据块文件副本出错。
一种数据校验系统,用于校验待校验源数据文件,包括数据获取模块、副本获取模块和一致性对比模块;
所述数据获取模块,用于根据源数据标识,从光存储设备中某个分布节点下获取待校验源数据文件对应的如上所述的数据块文件;
所述副本获取模块,用于根据所述数据块文件,从光存储设备中另一个分布节点下获取如上所述的数据块文件副本;
一致性对比模块,用于对比所述数据块文本和所述数据块文件副本,根据所述数据块文本和所述数据块文件副本之间的对比结果,判断待校验源数据文件在光存储设备中不同分布节点下的一致性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以数据获取模块根据源数据标识可以从某个分布节点下得到待校验源数据文件对应的数据块文件,同时副本获取模块可以根据预设的数据块文件与数据块文件副本之间的关联关系或者预设的数据块文件副本存储位置或者数据块文件副本的文件名等等,在不同的分布节点下可以得到待校验源数据文件对应的数据块文件副本,一致性对比模块对数据块文件和数据块文件副本进行比较,根据数据块文件和数据块文件副本之间是否一致即可判断待校验源数据文件在光存储设备中不同分布节点下是否一致。
进一步地,所述数据校验系统还包括校验获取模块、校验生成模块和校验数据对比模块;
所述校验获取模块,用于当一致性对比模块判断待校验源数据文件在光存储设备中不同分布节点下存在不一致时,根据校验数据标识获取待校验源数据文件对应的如上所述的校验数据文件;
所述校验生成模块,用于每m个所述数据块文件计算出一个待校验数据文件;
所述校验算法模块,用于根据所述待校验源数据文件通过校验算法生成待校验特征码;
所述校验数据对比模块,用于对比所述待校验数据文件和所述校验数据文件,根据所述待校验数据文件和所述校验数据文件之间的对比结果,查找出发生错误的数据块文件。
由于校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号,所以校验获取模块根据校验数据标识可以获取待校验源数据文件对应的校验数据文件,而通过校验生成模块数据块文件可以重新生成待校验数据文件,校验数据对比模块对比所述校验数据文件和所述待校验数据文件,根据两者之间的对比结果,可以判断待校验源数据文件发生错误的位置,也即可以查找出具体发生错误的数据块文件。
进一步地,所述数据校验系统还包括副本生成模块;
所述副本生成模块,用于当校验数据对比模块没有查找出发生错误的数据块文件时,根据所述数据块文件重新生成新的数据块文件副本,将新的数据块文件副本替换旧的数据块文件副本。
当校验数据对比模块查找出发生错误的数据块文件时,表明数据块文件发生了错误;当校验数据对比模块没有查找出发生错误的数据块文件时,表明数据块文件副本发生了错误,此时副本生成模块根据准确的数据块文件重新生成数据块文件副本,可以替换掉发生错误的数据块文件副本。
与现有技术相比,本发明的有益效果为:
(1)通过将源数据文件分成若干个数据块文件,并且使得数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,同时根据数据块文件生成数据块文件副本,由此可以根据数据块文件的文件名中的校验特征码校验源数据文件的完整性,还可以根据数据块文件的文件名中的数据块文件编号校验源数据文件的准确性,还可以根据数据块文件与数据块文件副本之间的对比校验源数据文件在分布式光存储设备中的一致性;
(2)通过设置数据块文件和校验数据文件的命名规则,可以将校验的空间开销转为逻辑开销,减少空间的占用率,减少对系统和其他服务的依赖,容易移植和应用到其他存储系统上;
(3)能够适应于光存储介质的数据校验特点,尤其是系统级的海量冷数据校验。
附图说明
图1为本发明实施例1的数据存储方法流程图。
图2为本发明实施例1至实施例4的校验数据生成流程示意图。
图3为本发明实施例2的数据一致性方法示意图。
图4为本发明实施例2的数据完整性方法示意图。
图5为本发明实施例2的数据准确性方法示意图。
图6为本发明实施例3的数据存储系统组成图。
图7为本发明实施例4的数据校验系统组成图。
图8为本发明实施例4的另一个数据校验系统组成图。
具体实施方式
本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
实施例1
如图1所示,本实施例提供一种数据存储方法,包括以下步骤:
A1.将源数据文件分成大小均为p的n个数据块文件,n为大于或等于1的整数;
A2.根据所述源数据文件通过校验算法生成校验特征码;
A3.设置所述数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号;
A4.根据所述数据块文件生成数据块文件副本;
A5.将所述数据块文件和所述数据块文件副本分别存储在光存储设备中的不同分布节点下。
源数据标识可以标识这些数据块文件是由哪个源数据文件划分出的,校验特征码可以唯一标识和验证源数据文件,数据块文件编号是由同一个源数据文件划分出的不同数据块文件之间的区分标识。
通过数据块文件的文件名可以对源数据文件进行完整性和准确性的校验。具体地,当需要校验源数据文件的完整性时,先根据源数据标识获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到数据块文件编号,根据数据块文件编号是否连续即可判断待校验的源数据文件是否有缺失。当需要校验源数据文件的准确性时,先根据待校验的源数据文件生成待校验特征码,并获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到校验特征码,根据待校验特征码和校验特征码是否一致即可判断待校验的源数据文件是否准确。
当需要校验源数据文件的一致性时,读取存储在其它分布节点下的数据块文件副本,根据数据块文件副本与数据块文件是否一致即可判断待校验的源数据文件与存储在其它分布节点的副本是否一致。
“A1”~“A5”仅为各个步骤的编号,并不表示步骤的执行顺序。
优选地,所述数据存储方法还包括以下步骤:
设置所述数据块文件副本的文件名包括源数据标识、校验特征码和数据块文件编号。
与上述数据块文件的准确性校验和完整性校验一样,通过数据块文件副本的文件名可以对源数据文件的副本进行准确性校验和完整性校验。
在本实施例中,所述数据存储方法还包括以下步骤:
A6.每m个所述数据块文件计算出一个校验数据文件,m为大于或等于1的整数,m小于或等于n;
A7.设置所述校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号;A8.将所述校验数据文件存储在光存储设备中。
校验数据标识可以标识校验数据文件是对应哪个源数据文件,校验数据文件编号是同一个源数据文件对应的不同校验数据文件之间的区分标识。
通过校验数据文件可以确定源数据文件出错的位置。具体地,当判断待校验的源数据文件是不准确时,先将待校验源数据文件按照步骤A1和步骤A6,同样分成大小均为p的n个待校验数据块文件,每m个待校验数据块文件计算出一个待校验数据文件,然后根据校验数据标识获取该待校验的源数据文件对应的校验数据文件,根据待校验数据文件与校验数据文件之间的对比结果即可判断具体是哪个数据块文件出错,从而定位出待校验源数据文件出错的位置。
通过校验数据文件还可以在数据块文件和数据块文件副本不一致时,判断是数据块文件出错还是数据块文件副本出错。具体地,当判断数据块文件和数据块文件副本不一致时,按照步骤A6,每m个待校验的数据块文件生成一个待校验数据文件,然后根据校验数据标识获取该待校验的源数据文件对应的校验数据文件,根据待校验数据文件与校验数据文件之间的对比结果即可查找出发生错误的数据块文件,若没有查找出发生错误的数据块文件,则可以表明发生错误的数据块文件副本。
在具体实施过程中,n不一定是m的整数倍。当n是m的整数倍时,在步骤A4中,每m个数据块文件形成一组计算出一个校验数据文件;当n不是m的整数倍时,在步骤A4中,每m个数据块文件形成一组计算出一个校验数据文件,而最后不足m个数据块文件也形成一组计算出一个校验数据文件。
在具体实施过程中,所述校验数据文件可以存储在与数据块文件相同的分布节点下,也可以存储在与数据块文件副本相同的分布节点下,也可以存储在与数据块文件、数据块文件副本均不相同的分布节点下或者专设的校验节点下。
优选地,所述校验算法为MD5算法,所述校验特征码为MD5码。
根据MD5算法对源数据文件进行数学变换后得到的一个128位(bit)的特征码。根据源数据文件生成128位的MD5码可以唯一地标识和验证源数据文件,而且128位的MD5码也很便于作为文件名的一部分。
优选地,每m个所述数据块文件计算出一个校验数据文件,具体为:每m个所述数据块文件通过异或校验算法计算出一个校验数据文件。
由于异或校验算法可以高效地校验数据是否出错,而对于同一个源数据文件,m个数据块文件中,两个及两个以上的数据块文件在同一个位置出错的概率是微乎其微的,所以异或校验算法是优选的算法。
以p=16MB,m=10,n=35为例。如图2所示,对于一个源数据文件data,按照步骤A1,将源数据文件data分成大小均为16MB的数据块文件,数据块文件共有35个。按照步骤A2,根据源数据文件data通过MD5算法可以计算出其MD5码。按照步骤A3,数据块文件的文件名可以命名为data_<MD5>_<indexD>,文件名中的“data”为标识源数据文件的源数据标识、“MD5”为根据源数据文件计算出的MD5码、“indexD”为数据块文件编号。按照步骤A4,根据数据块文件生成数据块文件副本。按照步骤A5,将数据块文件存储在光存储设备中至少一个分布节点下,将数据块文件副本存储在至少一个其他分布节点下。按照步骤A6,每10个数据块文件计算出一个校验数据文件,也即35个数据块文件可以计算出4个校验数据文件。按照步骤A7,校验数据文件的文件名可以命名为parity_<MD5>_<indexP>,文件名中的“parity”为校验数据标识、“MD5”为根据源数据文件计算出的MD5码、“indexP”为校验数据文件编号。按照步骤A8,将校验数据文件存储在光存储设备中至少一个分布节点下和/或专设的校验节点下。
具体实施过程中,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所示,本实施例提供一种数据校验方法,用于校验待校验源数据文件,包括以下步骤:
B1.根据源数据标识,从光存储设备中某个分布节点下获取待校验源数据文件对应的如实施例1所述的数据块文件;
B2.从光存储设备中另一个分布节点下获取如实施例1所述的数据块文件副本;
B3.根据所述数据块文本和所述数据块文件副本之间的对比结果,判断待校验源数据文件在光存储设备中不同分布节点下的一致性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以根据源数据标识可以从某个分布节点下得到待校验源数据文件对应的数据块文件,同时可以根据预设的数据块文件与数据块文件副本之间的关联关系或者预设的数据块文件副本存储位置或者数据块文件副本的文件名等等,在不同的分布节点下可以得到待校验源数据文件对应的数据块文件副本,对数据块文件和数据块文件副本进行比较,如果数据块文件和数据块文件副本是一致的,则判断待校验源数据文件在光存储设备中不同分布节点下是一致的,否则是不一致的。
在本实施例中,所述数据校验方法还包括以下步骤:
B4.当判断待校验源数据文件在光存储设备中不同分布节点下存在不一致时,从光存储设备中根据校验数据标识获取待校验源数据文件对应的如实施例1所述的校验数据文件;
B5.每m个所述数据块文件计算出一个待校验数据文件;
B6.根据所述待校验数据文件和所述校验数据文件之间的对比结果,查找出发生错误的数据块文件。
当在步骤B3中判断数据块文件与数据块文件副本不一致时,需要进一步确定是数据块文件还是数据块文件副本发生了错误。
由于校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号,所以根据校验数据标识可以获取待校验源数据文件对应的校验数据文件,而数据块文件可以同样按照实施例1中校验数据文件的生成方法生成待校验数据文件,对比所述校验数据文件和所述待校验数据文件,根据两者之间的对比结果,可以判断待校验源数据文件发生错误的位置,也即可以查找出具体发生错误的数据块文件。如果某个校验数据文件与待校验数据文件是不一致的,则发生错误的位置应为计算出该校验数据文件的m个数据块文件中。
在本实施例中,所述数据校验方法还包括以下步骤:
当没有查找出发生错误的数据块文件时,根据所述数据块文件重新生成新的数据块文件副本,将新的数据块文件副本替换旧的数据块文件副本。
当查找出发生错误的数据块文件时,表明数据块文件发生了错误;当没有查找出发生错误的数据块文件时,表明数据块文件副本发生了错误,此时根据准确的数据块文件重新生成数据块文件副本,可以替换掉发生错误的数据块文件副本。
如图4所示,优选地,所述数据校验方法还包括以下步骤:
根据源数据标识,从光存储设备中某个分布节点下获取待校验源数据文件对应的如实施例1所述的数据块文件的文件名;
解析所述数据块文件的文件名,得到数据块文件编号;
根据数据块文件编号的连续性,判断待校验源数据文件的完整性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以根据源数据标识可以获取到待校验源数据文件对应的数据块文件,解析这些数据块文件的文件名可以得到数据块文件编号,而数据块文件是由源数据文件划分出来的,所以根据数据块文件编号是否连续,可以判断源数据文件是否完整。如果数据块文件编号是连续的,则判断源数据文件是完整的;如果数据块文件编号存在缺失,则判断源数据文件缺失了对应该缺失编号的数据块文件。
如图2所示,同样以p=16MB,m=10,n=35为例,如实施例1所述,数据块文件的文件名为data_<MD5>_<indexD>,则indexD的取值可以为1到35。
如果待校验源数据文件为data,按照步骤A1,根据源数据标识“data”可以从存储设备中找到所有源数据标识为“data”的数据块文件。按照步骤A2,解析这些数据块文件的文件名,可以得到数据块文件编号。按照步骤A3,根据数据块文件编号是否从1到35都是连续的,如果是则判断待校验源数据文件data是完整的,如果否则判断待校验源数据文件data存在缺失。
若数据块文件副本的文件名,也如数据块文件一样,包括源数据标识、校验特征码和数据块文件编号,则也可以如上述待校验源数据文件的完整性校验一样,对待校验源数据文件的副本进行完整性校验。
如图5所示,优选地,所述数据校验方法还包括以下步骤:
解析所述数据块文件的文件名,得到校验特征码;
根据所述待校验源数据文件通过校验算法生成待校验特征码;
根据所述待校验特征码和所述校验特征码之间的对比结果,判断待校验源数据文件的准确性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以根据源数据标识可以获取到待校验源数据文件对应的数据块文件,解析这些数据块文件的文件名可以得到校验特征码,而根据待校验源数据文件同样按照实施例1所述的校验算法也可以得到待校验特征码,对比所述校验特征码和所述待校验特征码,根据两者之间的对比结果,可以判断待校验源数据文件是否准确。如果校验特征码和待校验特征码是一致的,则待校验源数据文件是准确的;如果校验特征码和待校验特征码不是一致,则待校验源数据文件是不准确的。
优选地,所述数据校验方法还包括以下步骤:
当判断待校验源数据文件不准确时,根据校验数据标识获取待校验源数据文件对应的如实施例1所述的校验数据文件;
将待校验源数据文件分成大小均为p的n个待校验数据块文件;
每m个待校验数据块文件计算出一个待校验数据文件;
根据所述待校验数据文件和所述校验数据文件之间的对比结果,判断待校验源数据文件发生错误的位置。
当判断待校验源数据文件不准确时,需要进一步确定待校验源数据文件发生错误的位置。由于校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号,所以根据校验数据标识可以获取待校验源数据文件对应的校验数据文件,而待校验源数据文件可以同样按照实施例1中校验数据文件的生成方法生成待校验数据文件,对比所述校验数据文件和所述待校验数据文件,根据两者之间的对比结果,可以判断待校验源数据文件发生错误的位置。如果某个校验数据文件与待校验数据文件是不一致的,则发生错误的位置应为计算出该校验数据文件的m个数据块文件中。
如图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所述数据存储方法的步骤。
实施例3
如图6所示,本实施例提供一种数据存储系统,包括数据划分模块11、校验算法模块12、数据块命名模块13、副本生成模块14和数据存储模块30;
数据划分模块11,用于将源数据文件分成大小均为p的n个数据块文件,n为大于或等于1的整数;
校验算法模块12,用于根据所述源数据文件通过校验算法生成校验特征码;
数据块命名模块13,用于设置所述数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号;
副本生成模块14,用于根据所述数据块文件生成数据块文件副本;
数据存储模块30,用于将所述数据块文件和所述数据块文件副本分别存储在光存储设备中的不同分布节点下。
源数据标识可以标识这些数据块文件是由哪个源数据文件划分出的,校验特征码可以唯一标识和验证源数据文件,数据块文件编号是由同一个源数据文件划分出的不同数据块文件之间的区分标识。
通过数据块命名模块13设置数据块文件的文件名可以对源数据文件进行完整性和准确性的校验。具体地,当需要校验源数据文件的完整性时,先根据源数据标识获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到数据块文件编号,根据数据块文件编号是否连续即可判断待校验的源数据文件是否有缺失。当需要校验源数据文件的准确性时,先根据待校验的源数据文件生成待校验特征码,并获取该待校验的源数据文件对应的数据块文件,然后解析该数据块文件的文件名得到校验特征码,根据待校验特征码和校验特征码是否一致即可判断待校验的源数据文件是否准确。当需要校验源数据文件的一致性时,读取存储在其它分布节点下的数据块文件副本,根据数据块文件副本与数据块文件是否一致即可判断待校验的源数据文件与存储在其它分布节点的副本是否一致。
在本实施例中,所述数据存储系统还包括校验生成模块21和校验数据命名模块22;校验生成模块21,用于对每m个数据块文件计算出一个校验数据文件,m为大于或等于1的整数,m小于或等于n;
校验数据命名模块22,用于设置所述校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号;
数据存储模块30,还用于将所述校验数据文件存储在光存储设备中。
校验数据标识可以标识校验数据文件是对应哪个源数据文件,校验数据文件编号是同一个源数据文件对应的不同校验数据文件之间的区分标识。
通过校验数据文件可以确定源数据文件出错的位置。具体地,当判断待校验的源数据文件是不准确时,先将待校验源数据文件同样分成大小均为p的n个待校验数据块文件,每m个待校验数据块文件计算出一个待校验数据文件,然后根据校验数据标识获取该待校验的源数据文件对应的校验数据文件,根据待校验数据文件与校验数据文件之间的对比结果即可判断具体是哪个数据块文件出错,从而定位出待校验源数据文件出错的位置。
通过校验数据文件还可以在数据块文件和数据块文件副本不一致时,判断是数据块文件出错还是数据块文件副本出错。具体地,当判断数据块文件和数据块文件副本不一致时,按照步骤A6,每m个待校验的数据块文件生成一个待校验数据文件,然后根据校验数据标识获取该待校验的源数据文件对应的校验数据文件,根据待校验数据文件与校验数据文件之间的对比结果即可查找出发生错误的数据块文件,若没有查找出发生错误的数据块文件,则可以表明发生错误的数据块文件副本。
在具体实施过程中,n不一定是m的整数倍。当n是m的整数倍时,校验生成模块21将每m个数据块文件形成一组计算出一个校验数据文件;当n不是m的整数倍时,校验生成模块21将每m个数据块文件形成一组计算出一个校验数据文件,而最后不足m个数据块文件也形成一组计算出一个校验数据文件。
在具体实施过程中,数据存储模块30可以将所述校验数据文件存储在与数据块文件相同的分布节点下,也可以存储在与数据块文件副本相同的分布节点下,也可以存储在与数据块文件、数据块文件副本均不相同的分布节点下或者专设的校验节点下。
优选地,校验算法模块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还可以根据源数据文件的大小调整取值。
本实施例通过设置数据块文件和校验数据文件的命名规则,可以将校验的空间开销转为逻辑开销,减少空间的占用率,减少对系统和其他服务的依赖,容易移植和应用到其他存储系统上。
本实施例适合光存储介质的数据校验,尤其是系统级的海量冷数据校验,可以应用在系统级大容量的光存储设备,如光存储阵列等。在具体应用时,可以将本实施例所生成的数据块文件和校验数据文件存储在光存储设备中。
实施例4
如图7所示,本实施例提供一种数据校验系统,用于校验待校验源数据文件,包括数据获取模块41、副本获取模块42和一致性对比模块51;
数据获取模块41,用于根据源数据标识,从光存储设备中某个分布节点下获取待校验源数据文件对应的如实施例3所述的数据块文件;
副本获取模块42,用于根据所述数据块文件,从光存储设备中另一个分布节点下获取如实施例3所述的数据块文件副本;
一致性对比模块51,用于对比所述数据块文本和所述数据块文件副本,根据所述数据块文本和所述数据块文件副本之间的对比结果,判断待校验源数据文件在光存储设备中不同分布节点下的一致性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以数据获取模块41根据源数据标识可以从某个分布节点下得到待校验源数据文件对应的数据块文件,同时副本获取模块42可以根据预设的数据块文件与数据块文件副本之间的关联关系或者预设的数据块文件副本存储位置或者数据块文件副本的文件名等等,在不同的分布节点下可以得到待校验源数据文件对应的数据块文件副本,一致性对比模块51对数据块文件和数据块文件副本进行比较,如果数据块文件和数据块文件副本是一致的,则判断待校验源数据文件在光存储设备中不同分布节点下是一致的,否则是不一致的。
在本实施例中,所述数据校验系统还包括校验获取模块43、校验生成模块21和校验数据对比模块52;
校验获取模块43,用于当一致性对比模块51判断待校验源数据文件在光存储设备中不同分布节点下存在不一致时,根据校验数据标识获取待校验源数据文件对应的如实施例3所述的校验数据文件;
校验生成模块21,用于每m个所述数据块文件计算出一个待校验数据文件;
校验数据对比模块52,用于对比所述待校验数据文件和所述校验数据文件,根据所述待校验数据文件和所述校验数据文件之间的对比结果,查找出发生错误的数据块文件。
当一致性对比模块51判断数据块文件与数据块文件副本不一致时,需要进一步确定是数据块文件还是数据块文件副本发生了错误。
由于校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号,所以校验获取模块43根据校验数据标识可以获取待校验源数据文件对应的校验数据文件,而通过校验生成模块21数据块文件可以同样按照实施例1中校验数据文件的生成方法生成待校验数据文件,校验数据对比模块52对比所述校验数据文件和所述待校验数据文件,根据两者之间的对比结果,可以判断待校验源数据文件发生错误的位置,也即可以查找出具体发生错误的数据块文件。如果校验数据对比模块52判断出某个校验数据文件与待校验数据文件是不一致的,则发生错误的位置应为计算出该校验数据文件的m个数据块文件中。
在本实施例中,所述数据校验系统还包括副本生成模块14;
副本生成模块14,用于当校验数据对比模块没有查找出发生错误的数据块文件时,根据所述数据块文件重新生成新的数据块文件副本,将新的数据块文件副本替换旧的数据块文件副本。
当校验数据对比模块52查找出发生错误的数据块文件时,表明数据块文件发生了错误;当校验数据对比模块52没有查找出发生错误的数据块文件时,表明数据块文件副本发生了错误,此时副本生成模块14根据准确的数据块文件重新生成数据块文件副本,可以替换掉发生错误的数据块文件副本。
如图8所示,优选地,所述数据校验系统还包括文件解析模块60和编号对比模块71;数据获取模块41,还用于根据源数据标识,从光存储设备中某个分布节点下获取待校验源数据文件对应的如实施例4所述的数据块文件的文件名;
文件解析模块60,用于解析所述数据块文件的文件名,得到数据块文件编号;
编号对比模块71,用于根据数据块文件编号的连续性,判断待校验源数据文件的完整性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以数据获取模块41根据源数据标识可以得到待校验源数据文件对应的数据块文件,文件解析模块60解析这些数据块文件的文件名可以得到数据块文件编号,而数据块文件是由源数据文件划分出来的,所以编号对比模块71可以根据数据块文件编号是否连续判断源数据文件是否完整。如果数据块文件编号是连续的,则编号对比模块71判断源数据文件是完整的;如果数据块文件编号存在缺失,则编号对比模块71判断源数据文件缺失了对应该缺失编号的数据块文件。
如图2所示,同样以p=16MB,m=10,n=35为例,如实施例4所述,数据块文件的文件名为data_<MD5>_<indexD>,则indexD的取值可以为1到35。
如果待校验源数据文件为data,数据获取模块41根据源数据标识“data”可以从存储设备中找到所有源数据标识为“data”的数据块文件。文件解析模块60解析这些数据块文件的文件名,可以得到数据块文件编号。编号对比模块71根据数据块文件编号是否从1到35都是连续的,如果是则判断待校验源数据文件data是完整的,如果否则判断待校验源数据文件data存在缺失。
优选地,所述数据校验系统还包括校验算法模块12和特征码对比模块72;
文件解析模块60,还用于解析所述数据块文件的文件名,得到校验特征码;
校验算法模块12,用于根据所述待校验源数据文件通过校验算法生成待校验特征码;
特征码对比模块71,用于对比所述待校验特征码和所述校验特征码,根据所述待校验特征码和所述校验特征码之间的对比结果,判断待校验源数据文件的准确性。
由于数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号,所以数据获取模块41可以根据源数据标识获取到待校验源数据文件对应的数据块文件,文件解析模块60解析这些数据块文件的文件名可以得到校验特征码,而通过校验算法模块12可以如实施例4所述根据待校验源数据文件得到待校验特征码,特征码对比模块72对比所述校验特征码和所述待校验特征码,根据两者之间的对比结果,可以判断待校验源数据文件是否准确。如果特征码对比模块72判断校验特征码和待校验特征码是一致的,则待校验源数据文件是准确的;如果特征码对比模块72判断校验特征码和待校验特征码不是一致,则待校验源数据文件是不准确的。
优选地,所述数据校验系统还包括数据划分模块11和校验数据对比模块35;
数据获取模块41,还用于当特征码对比模块34判断待校验源数据文件不准确时,根据校验数据标识获取如实施例4所述的校验数据文件;
数据划分模块11,用于将待校验源数据文件分成大小均为p的n个待校验数据块文件;
校验生成模块21,用于对每m个待校验数据块文件计算出一个待校验数据文件;
校验数据对比模块73,用于对比所述待校验数据文件和所述校验数据文件,根据所述待校验数据文件和所述校验数据文件之间的对比结果,判断待校验源数据文件发生错误的位置。
当特征码对比模块72判断待校验源数据文件不准确时,需要进一步确定待校验源数据文件发生错误的位置。由于校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号,所以数据获取模块41根据校验数据标识可以获取待校验源数据文件对应的校验数据文件,而通过数据划分模块11和校验生成模块21可以如实施例4所述根据待校验源数据文件生成待校验数据文件,校验数据对比模块73对比所述校验数据文件和所述待校验数据文件,根据两者之间的对比结果,可以判断待校验源数据文件发生错误的位置。如果校验数据对比模块73判断出某个校验数据文件与待校验数据文件是不一致的,则发生错误的位置应为计算出该校验数据文件的m个数据块文件中。
优选地,所述数据校验系统还包括报告生成模块;
所述报告生成模块,用于将待校验源数据文件的准确性判断结果和/或待校验源数据文件发生错误的位置形成报告。
存储设备维护人员可以通过报告有效地监控数据的准确性,及时发现数据发生错误并及时采取数据重录或恢复等措施,还可以有针对性地对发生错误的位置进行重录或修复。
如图2所示,同样以p=16MB,m=10,n=35为例,如实施例4所述,数据块文件的文件名为data_<MD5>_<indexD>,则indexD的取值可以为1到35,校验数据文件的文件名为parity_<MD5>_<indexP>,则indexP的取值可以为1到4。
如果待校验源数据文件为data,数据获取模块41根据源数据标识“data”可以从存储设备中找到所有源数据标识为“data”的数据块文件。文件解析模块60解析这些数据块文件的文件名,可以得到校验特征码。校验算法模块12同样按照实施例4所述可以根据源数据文件data得到待校验特征码。如果特征码对比模块72判断待校验特征码与校验特征码是一致的,表明待校验源数据文件data是准确的,可以继续校验下一个待校验的源数据文件;如果特征码对比模块72判断待校验特征码与校验特征码不一致,表明待校验源数据文件data是不准确的,需要进一步确定待校验源数据文件发生错误的位置。
当需要进一步确定待校验源数据文件发生错误的位置时,待校验源数据文件data对应的校验数据标识为“parity”,数据获取模块41根据校验数据标识“parity”可以从存储设备中找到所有校验数据标识为“parity”的校验数据文件。通过数据划分模块11和校验生成模块21同样按照实施例5所述可以生成4个待校验数据文件。校验数据对比模块73一一对应地对比4个待校验数据文件和校验数据文件,第1个待校验数据文件与校验数据文件编号indexP为1的校验数据文件进行对比,第2个待校验数据文件与校验数据文件编号indexP为2的校验数据文件进行对比,以此类推。假设对比结果为第2个待校验数据文件和第2个校验数据文件是不一致的,则表明出错的位置是第11个到第20个数据块文件。
优选地,所述数据校验系统还包括报告生成模块;
所述报告生成模块,用于将待校验源数据文件的完整性和/或准确性和/或一致性判断结果形成报告。
存储设备维护人员可以通过报告有效地监控数据的完整性、准确性、一致性,及时发现数据丢失或错误并及时采取数据重录或恢复等措施。
在本实施例中,所述数据校验系统还可以包括如实施例3所述数据存储系统的模块。
显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种数据存储方法,其特征在于,包括以下步骤:
将源数据文件分成大小均为p的n个数据块文件,n为大于或等于1的整数;
根据所述源数据文件通过校验算法生成校验特征码;
设置所述数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号;
根据所述数据块文件生成数据块文件副本;
将所述数据块文件和所述数据块文件副本分别存储在光存储设备中的不同分布节点下。
2.根据权利要求1所述的一种数据存储方法,其特征在于,还包括以下步骤:
每m个所述数据块文件计算出一个校验数据文件,m为大于或等于1的整数,m小于或等于n;
设置所述校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号;
将所述校验数据文件存储在光存储设备中。
3.一种数据校验方法,用于校验待校验源数据文件,其特征在于,包括以下步骤:
根据源数据标识,从光存储设备中某个分布节点下获取待校验源数据文件对应的如权利要求1所述的数据块文件;
从光存储设备中另一个分布节点下获取如权利要求1所述的数据块文件副本;
根据所述数据块文本和所述数据块文件副本之间的对比结果,判断待校验源数据文件在光存储设备中不同分布节点下的一致性。
4.根据权利要求3所述的一种数据校验方法,其特征在于,还包括以下步骤:
当判断待校验源数据文件在光存储设备中不同分布节点下存在不一致时,从光存储设备中根据校验数据标识获取待校验源数据文件对应的如权利要求2所述的校验数据文件;
每m个所述数据块文件计算出一个待校验数据文件;
根据所述待校验数据文件和所述校验数据文件之间的对比结果,查找出发生错误的数据块文件。
5.根据权利要求4所述的一种数据校验方法,其特征在于,还包括以下步骤:
当没有查找出发生错误的数据块文件时,根据所述数据块文件重新生成新的数据块文件副本,将新的数据块文件副本替换旧的数据块文件副本。
6.一种数据存储系统,其特征在于,包括数据划分模块、校验算法模块、数据块命名模块、副本生成模块和数据存储模块;
所述数据划分模块,用于将源数据文件分成大小均为p的n个数据块文件,n为大于或等于1的整数;
所述校验算法模块,用于根据所述源数据文件通过校验算法生成校验特征码;
所述数据块命名模块,用于设置所述数据块文件的文件名包括源数据标识、校验特征码和数据块文件编号;
所述副本生成模块,用于根据所述数据块文件生成数据块文件副本;
所述数据存储模块,用于将所述数据块文件和所述数据块文件副本分别存储在光存储设备中的不同分布节点下。
7.根据权利要求6所述的一种数据存储系统,其特征在于,还包括校验生成模块和校验数据命名模块;
所述校验生成模块,用于对每m个数据块文件计算出一个校验数据文件,m为大于或等于1的整数,m小于或等于n;
所述校验数据命名模块,用于设置所述校验数据文件的文件名包括校验数据标识、校验特征码和校验数据文件编号;
所述数据存储模块,还用于将所述校验数据文件存储在光存储设备中。
8.一种数据校验系统,用于校验待校验源数据文件,其特征在于,包括数据获取模块、副本获取模块和一致性对比模块;
所述数据获取模块,用于根据源数据标识,从光存储设备中某个分布节点下获取待校验源数据文件对应的如权利要求6所述的数据块文件;
所述副本获取模块,用于根据所述数据块文件,从光存储设备中另一个分布节点下获取如权利要求6所述的数据块文件副本;
一致性对比模块,用于对比所述数据块文本和所述数据块文件副本,根据所述数据块文本和所述数据块文件副本之间的对比结果,判断待校验源数据文件在光存储设备中不同分布节点下的一致性。
9.根据权利要求8所述的一种数据校验系统,其特征在于,还包括校验获取模块、校验生成模块和校验数据对比模块;
所述校验获取模块,用于当所述一致性对比模块判断待校验源数据文件在光存储设备中不同分布节点下存在不一致时,根据校验数据标识获取待校验源数据文件对应的如权利要求7所述的校验数据文件;
所述校验生成模块,用于每m个所述数据块文件计算出一个待校验数据文件;
所述校验算法模块,用于根据所述待校验源数据文件通过校验算法生成待校验特征码;
所述校验数据对比模块,用于对比所述待校验数据文件和所述校验数据文件,根据所述待校验数据文件和所述校验数据文件之间的对比结果,查找出发生错误的数据块文件。
10.根据权利要求9所述的一种数据校验系统,其特征在于,还包括副本生成模块;
所述副本生成模块,用于当所述校验数据对比模块没有查找出发生错误的数据块文件时,根据所述数据块文件重新生成新的数据块文件副本,将新的数据块文件副本替换旧的数据块文件副本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911071281.9A CN110837660A (zh) | 2019-11-05 | 2019-11-05 | 一种数据存储方法及系统、数据校验方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911071281.9A CN110837660A (zh) | 2019-11-05 | 2019-11-05 | 一种数据存储方法及系统、数据校验方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110837660A true CN110837660A (zh) | 2020-02-25 |
Family
ID=69576117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911071281.9A Pending CN110837660A (zh) | 2019-11-05 | 2019-11-05 | 一种数据存储方法及系统、数据校验方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110837660A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553306A (zh) * | 2021-07-27 | 2021-10-26 | 重庆紫光华山智安科技有限公司 | 数据处理方法及数据存储管理系统 |
CN113625629A (zh) * | 2021-08-06 | 2021-11-09 | 中国电子科技集团公司第五十八研究所 | 一种应用于n_flash型fpga的配置控制电路 |
CN116737457A (zh) * | 2023-06-16 | 2023-09-12 | 深圳市青葡萄科技有限公司 | 一种基于分布式存储的数据校验方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834898A (zh) * | 2010-04-29 | 2010-09-15 | 中科院成都信息技术有限公司 | 一种网络分布式编码存储方法 |
CN102387179A (zh) * | 2010-09-02 | 2012-03-21 | 联想(北京)有限公司 | 分布式文件系统及其结点、存储方法和存储控制方法 |
CN105956128A (zh) * | 2016-05-09 | 2016-09-21 | 南京大学 | 一种基于简单再生码的自适应编码存储容错方法 |
CN106527993A (zh) * | 2016-11-09 | 2017-03-22 | 北京搜狐新媒体信息技术有限公司 | 一种分布式系统中的海量文件储存方法及装置 |
CN107219997A (zh) * | 2016-03-21 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 一种用于验证数据一致性的方法及装置 |
-
2019
- 2019-11-05 CN CN201911071281.9A patent/CN110837660A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834898A (zh) * | 2010-04-29 | 2010-09-15 | 中科院成都信息技术有限公司 | 一种网络分布式编码存储方法 |
CN102387179A (zh) * | 2010-09-02 | 2012-03-21 | 联想(北京)有限公司 | 分布式文件系统及其结点、存储方法和存储控制方法 |
CN107219997A (zh) * | 2016-03-21 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 一种用于验证数据一致性的方法及装置 |
CN105956128A (zh) * | 2016-05-09 | 2016-09-21 | 南京大学 | 一种基于简单再生码的自适应编码存储容错方法 |
CN106527993A (zh) * | 2016-11-09 | 2017-03-22 | 北京搜狐新媒体信息技术有限公司 | 一种分布式系统中的海量文件储存方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553306A (zh) * | 2021-07-27 | 2021-10-26 | 重庆紫光华山智安科技有限公司 | 数据处理方法及数据存储管理系统 |
CN113553306B (zh) * | 2021-07-27 | 2023-07-21 | 重庆紫光华山智安科技有限公司 | 数据处理方法及数据存储管理系统 |
CN113625629A (zh) * | 2021-08-06 | 2021-11-09 | 中国电子科技集团公司第五十八研究所 | 一种应用于n_flash型fpga的配置控制电路 |
CN113625629B (zh) * | 2021-08-06 | 2023-03-07 | 中国电子科技集团公司第五十八研究所 | 一种应用于n_flash型fpga的配置控制电路 |
CN116737457A (zh) * | 2023-06-16 | 2023-09-12 | 深圳市青葡萄科技有限公司 | 一种基于分布式存储的数据校验方法 |
CN116737457B (zh) * | 2023-06-16 | 2024-03-08 | 深圳市青葡萄科技有限公司 | 一种基于分布式存储的数据校验方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105122213B (zh) | 用于数据存储系统中的错误检测和纠正的方法和装置 | |
US10725692B2 (en) | Data storage method and apparatus | |
CN110837660A (zh) | 一种数据存储方法及系统、数据校验方法及系统 | |
CN100390745C (zh) | 在处理数据时检验数据完整性的装置及方法 | |
US9342405B2 (en) | Hierarchical data compression testing | |
US8738582B2 (en) | Distributed object storage system comprising performance optimizations | |
US20140372838A1 (en) | Bad disk block self-detection method and apparatus, and computer storage medium | |
US6934904B2 (en) | Data integrity error handling in a redundant storage array | |
US6535994B1 (en) | Method and apparatus for identifying and repairing mismatched data | |
US8020074B2 (en) | Method for auto-correction of errors in a RAID memory system | |
US6233696B1 (en) | Data verification and repair in redundant storage systems | |
US7418550B2 (en) | Methods and structure for improved import/export of raid level 6 volumes | |
CN109542342B (zh) | 元数据管理与数据重构方法、设备及存储介质 | |
CN105468479B (zh) | 一种磁盘阵列raid坏块处理方法及装置 | |
CN102708019A (zh) | 一种硬盘数据恢复方法、装置及系统 | |
CN102981927A (zh) | 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统 | |
CN103309775A (zh) | 一种高可靠磁盘阵列的容错方法 | |
CN103699457A (zh) | 基于条带化的磁盘阵列修复方法及装置 | |
US6389511B1 (en) | On-line data verification and repair in redundant storage system | |
US7549112B2 (en) | Unique response for puncture drive media error | |
WO2017053100A1 (en) | Efficient detection of corrupt data | |
CN110222035A (zh) | 一种基于异或校验与日志恢复的数据库页面高效容错方法 | |
CN110806949A (zh) | 一种校验数据生成方法及系统、数据校验方法及系统 | |
CN104205097B (zh) | 一种去重方法装置与系统 | |
US20030163757A1 (en) | RAID subsystem and data input/output and recovery method in disk error mode |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200225 |