云存储系统的快速数据校验方法、装置及系统与流程

文档序号:29165466发布日期:2022-03-09 02:21阅读:70来源:国知局
1.本发明涉及云存储领域,具体而言,涉及一种云存储系统的快速数据校验方法、装置及系统。
背景技术
::2.计算机系统在进行数据的传输和存储时,难免会发生错误。为了避免这种错误,一方面是从硬件的方面着手,提高硬件的抗干扰能力和可靠性;而另一方面在数据编码上采取编码纠码的措施,使得机器能够自己发现错误甚至纠正错误,通常把这种具有检测错误或带有自动纠错能力的数据编码称为数据校验码。其原理是在数据中加入一些校验位,组成数据校验码,通过检查数据校验码的合法性来判断是否出错或进行纠错。常用的数据校验码有奇偶校验码、海明校验码、循环冗余校验码(crc)等。3.对文件进行校验,主要是依据校验码计算方法(如crc、md5、hash值),对读取到的文件内容计算实际校验码,并与已记录的原始校验码进行比对,从而确定文件数据正确性和一致性,即全量校验。在当前大数据发展的趋势下,文件的规模不断增大,由于这些方法均需对文件数据的全部内容进行变换处理,得到相应的校验值,在文件数据大到一定规模时,计算全体内容的校验码会比较耗时,校验处理性能会受到很大影响。4.在大规模数据中心等的备份系统中,全量校验基本不可行,为了加速校验过程,一般采取抽样校验的方式进行处理,无需对所有数据进行校验。基本的处理方式如图1所示。5.针对上述的问题,目前尚未提出有效的解决方案。技术实现要素:6.本发明实施例提供了一种云存储系统的快速数据校验方法、装置及系统,以至少解决由于从分布式文件系统客户端读取文件时,数据需要经历比传统文件系统更长的路径而造成的校验速度较慢、错误风险较高的技术问题。7.根据本发明实施例的一个方面,提供了一种云存储系统的快速数据校验方法,所述方法在云存储系统中执行,并且所述方法包括:接收抽样校验指令;从所述抽样校验指令中提取校验目标文件所需的数据文件,基于所提取的数据文件,获取需要抽样的数据集,形成需要校验的数据集的元数据,并分析所述需要校验的数据集的元数据;根据对所述元数据的分析结果和所述目标文件的数据块的服务节点数量,将数据校验过程分割成多个校验子任务;并行执行所述多个校验子任务,以校验数据。8.根据本发明实施例的另一方面,还提供了一种云存储系统的快速数据校验装置,包括:接收模块,被配置为接收抽样校验指令;预处理模块,被配置为从所述抽样校验指令中提取校验目标文件所需的数据文件,基于所提取的数据文件,获取需要抽样的数据集,形成需要校验的数据集的元数据,并分析所述需要校验的数据集的元数据;分发调度模块,被配置为根据对所述元数据的分析结果和所述目标文件的数据块的服务节点数量,将数据校验过程分割成多个校验子任务;执行模块,被配置为并行执行所述多个校验子任务,以校验数据。9.根据本发明实施例的又一方面,还提供了一种云存储系统的快速数据校验系统,备份系统节点,被配置为接收用户发起的抽样校验指令;云存储系统,包括文件服务节点,被配置为接收抽样校验指令;元数据服务集群,被配置为:从所述抽样校验指令中提取校验目标文件所需的数据文件,基于所提取的数据文件,获取需要抽样的数据集,形成需要校验的数据集的元数据,并分析所述需要校验的数据集的元数据;根据对所述元数据的分析结果和所述目标文件的数据块的服务节点数量,将数据校验过程分割成多个校验子任务;多个数据块存储节点,被配置为并行执行所述多个校验子任务,以校验数据。10.在本发明实施例中,采用以下方案:从所述抽样校验指令中提取校验目标文件所需的数据文件,基于所提取的数据文件,获取需要抽样的数据集,形成需要校验的数据集的元数据,并分析所述需要校验的数据集的元数据;根据对所述元数据的分析结果和所述目标文件的数据块的服务节点数量,将数据校验过程分割成多个校验子任务;并行执行所述多个校验子任务,以校验数据。从而实现了节省存储资源的技术效果,进而解决了由于从分布式文件系统客户端读取文件时,数据需要经历比传统文件系统更长的路径而造成的校验速度较慢、错误风险较高的技术问题。附图说明11.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:12.图1是根据现有技术的数据校验方法的流程图;13.图2是根据现有技术的数据校验时数据经历的路径的示意图;14.图3是根据本发明实施例的一种云存储系统的快速数据校验方法的示意图;15.图4是根据本发明实施例的另一种云存储系统的快速数据校验方法的示意图;16.图5是根据本发明实施例的又一种云存储系统的快速数据校验方法的示意图;17.图6是根据本发明实施例的再一种云存储系统的快速数据校验方法的示意图;18.图7是根据本发明实施例的对元数据进行重删处理的示意图;19.图8是根据本发明实施例的一种云存储系统的快速数据校验装置的结构示意图;20.图9是根据本发明实施例的一种云存储系统的快速数据校验系统的结构示意图。具体实施方式21.为了使本
技术领域
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。22.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。23.术语解释24.全量校验:备份应用对数据源进行备份时,同时按照相同的数据大小(例如1mb)计算数据的校验码(例如crc),并且保存下来,用于后续保证数据的可靠性。全量校验是指,当对某一个备份下来的数据副本进行正确性检验时,读取该文件的全部数据重新计算校验码;并将计算得到的校验码与备份保存下来的校验码一一进行比对;如果每一次比对结果都相同,则认为数据副本没有发生改变。25.抽样校验:广义指从一批产品中随机抽取少量产品(样本)进行检验,据以判断该批产品是否合格的统计方法和理论。这里指针对某一个备份的数据副本,通过随机算法计算出该数据副本需要进行检验的部分数据的位置集合(每个位置代表1mb数据),然后计算每个位置的校验码;将该校验码与备份保存下来的相对位置的校验码进行比对。如果两者都相等,表示该位置的数据没有发生变化;如果每一次比对都相同,则认为数据副本没有发生改变。26.posix:unix类系统上的文件系统(例如xfs、ext4、btrfs)大多都支持使用posix规范的文件系统接口。posix是portableoperatingsysteminterface(可移植操作系统接口)的缩写,是ieee为要在各种unix操作系统上运行软件,而定义api的一系列互相关联的标准的总称,其正式称呼为ieeestd1003,而国际标准名称为iso/iec9945。posix标准定义了类unix操作系统(例如linux内核的系统)应该为应用程序提供的接口标准。27.iops:(input/outputoperationspersecond)是一个用于电脑存储设备(如硬盘(hdd)、固态硬盘(ssd)或存储区域网络(san))性能测试的量测方式,可以视为是每秒的读写次数。28.分布式存储系统:分布式存储管理软件安装在多台带有大容量磁盘的服务器上,组成分布式存储系统。分布式存储管理软件负责在这些服务器之间建立存储集群,构成同一个大的存储池子,同时管理数据往各个服务器的磁盘读写,并完成数据块随机分布,以及向上层提供读写接口。29.重删:即重复数据删除,是一种节约存储空间的技术,指对数据中重复的部分只存储一份。30.循环冗余校验码(cyclicredundancycheck,crc):crc校验是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。crc校验码能发现并纠正信息存储或传送过程中连续出现的多位错误,因此在磁介质存储和计算机之间通信方面得到广泛应用。31.md5:message-digestalgorithm5,在90年代初由mit的计算机科学实验室和rsadatasecurityinc发明,由md2/md3/md4发展而来的。md5的实际应用是对一段message(字节串)产生fingerprint(指纹),可以防止被″篡改″。32.概述33.现有的云存储系统的快速校验方法存在以下问题:34.(1)分布式文件系统的iops的提高依赖于posix协议较多优化措施,而这些优化措施对于数据校验过程的处理是不必要的。35.(2)现有数据校验任务主要由服务器(文件系统主机、备份主机、远程容灾/恢复系统主机等)完成,处理节点(inode)和数据块常常是分离的,甚至是通过独立的服务进行管理;对大文件的处理性能没有充分利用分布式系统的集群资源,存在很大的优化空间。36.(3)分布式文件系统常常部署在用户态,从分布式文件系统客户端读取文件时,数据需要经历比传统文件系统更长的路径,常常需要经过内核态的vfs与fuse模块等。如图2所示。37.针对现有技术的上述问题,本技术中,针对海量数据的校验任务,将校验功能下放到存储层来完成,不经过posix协议,直接在存储系统内部处理,降低数据流转层次,提高运行效率。并且,基于云存储系统或存储集群,采用分布式并行校验方式,将数据校验任务分割,并行执行,提高校验速率。此外,在校验过程中,对大量元数据采用全局数据重删除技术,通过分析被校验数据的元数据的重复性,对重复数据的多个副本只保留一份副本方式,大大减少读取的数据块数量,从而实现抽样校验。38.实施例139.根据本发明实施例,提供了一种云存储系统的快速数据校验方法,如图3所示,该方法包括:40.步骤s302,接收抽样校验指令;41.步骤s304,从所述抽样校验指令中提取校验目标文件所需的数据文件,基于所提取的数据文件,获取需要抽样的数据集,形成需要校验的数据集的元数据,并分析所述需要校验的数据集的元数据;42.其中,所提取的数据文件包括:所述目标文件,与所述目标文件相应的校验码文件,抽样校验比例,其中,所述校验码文件包括校验算法,校验码长度,校验码数组长度,校验码数组和校验码。43.在一个示例性实施例中,基于所提取的数据文件,调用抽样规则,获取需要校验的数据集,其中,所述抽样规则采用随机抽样算法,以指定的比例进行抽样。例如,将所述目标文件按照预设的逻辑数据块大小进行平均分割,得到多个逻辑数据块;基于所述抽样校验比例,对所述多个逻辑数据块进行抽样,得到需要校验的数据集。44.在一个示例性实施例中,对所述元数据进行分析和处理,删除所述元数据中的重复数据。例如,将所述元数据中引用到的相同数据块的条目重排到一起;删除所述相同数据块中的重复数据。45.步骤s306,根据对所述元数据的分析结果和所述目标文件的数据块的服务节点数量,将数据校验过程分割成多个校验子任务;46.步骤s308,并行执行所述多个校验子任务,以校验数据。47.基于预定的分发策略,将所述多个校验子任务分发给多个分布式存储节点;由所述多个分布式存储节点分别执行所述多个校验子任务;其中,所述预定的分发策略是各个分布式存储节点先负责存储在本存储节点的数据对应的校验子任务,空闲时再接收其他分布式存储节点的存储的数据对应的校验子任务。48.通过本技术的上述方案,使得个解决了上述现有技术中问题,并主要具有如下优点:49.1)数据抽样校验任务直接在存储中运行,在存储内部直接处理元数据和数据块,并且数据只在存储内部流动。规避了posix协议,减少了数据的流转层次,不需要再经过vfs和fuse。50.2)对需要抽样的数据元数据进行去重,减少重复校验的数据量。采用全局重删存储,元数据由重删hash索引组成,对于相同的数据其重删hash索引也相同。因此,可以对元数据内容去重,减少需要校验的数据量。51.3)对需要抽样的数据元数据重排,优化读文件的顺序。采用全局重删存储,元数据中的不同重删hash可能存放在相同的数据块;可以调整它们的位置,减少对相同数据块的重复读取。52.4)将抽样校验任务分割成多个小任务分配给多个集群内节点同时执行,并将运行结果返回leader节点的任务调度模块。充分利用分布式的计算资源和磁盘资源,进而加快数据校验过程。53.实施例254.根据本发明实施例,提供了另一种云存储系统的快速数据校验方法,如图4所示,该方法包括:55.步骤s402,校验任务的发起;56.校验任务发起步骤是用户通过备份模块的接口下发抽样校验指令,以抽样检验某一份虚拟机的磁盘文件,是否存在数据错误。57.在一个示例性实施例中,结合图5,校验任务的发起可以包括如下步骤:58.1)用户应用向备份模块发起抽样校验指令;59.2)备份模块接受到抽样校验指令后,根据备份数据的校验需要,生成一个固定格式的抽样校验任务计划文件,即校验目标文件所需的数据文件。所生成的计划文件包含数据校验的必要信息,例如,目标文件,目标文件相应的校验码文件,抽样校验比例。60.3)备份模块向抽样校验子系统模块发送抽样校验指令,并将生成的计划文件发送给抽样校验子系统。61.4)抽样校验子系统调用存储校验接口,将生成的计划文件发送到存储系统模块,由存储系统相关模块执行校验任务。62.5)校验任务发起完成,抽样校验子系统等待存储系统校验执行结果,并返回给备份模块。63.其中,目标文件即需要校验的目标文件,相应的校验码文件作用如下:由备份模块在备份目标文件时,根据从数据源拉取备份的数据产生。校验时,目标文件某一部分数据生成的校验码和校验码文件相对应位置保存的校验码是相同的,则判定目标文件这部分数据通过校验。64.在一个示例性实施例中,校验码文件格式如下:{校验算法,校验码长度,校验码数组长度,校验码数组,前面内容的crc32校验码}。[0065][0066]步骤s404,校验任务的预处理;[0067]校验任务的预处理流程如下:[0068]1)存储系统的文件系统服务读取校验任务计划文件,获取数据校验的必要信息,包括目标文件,目标文件相应的校验码文件,抽样校验比例;[0069]2)存储系统的文件系统通过抽样校验接口模块,调用元数据服务集群的数据抽样模块,将计划文件的相关信息发送给数据抽样模块;[0070]3)数据抽样模块根据接收到的计划文件内容,调用抽样规则,计算抽样数据集,形成需要校验的数据集的元数据;[0071]4)存储系统的元数据服务leader节点上的元数据处理模块接收数据抽样模块形成的需要校验的数据集的元数据,进行元数据的初步分析和处理,删除大量的重复数据,形成预处理后的校验任务。[0072]由于大规模文件备份的元数据也会比较大,因此需要校验的元数据往往有大量的数据是重复的;本步骤主要采用重删技术对重复数据进行删除,删除其中重复校验的部分。[0073]步骤s406,校验任务的分发与调度;[0074]预处理完成后,元数据处理模块调用任务调度模块,进行预处理后的校验任务的分发与调度。校验任务的分发与调度的主要流程如下:[0075]1)校验任务的分割。任务调度模块接收元数据处理模块形成的预处理后的校验任务,根据集群并行处理需要,按照元数据的实际存储存储节点情况,将校验任务分割成多个子任务,便于分布式处理;[0076]2)任务调度模块调用数据块存储节点的任务执行模块,将分割的多个任务分发给多个分布式存储节点,多个分布式存储节点执行具体的校验任务;具体分发策略为实际存储节点先负责存储在本节点的数据的校验,空闲时再接收其他节点的数据校验任务。[0077]步骤s408,分布式校验任务的执行。[0078]数据块存储节点上的任务执行模块接收分割后的校验子任务,并并发地执行校验子任务。其流程具体如下:[0079]1)各个节点的数据块存储节点上的任务执行模块接收到元数据服务leader节点发送的数据校验子任务,包括需要校验的数据的元数据和相应位置的校验码;[0080]2)任务执行模块根据元数据读取相应的数据块,调用原校验码的校验方法(如crc,murmur3),重新计算数据块的校验码;[0081]3)将计算的校验码与原来的校验子任务相对应的校验码进行比对,如果是一致的,则判断数据无差错;如果不一致,则判断数据有错误;从而完成数据校验,并将执行结果返回任务调度模块。[0082]本实施例具有以下有益效果:[0083](1)将校验功能下放到存储层来完成,不经过posix协议,直接在存储系统内部处理,降低数据流转层次,提高运行效率。[0084](2)采用分布式并行校验方式,将数据校验任务分割和并行执行,提高校验速率。[0085](3)采用全局数据重删除技术,对被校验数据的元数据进行重复数据删除,大大减少读取的数据块数量。[0086]实施例3[0087]根据本发明实施例,提供了又一种云存储系统的快速数据校验方法,如图5所示,该方法包括:[0088]步骤s502,发起校验任务;[0089]校验任务发起步骤是用户通过备份模块的接口下发抽样校验指令,以抽样检验某一份虚拟机的磁盘文件,是否存在数据错误。[0090]步骤s504,预处理校验任务;[0091]存储系统的文件系统服务读取校验任务计划文件,获取数据校验的必要信息,包括目标文件,目标文件相应的校验码文件,抽样校验比例。存储系统的文件系统通过抽样校验接口模块,调用元数据服务集群的数据抽样模块,将计划文件的相关信息发送给数据抽样模块。数据抽样模块根据接收到的计划文件内容,调用抽样规则,计算抽样数据集,形成需要校验的数据集的元数据。存储系统的元数据服务leader节点上的元数据处理模块接收数据抽样模块形成的需要校验的数据集的元数据,进行元数据的初步分析和处理,删除大量的重复数据,形成预处理后的校验任务。[0092]在一个示例性实施例中,所述抽样规则主要采用随机抽样算法,以指定的比例进行抽样。数据抽样的流程如下:[0093]以目标数据1tb,对10%的数据进行抽样校验为例(具体校验比例,由用户调用抽样校验子系统的参数指定):[0094]1)将目标数据按照1mb的逻辑数据块大小进行平均分割,可以得到1048576个逻辑数据块。[0095]2)这些数据块按照逻辑进行编号:0,1,2…1048575,将这些编号组成一个数据集。[0096]3)需要抽样10%的数据,即102.4gb数据,需要大约104858个逻辑数据块组成。然后通过随机抽样算法从步骤1)中的数据集中,抽取104858个编号出来。这些编号所对应的1mb数据块就是需要进行检验的逻辑数据块。[0097]4)将抽取出的104858个编号组成抽样数据集,传输给元数据处理模块。[0098]步骤s506,分发与调度校验子任务;[0099]预处理完成后,元数据处理模块调用任务调度模块,进行预处理后的校验任务的分割,形成多个校验子任务,然后分发与调度这些校验子任务。[0100]步骤s508,执行分布式校验任务。[0101]数据块存储节点上的任务执行模块接收分割后的校验子任务,并并发地执行校验子任务。[0102]本实施例,采用抽样校验的方式,减少了待校验的数据量,有利于提高数据处理速度。[0103]实施例4[0104]根据本发明实施例,提供了又一种云存储系统的快速数据校验方法,如图6所示,该方法包括:[0105]步骤s602,接收校验任务;[0106]接收用户通过备份模块的接口下发的抽样校验指令,以抽样检验某一份虚拟机的磁盘文件,是否存在数据错误。[0107]步骤s604,预处理;[0108]读取校验任务计划文件,获取数据校验的必要信息,包括目标文件,目标文件相应的校验码文件,抽样校验比例。根据计划文件内容,调用抽样规则,计算抽样数据集,形成需要校验的数据集的元数据。进行元数据的初步分析和处理,删除大量的重复数据,形成预处理后的校验任务。[0109]在一个示例性实施例中,该重删技术流程如下:[0110]1)采用全局重删存储,元数据中的不同的重删hash可能存放在相同的数据块。元数据处理模块将元数据中引用到的相同数据块的条目重排到一起,提高读取的数据块利用率。[0111]2)系统以元数据文件x为例,如图7所示,文件x内容为:″abacadae″。由于是全局重删存储,相同内容的数据块只保留一份,可以看到m0,m2,m4,m6都会指向相同的数据。[0112]现在需要校验mmod3=0的位置(m0,m3,m6),可能会多次校验的内容都是a。通过元数据分析发现去掉抽样中相同的内容,在校验数据时可以避免多次读取相同的数据。[0113]步骤s606,分发与调度校验子任务;[0114]预处理完成后,元数据处理模块调用任务调度模块,进行预处理后的校验任务的分割,形成多个校验子任务,然后分发与调度这些校验子任务。[0115]步骤s608,并行执行分布式校验任务。[0116]数据块存储节点上的任务执行模块接收分割后的校验子任务,并并发地执行校验子任务。[0117]数据校验的预处理和分发调度过程在大规模数据处理情况下需要用到存储系统的元数据服务集群,才能满足性能需要。[0118]存储系统元数据leader节点同时会监控各个子任务的执行情况,如果有运行任务的机器宕机,重新将该机器负责的任务发给其他任务。[0119]当任务运行到最后的时候,任务调度模块将长尾任务同时分发到多台分布式存储节点同时运行,避免有因为某台机器负载过高导致校验任务长时间没能完成。[0120]本实施例,采用全局数据重删除技术,对被校验数据的元数据进行重复数据删除,大大减少读取的数据块数量。此外,本实施例中,将校验功能下放到存储层来完成,不经过posix协议,直接在存储系统内部处理,降低了数据流转层次,提高了运行效率。并且,采用分布式并行校验方式,将数据校验任务分割和并行执行,提高了校验速率。[0121]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。[0122]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。[0123]实施例5[0124]根据本发明实施例,还提供了一种用于实施上述云存储系统的快速数据校验方法的云存储系统的快速数据校验装置,如图8所示,该装置包括:接收模块82、预处理模块84、分发调度模块86和执行模块88。[0125]接收模块82,被配置为接收抽样校验指令。[0126]预处理模块84,被配置为从所述抽样校验指令中提取校验目标文件所需的数据文件,基于所提取的数据文件,获取需要抽样的数据集,形成需要校验的数据集的元数据,并分析所述需要校验的数据集的元数据。[0127]分发调度模块86,被配置为根据对所述元数据的分析结果和所述目标文件的数据块的服务节点数量,将数据校验过程分割成多个校验子任务。[0128]执行模块88,被配置为并行执行所述多个校验子任务,以校验数据。[0129]可选地,本实施例中的具体示例可以实现上述实施例1至实施例4中所描述的示例,本实施例在此不再赘述。[0130]实施例6[0131]根据本发明实施例,还提供了一种用于实施上述云存储系统的快速数据校验方法的云存储系统的快速数据校验系统,如图9所示,该系统包括:备份系统节点90和存储系统模块92。[0132]本实施例中,如图9所示,仅示出了一个备份系统节点90。在其他的实施例中,不限于此,可以包括多个备份系统节点90。备份系统节点90包括抽样校验子系统902。[0133]存储系统模块92包括多个文件服务节点922、元数据服务集群924和多个数据块存储节点926。[0134]文件服务节点922包括抽样校验接口模块。元数据服务集群924包括一作为leader(主节点)的元数据节点和多个作为follower(从节点)的元数据节点。数据块存储节点926包括任务执行模块。[0135]抽样校验子系统902位于备份系统中,即,备份系统节点90上,用于接收备份系统发起的抽样校验指令,调用存储系统模块92执行校验任务,以及将校验结果发送给备份系统。[0136]抽样校验接口模块位于文件服务节点922中,用于接收抽样检验子系统的抽样校验指令,以及将校验结果发送给抽样校验子系统。接收到抽样校验指令之后,根据指令模板提取相关数据文件,包括校验的文件,检验算法,校验通过标准,抽样的规则等。然后,将提取的相关数据文件下发给元数据服务集群924中的作为leader的元数据节点。[0137]数据抽样模块、元数据处理模块和任务调度模块位于作为leader的元数据服务节点中,并且只有元数据服务leader节点上的模块才会运行这些模块。[0138]数据抽样模块计算需要抽样的数据集,将结果发送给元数据处理模块。[0139]元数据处理模块加载目标文件元数据,并且对元数据进行去重和重排处理,之后,将结果发送给任务调度模块。[0140]任务调度模块接收到抽样校验接口模块下发的抽样校验指令,调用元数据处理模块,分析元数据。然后,根据分析结果和数据块服务节点数量,将数据校验过程分割成多个校验子任务,下发给任务执行模块。此外,任务调度模块汇总子任务执行情况,并将最终校验结果返回抽样校验接口模块。[0141]任务执行模块:位于数据块存储节点926中,接收任务调度模块发送的抽样校验子任务,并执行相关的子任务,然后将子任务执行结果发送给任务调度模块。[0142]本实施例中,将校验功能下放到存储层来完成,不经过posix协议,直接在存储系统内部处理,降低数据流转层次,提高运行效率。并且,采用分布式并行校验方式,将数据校验任务分割和并行执行,提高校验速率。此外,采用全局数据重删除技术,对被校验数据的元数据进行重复数据删除,大大减少读取的数据块数量。[0143]实施例7[0144]根据本发明实施例,还提供了一种应用上述方法、装置或系统的典型应用场景——云备份容灾系统等的海量数据校验。[0145]随着虚拟化的盛行,虚拟机的虚拟磁盘也变得越来越大,有的客户虚拟机磁盘能达到12tb。数据备份之后,进行抽样校验,即使对10%的数据进行抽验校验,也需要校验1.2tb数据。并且虚拟磁盘常常会有大量相同的数据。[0146]在这种场景下,应用上述方案,经过元数据分析可以减少对重复数据的读取。此外,将校验任务分解成多个子任务,并行运行,可以提高数据块服务的利用率。[0147]实施例8[0148]根据本发明实施例,还提供了一种应用上述方法、装置或系统的另一种典型应用场景——分布式大数据处理中的数据校验。[0149]分布式文件系统在文件系统接口会有很多缓存:用于文件预读,用于加速文件二次读取。采用本技术实施例提供的技术方案,数据校验逻辑简单并且只需要一次读取,使用特定接口进行数据校验,绕过没必要的文件系统优化。并且,经过元数据分析可以减少对重复数据的读取,将校验任务分解成多个子任务,并行运行,可以提高数据块服务的利用率,充分利用分布式系统计算资源和磁盘资源。此外,任务调度系统还可以把一些慢的任务发送给已经执行完的节点,避免有的任务由于某个节点环境问题运行缓慢,导致整体任务迟迟无法完成。[0150]实施例9[0151]本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以实现上述实施例1至4中的方法。[0152]可选地,在本实施例中,上述存储介质可以位于云存储网络中的多个网络设备中的至少一个网络设备。[0153]可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。[0154]可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行实施例1至4中的方法。[0155]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。[0156]上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。[0157]在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。[0158]在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。[0159]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0160]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。[0161]以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1