一种基于云存储的数据检测方法及装置与流程

文档序号:15384424发布日期:2018-09-08 00:23阅读:155来源:国知局

本发明涉及云存储技术领域,特别是涉及一种基于云存储的数据检测方法及装置。



背景技术:

云存储系统中,包括管理节点和存储节点,其中,管理节点用于存储存储节点中所存储数据的索引信息,以方便对存储节点中所存储数据的快速查询与使用,并方便控制存储节点的资源分配;存储节点用于存储数据,查询、存储、上报所存储数据的索引信息等。

云存储系统在存储数据时出现异常,会导致数据存储失败,现有技术中,云存储系统无法检测到未存储成功的数据。当数据未存储成功时,而云存储系统又无法检测到上述未存储成功的数据,无法提示用户,继而无法进行补救,则会影响用户体验。例如:云存储系统在存储数据时,正在存储数据的存储节点由于断电或故障等原因出现异常,则可能会出现存储入存储节点中的数据未存储成功。而现有技术中,云存储系统却无法检测到上述未存储成功的数据,无法提示用户,当用户需要使用上述未存储成功的数据时,而由于数据未存储成功,导致用户无法使用数据,从而为用户带来困扰,影响用户体验。



技术实现要素:

本发明实施例的目的在于提供一种基于云存储的数据检测方法及装置,以实现云存储系统中对出现异常的数据的检测。具体技术方案如下:

一方面,本发明实施例提供了一种基于云存储的数据检测方法,所述方法包括:

获得管理节点对应待检测存储节点存储的第一最新日志信息的特征信息,其中,所述管理节点中存储有至少一个存储节点对应的日志信息,所述日志信息为每一存储节点执行每次数据写操作时生成并存储的信息;

获得所述待检测存储节点存储的第二最新日志信息的特征信息;

对比所述第一最新日志信息的特征信息与所述第二最新日志信息的特征信息;

当对比结果表征所述第一最新日志信息比所述第二最新日志信息新时,确定所述待检测存储节点存储的数据中包含异常数据。

可选的,在所述确定所述待检测存储节点存储的数据中包含异常数据的步骤之后,所述方法还包括:

根据所述第一最新日志信息的特征信息以及所述第二最新日志信息的特征信息,同步所述管理节点中的比所述第二最新日志信息新的至少一个第一日志信息至所述待检测存储节点;

根据所同步的至少一个第一日志信息,确定所述待检测存储节点存储的数据中所包含的所述异常数据。

可选的,所述根据所同步的至少一个第一日志信息,确定所述待检测存储节点存储的数据中所包含的所述异常数据的步骤,包括:

获得所述每个第一日志信息对应的第一数据;

对每个第一数据进行计算,获得对应的第一校验信息;

获得所述待检测存储节点存储的所述第一数据的第二校验信息,其中,所述第二校验信息为:所述待检测存储节点存储所述第一数据时所计算并存储的校验信息;

判断所述第一校验信息与所述第二校验信息是否相同;

当判断所述第一校验信息与所述第二校验信息不相同时,将所述第一数据确定为异常数据。

可选的,每个日志信息中均包含所对应的数据写操作所存储数据的数据标识以及待存储位置;

所述获得所述每个第一日志信息对应的第一数据的步骤,包括:

根据每个第一日志信息中所包含的第一数据标识以及第一待存储位置,读取所述待检测存储节点中对应的第一数据。

可选的,当所述对比结果表征所述第一最新日志信息不比所述第二最新日志信息新时,所述方法还包括:

根据所述第一最新日志信息的特征信息与所述第二最新日志信息的特征信息,确定所述待检测存储节点存储的比所述第一最新日志信息新的至少一个第二日志信息;

将所确定的所述至少一个第二日志信息同步至所述管理节点,以使所述管理节点对应所述待检测存储节点存储所述至少一个第二日志信息。

可选的,所述方法应用于数据检测设备,所述数据检测设备为所述管理节点;

在所述根据所同步的至少一个第一日志信息,确定所述待检测存储节点存储的数据中所包含的所述异常数据的步骤之后,所述方法还包括:

通知所述待检测存储节点对所确定的异常数据进行数据恢复。

可选的,所述方法应用于数据检测设备,所述数据检测设备为所述待检测存储节点;

在所述根据所同步的至少一个第一日志信息,确定所述待检测存储节点存储的数据中所包含的所述异常数据的步骤之后,所述方法还包括:

对所确定的异常数据进行数据恢复。

可选的,所述待检测存储节点依据纠删码技术存储数据;

所述对所确定的异常数据进行数据恢复的步骤,包括:

确定所述异常数据所在纠删码ec条带所包含的异常数据块,其中,所述异常数据块为包含出现异常的数据的数据块,所述ec条带中包含多个数据块;

判断所述异常数据块的数量是否超过预定数量;

当判断未超过预定数量时,通过所述ec条带恢复所述异常数据。

可选的,每个第一日志信息中包含所对应数据的数据标识;

当判断所述异常数据块的数量超过预定数量时,所述方法还包括:

获得存储配置信息;

根据所获得的存储配置信息以及所述异常数据的数据标识,判断所述异常数据所处云存储系统内是否存在所述异常数据的副本;

当判断所述异常数据所处云存储系统内存在所述异常数据的副本时,根据所述异常数据的副本恢复所述异常数据。

可选的,当判断所述异常数据所处云存储系统内不存在所述异常数据的副本时,所述方法还包括:

根据所获得的存储配置信息以及所述异常数据的数据标识,判断所述异常数据所处云存储系统外的其他云存储系统中,是否存在所述异常数据的副本;

当判断所述其他云存储系统中存在所述异常数据的副本时,根据所述其他云存储系统中所存在所述异常数据的副本恢复所述异常数据;

当判断所述其他云存储系统中不存在所述异常数据的副本时,通知用户重新上传所述异常数据的数据标识对应的数据。

可选的,当所述对比结果表征所述第一最新日志信息不比所述第二最新日志信息新时,所述方法还包括:

获得所述待检测存储节点对应的状态信息;

当所述状态信息表征所述待检测存储节点上次关闭为非正常关闭时,将所述待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据,所述第二数据为所述待检测存储节点存储的第二日志信息对应的数据;

对所述当前待检测数据进行计算,获得对应的第三校验信息;

获得所述待检测存储节点存储的所述第二数据的第四校验信息,其中,所述第四校验信息为:所述待检测存储节点存储所述第二数据时所计算并存储的校验信息;

判断所述第三校验信息与所述第四校验信息是否相同;

当判断所述第三校验信息与所述第四校验信息不相同时,将所述当前待检测数据及所述当前待检测数据之后的数据均确定为异常数据;

返回所述将所述待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据的步骤。

可选的,所述将所述待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据的步骤,包括:

采用二分法,将所述待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据。

另一方面,本发明实施例提供了一种基于云存储的数据检测装置,所述装置包括:

第一获得模块,用于获得管理节点对应待检测存储节点存储的第一最新日志信息的特征信息,其中,所述管理节点中存储有至少一个存储节点对应的日志信息,所述日志信息为每一存储节点执行每次数据写操作时生成并存储的信息;

第二获得模块,用于获得所述待检测存储节点存储的第二最新日志信息的特征信息;

对比模块,用于对比所述第一最新日志信息的特征信息与所述第二最新日志信息的特征信息;

第一确定模块,用于当对比结果表征所述第一最新日志信息比所述第二最新日志信息新时,确定所述待检测存储节点存储的数据中包含异常数据。

可选的,所述装置还包括第一同步模块和第二确定模块;

所述第一同步模块,用于在所述确定所述待检测存储节点存储的数据中包含异常数据的步骤之后,根据所述第一最新日志信息的特征信息以及所述第二最新日志信息的特征信息,同步所述管理节点中的比所述第二最新日志信息新的至少一个第一日志信息至所述待检测存储节点;

所述第二确定模块,用于根据所同步的至少一个第一日志信息,确定所述待检测存储节点存储的数据中所包含的所述异常数据。

可选的,所述第二确定模块包括第一获得单元、第二获得单元、第三获得单元、第一判断单元和第一确定单元;

所述第一获得单元,用于获得所述每个第一日志信息对应的第一数据;

所述第二获得单元,用于对每个第一数据进行计算,获得对应的第一校验信息;

所述第三获得单元,用于获得所述待检测存储节点存储的所述第一数据的第二校验信息,其中,所述第二校验信息为:所述待检测存储节点存储所述第一数据时所计算并存储的校验信息;

所述第一判断单元,用于判断所述第一校验信息与所述第二校验信息是否相同;

所述第一确定单元,用于当判断所述第一校验信息与所述第二校验信息不相同时,将所述第一数据确定为异常数据。

可选的,每个日志信息中均包含所对应的数据写操作所存储数据的数据标识以及待存储位置;

所述第一获得单元,具体用于根据每个第一日志信息中所包含的第一数据标识以及第一待存储位置,读取所述待检测存储节点中对应的第一数据。

可选的,所述装置还包括第三确定模块和第二同步模块;

所述第三确定模块,用于当所述对比结果表征所述第一最新日志信息不比所述第二最新日志信息新时,根据所述第一最新日志信息的特征信息与所述第二最新日志信息的特征信息,确定所述待检测存储节点存储的比所述第一最新日志信息新的至少一个第二日志信息;

所述第二同步模块,用于将所确定的所述至少一个第二日志信息同步至所述管理节点,以使所述管理节点对应所述待检测存储节点存储所述至少一个第二日志信息。

可选的,所述装置应用于数据检测设备,所述数据检测设备为所述管理节点;

所述装置还包括第一通知模块;

所述第一通知模块,用于在所述根据所同步的至少一个第一日志信息,确定所述待检测存储节点存储的数据中所包含的所述异常数据的步骤之后,通知所述待检测存储节点对所确定的异常数据进行数据恢复。

可选的,所述装置应用于数据检测设备,所述数据检测设备为所述待检测存储节点;

所述装置还包括第一恢复模块;

所述第一恢复模块,用于在所述根据所同步的至少一个第一日志信息,确定所述待检测存储节点存储的数据中所包含的所述异常数据的步骤之后,对所确定的异常数据进行数据恢复。

可选的,所述待检测存储节点依据纠删码技术存储数据;

所述第一恢复模块包括第二确定单元、第二判断单元和恢复单元;

所述第二确定单元,用于确定所述异常数据所在纠删码ec条带所包含的异常数据块,其中,所述异常数据块为包含出现异常的数据的数据块,所述ec条带中包含多个数据块;

所述第二判断单元,用于判断所述异常数据块的数量是否超过预定数量;

所述恢复单元,用于当判断未超过预定数量时,通过所述ec条带恢复所述异常数据。

可选的,每个第一日志信息中包含所对应数据的数据标识;

所述装置还包括第三获得模块、第一判断模块和第二恢复模块;

所述第三获得模块,用于当判断所述异常数据块的数量超过预定数量时,获得存储配置信息;

所述第一判断模块,用于根据所获得的存储配置信息以及所述异常数据的数据标识,判断所述异常数据所处云存储系统内是否存在所述异常数据的副本;

所述第二恢复模块,用于当判断所述异常数据所处云存储系统内存在所述异常数据的副本时,根据所述异常数据的副本恢复所述异常数据。

可选的,所述装置还包括第二判断模块、第三恢复模块和第二通知模块;

所述第二判断模块,用于当判断所述异常数据所处云存储系统内不存在所述异常数据的副本时,根据所获得的存储配置信息以及所述异常数据的数据标识,判断所述异常数据所处云存储系统外的其他云存储系统中,是否存在所述异常数据的副本;

所述第三恢复模块,用于当判断所述其他云存储系统中存在所述异常数据的副本时,根据所述其他云存储系统中所存在所述异常数据的副本恢复所述异常数据;

所述第二通知模块,用于当判断所述其他云存储系统中不存在所述异常数据的副本时,通知用户重新上传所述异常数据的数据标识对应的数据。

可选的,所述装置还包括第四获得模块、第四确定模块、第五获得模块、第六获得模块、第三判断模块和第五确定模块;

所述第四获得模块,用于当所述对比结果表征所述第一最新日志信息不比所述第二最新日志信息新时,获得所述待检测存储节点对应的状态信息;

所述第四确定模块,用于当所述状态信息表征所述待检测存储节点上次关闭为非正常关闭时,将所述待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据,所述第二数据为所述待检测存储节点存储的第二日志信息对应的数据;

所述第五获得模块,用于对所述当前待检测数据进行计算,获得对应的第三校验信息;

所述第六获得模块,用于获得所述待检测存储节点存储的所述第二数据的第四校验信息,其中,所述第四校验信息为:所述待检测存储节点存储所述第二数据时所计算并存储的校验信息;

所述第三判断模块,用于判断所述第三校验信息与所述第四校验信息是否相同;

所述第五确定模块,用于当判断所述第三校验信息与所述第四校验信息不相同时,将所述当前待检测数据及所述当前待检测数据之后的数据均确定为异常数据;返回所述第四确定模块。

可选的,所述第四确定模块,具体用于

采用二分法,将所述待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据。

本发明实施例中,获得管理节点对应待检测存储节点存储的第一最新日志信息的特征信息,管理节点中存储有至少一个存储节点对应的日志信息,日志信息为每一存储节点执行每次数据写操作时生成并存储的信息;获得待检测存储节点存储的第二最新日志信息的特征信息;对比第一最新日志信息的特征信息与第二最新日志信息的特征信息;当对比结果表征第一最新日志信息比第二最新日志信息新时,确定待检测存储节点存储的数据中包含异常数据。通过对比管理节点中所存储的待检测存储节点的最新日志信息的特征信息,与待检测存储节点存储的最新日志信息的特征信息,可以确定出待检测存储节点中是否包含异常数据,实现了云存储系统中对出现异常的数据的检测。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种基于云存储的数据检测方法的流程示意图;

图2为本发明实施例提供的一种基于云存储的数据检测方法的另一流程示意图;

图3为本发明实施例提供的一种基于云存储的数据检测装置的结构示意图;

图4为本发明实施例提供的一种基于云存储的数据检测装置的另一结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种基于云存储的数据检测方法及装置,以实现云存储系统中对出现异常的数据的检测。

下面首先对本发明实施例所提供的一种基于云存储的数据检测方法进行介绍。

需要说明的是,本发明实施例所提供的一种基于云存储的数据检测方法,可以应用于数据检测设备,该数据检测设备可以为任一可以与云存储系统中的存储节点以及管理节点进行信息交互的电子设备。其中,该电子设备与存储节点可以为同一物理设备,或者与管理节点为同一物理设备,或者为与存储节点以及管理节点均不同的物理设备。这都是可以的。

其中,当该电子设备与存储节点为同一物理设备时,本发明实施例中所提到的待检测存储节点可以为上述存储节点,也可以为能与上述存储节点进行信息交互的任意存储节点。当该电子设备与管理节点为同一物理设备时,该待检测存储节点可以为该管理节点所管辖范围内的所有或任意存储节点。

如图1所示,本发明实施例提供了一种基于云存储的数据检测方法,可以包括如下步骤:

s101:获得管理节点对应待检测存储节点存储的第一最新日志信息的特征信息,其中,管理节点中存储有至少一个存储节点对应的日志信息,日志信息为每一存储节点执行每次数据写操作时生成并存储的信息;

可以理解的是,在存储节点执行每次数据写操作时,会针对数据写操作生成并存储一个日志信息,其中,存储节点在存储日志信息时,以直写的方式存储日志信息,其中,该直写的方式可以为:不经过存储节点所配置操作系统的缓存的过程的方式。

存储节点生成日志信息后,将所生成的日志信息发送至管理节点,管理节点对应该存储节点存储该日志信息,其中,管理节点也以直写的方式存储日志信息,上述发送方式可以为异步发送,也可以是同步发送。

该电子设备可以定时或不定时的执行获得管理节点对应待检测存储节点存储的第一最新日志信息的特征信息的步骤,或者,当电子设备确定管理节点或存储节点重启时,即执行获得管理节点对应待检测存储节点存储的第一最新日志信息的特征信息的步骤,这都是可以的。

s102:获得待检测存储节点存储的第二最新日志信息的特征信息;

该特征信息可以为存储节点生成并存储日志信息时为日志信息分配的序列号,当存储节点执行每次数据写操作生成日志信息时,可以为该生成的日志信息分配一个序列号,存储节点在存储成功该日志信息时,也会存储成功该日志信息对应的序列号。并且,当存储节点将日志信息发送至管理节点时,同时将该日志信息对应的序列号发送至管理节点,以使管理节点存储该日志信息时,对应该日志信息存储该序列号。后续的,在对比管理节点中的日志信息与存储节点中的日志信息哪个最新时,可以通过该日志信息对应的序列号确定。

管理节点中可以存储有至少一个存储节点的日志信息,管理节点中所存储的各存储节点的日志信息之间的序列号互不影响。举例而言,管理节点中存储有存储节点a对应的日志信息以及各日志信息对应的序列号(例如:日志信息1-序列号1、日志信息2-序列号2、日志信息3-序列号4……),以及b存储节点对应的日志信息以及各日志信息对应的序列号(例如:日志信息1-序列号1、日志信息2-序列号2、日志信息3-序列号3……),存储节点a对应的日志信息的序列号与存储节点b对应的日志信息的序列号互不影响。

可以理解的是,存储节点在生成并存储日志信息时,可以为所生成并存储的日志信息分配一个序列号,该序列号在该存储节点中存在唯一性,并且通过序列号可以确定出所对应日志信息的新旧关系,即日志信息所对应的数据写操作的执行顺序。例如:存储节点为所生成并存储的日志信息分配的序列号顺序递增,即日志信息生成并存储的时间越早,该日志信息对应的序列号越小;或者,存储节点为所生成并存储的日志信息分配的序列号顺序递减,即日志信息生成并存储的时间越早,该日志信息对应的序列号越大,等等,这都是可以的。

或者,该特征信息可以为存储节点生成并存储日志信息时对应的生成时间。当存储节点执行每次数据写操作生成日志信息时,可以获得生成该日志信息时对应的生成时间,此时,当存储节点将日志信息发送至管理节点时,同时将该日志信息对应的生成时间发送至管理节点,以使管理节点存储该日志信息时,对应该日志信息存储该生成时间。后续的,在对比管理节点中的日志信息与存储节点中的日志信息哪个最新时,可以通过该日志信息对应的生成时间确定。

s103:对比第一最新日志信息的特征信息与第二最新日志信息的特征信息;

当该特征信息为存储节点生成并存储日志信息时为日志信息分配的序列号时,对比第一最新日志信息的特征信息与第二最新日志信息的特征信息,可以为对比第一最新日志信息对应的序列号与第二最新日志信息的序列号的大小。此时,当第一最新日志信息对应的序列号比第二最新日志信息的序列号大时,表征第一最新日志信息比第二最新日志信息新;反之,第二最新日志信息比第一最新日志信息新。

当该特征信息为存储节点存储日志信息时对应的生成时间时,对比第一最新日志信息的特征信息与第二最新日志信息的特征信息,可以为对比第一最新日志信息对应的生成时间与第二最新日志信息对应的生成时间,当第一最新日志信息对应的生成时间比第二最新日志信息对应的生成时间晚,表征第一最新日志信息比第二最新日志信息新;反之,表征第二最新日志信息比第一最新日志信息新。

s104:当对比结果表征第一最新日志信息比第二最新日志信息新时,确定待检测存储节点存储的数据中包含异常数据。

当对比结果表征第一最新日志信息比第二最新日志信息新时,可以表征该待检测存储节点对应所执行的数据写操作生成的日志信息,可能未成功存储于存储节点中。其中,出现日志信息未成功存储的情况,可能是由于待检测存储节点出现故障。此时,可以确定待检测存储节点存储的数据中包含异常数据。

应用本发明实施例,获得管理节点对应待检测存储节点存储的第一最新日志信息的特征信息,管理节点中存储有至少一个存储节点对应的日志信息,日志信息为每一存储节点执行每次数据写操作时生成并存储的信息;获得待检测存储节点存储的第二最新日志信息的特征信息;对比第一最新日志信息的特征信息与第二最新日志信息的特征信息;当对比结果表征第一最新日志信息比第二最新日志信息新时,确定待检测存储节点存储的数据中包含异常数据。通过对比管理节点中所存储的待检测存储节点的最新日志信息的特征信息,与待检测存储节点存储的最新日志信息的特征信息,可以确定出待检测存储节点中是否包含异常数据,实现了云存储系统中对出现异常的数据的检测。

为了便于云存储系统的管理,管理节点与存储节点的信息的同步以及保障用户权益,提高用户使用体验,电子设备可以将所确定出的所有第一日志信息同步至待检测存储节点。在一种实现方式中,基于图1所示流程,如图2所示,在所述确定待检测存储节点存储的数据中包含异常数据(s104)的步骤之后,所述方法还可以包括如下步骤:

s201:根据第一最新日志信息的特征信息以及第二最新日志信息的特征信息,同步管理节点中的比第二最新日志信息新的至少一个第一日志信息至待检测存储节点;

s202:根据所同步的至少一个第一日志信息,确定待检测存储节点存储的数据中所包含的异常数据。

当特征信息为存储节点生成并存储日志信息时为日志信息分配的序列号,且对比结果表征第一最新日志信息比第二最新日志信息新时,电子设备可以根据第一最新日志信息的序列号以及第二最新日志信息的序列号,从管理节点中确定出对应该待检测存储节点所存储的所有比第二最新日志信息新的第一日志信息,其中,当存储节点为所生成并存储的日志信息分配的序列号顺序递增时,第一日志信息所对应的序列号均大于第二最新日志信息的序列号。

当特征信息为存储节点存储日志信息时对应的生成时间,即为待检测存储节点存储日志信息时对应的生成时间,并且对比结果表征第一最新日志信息比第二最新日志信息新时,电子设备可以根据第一最新日志信息对应的生成时间以及第二最新日志信息对应的生成时间,从管理节点中确定出对应该待检测存储节点所存储的所有比第二最新日志信息新的第一日志信息,其中,第一日志信息对应的生成时间均晚于第二最新日志信息对应的生成时间。

为了能够从云存储系统中检测出出现异常的数据,在存储节点存储数据时,存储节点会对应存储的数据,计算并存储该数据的校验信息,以根据该校验信息检测该数据是否存储成功,即该数据是否为异常数据。在一种实现方式中,所述根据所同步的至少一个第一日志信息,确定待检测存储节点存储的数据中所包含的异常数据(s202)的步骤,可以包括:

获得每个第一日志信息对应的第一数据;

对每个第一数据进行计算,获得对应的第一校验信息;

获得待检测存储节点存储的第一数据的第二校验信息,其中,第二校验信息为:待检测存储节点存储第一数据时所计算并存储的校验信息;

判断第一校验信息与第二校验信息是否相同;

当判断第一校验信息与第二校验信息不相同时,将第一数据确定为异常数据。

校验信息(包括第一校验信息、第二校验信息以及后续提到的第三校验信息和第四校验信息)可以为所对应数据的crc(cyclicredundancycheck,循环冗余校验码)值或md5(messagedigestalgorithm,中文名为消息摘要算法第五版)值等等,凡是能唯一确定所对应数据的真实性以及完整性的信息,都可以作为本发明实施例中的校验信息,本发明实施例并不对校验信息的类型进行限定。

管理节点在接收到用户存储数据的存储指令时,根据该存储指令以及所管辖范围内的存储节点的资源状况,为该存储指令对应的数据分配存储节点,并通知存储节点存储数据,存储节点接收到该通知后,会根据该通知为待存储的数据分配具体的待存储位置,并且可以从存储指令中获得待存储的数据的数据标识,进而存储节点会对应该存储指令执行数据写操作,并对应该数据写操作生成日志信息。在一种实现方式中,每个日志信息中均可以包含所对应的数据写操作所存储数据的数据标识以及待存储位置;

所述获得每个第一日志信息对应的第一数据的步骤,可以包括:

根据每个第一日志信息中所包含的第一数据标识以及第一待存储位置,读取待检测存储节点中对应的第一数据。

该日志信息中除了包含所对应的数据写操作所存储数据的数据标识以及待存储位置,还可以包含所对应数据的时间,等等关于该所对应数据的相关信息,例如:数据的数据量、格式等等,本发明实施例并不对日志信息中所包含的信息类型进行限定。

在一种实现方式中,当对比结果表征第二最新日志信息比第一最新日志信息新时,还需要将待检测存储节点存储的比管理节点中对应该待检测存储节点的日志信息新的日志信息,同步至管理节点中,以使管理节点中所存储的日志信息与存储节点中的日志信息达到同步的效果,所述方法还可以包括:

根据第一最新日志信息的特征信息与第二最新日志信息的特征信息,确定待检测存储节点存储的比第一最新日志信息新的至少一个第二日志信息;

将所确定的至少一个第二日志信息同步至管理节点,以使管理节点对应待检测存储节点存储至少一个第二日志信息。

在一种实现方式中,所述数据检测设备可以为该管理节点;

在所述根据所同步的至少一个第一日志信息,确定待检测存储节点存储的数据中所包含的异常数据(s202)的步骤之后,所述方法还可以包括:

通知待检测存储节点对所确定的异常数据进行数据恢复。

可以理解的是,在电子设备确定出异常数据后,可以立即通知待检测存储节点对异常数据进行数据恢复,也可以定时或不定时地通知待检测存储节点对异常数据进行数据恢复,这都是可以的。

在另一种实现方式中,所述数据检测设备可以为待检测存储节点;

在所述根据所同步的至少一个第一日志信息,确定待检测存储节点存储的数据中所包含的异常数据(s202)的步骤之后,所述方法还可以包括:

对所确定的异常数据进行数据恢复。

为了更好的满足用户的需求,提高用户的使用体验。电子设备在确定出待检测存储节点存储的数据中的异常数据后,待检测存储节点可以根据电子设备的确定结果,继续对所确定出的异常数据进行数据恢复。当电子设备(即数据检测设备)由待检测存储节点实现时,在待检测存储节点确定所存储的数据中的异常数据后,可以立即对所确定出的异常数据进行数据恢复,也可以先将所确定出的异常数据设置成异常状态,然后定时或不定时的对设置成异常状态的异常数据进行恢复。上述将所确定出的异常数据设置成异常状态可以是对所确定出的异常数据的日志信息标记异常标签等等。

在一种实现方式中,所述待检测存储节点可以依据纠删码技术存储数据;

所述对所确定的异常数据进行数据恢复(s203)的步骤,可以包括:

确定异常数据所在纠删码ec条带所包含的异常数据块,其中,异常数据块为包含出现异常的数据的数据块,ec条带中包含多个数据块;

判断异常数据块的数量是否超过预定数量;

当判断未超过预定数量时,通过ec条带恢复异常数据。

该ec条带所包含数据块可以分布于不同的存储节点中,或者,当云存储系统中的存储节点数量较少,即存储节点数量小于ec条带所包含数据块的数量时,ec条带所包含数据块均匀的分布在不同存储节点中。当ec条带所包含的不同的数据块分布于同一存储节点中,并且,该存储节点连接有不同的存储设备时,上述数据块会均匀分布于该同一存储节点的不同存储设备中。该存储设备用于为所连接的存储节点提供存储数据的物理空间,该存储设备可以为磁盘、raid(redundantarraysofindependentdisks,磁盘阵列)等等可以提供存储空间的设备。可以理解的是,利用ec(纠删码,erasurecoding)技术存储数据时,该数据被分为预定数值个块,其中,该预定数值等于该数据所对应的ec条带所包含的数据块的数量,进而,可以将该数据分别存储于不同的存储节点中。每条ec条带中包含至少一个用于存储数据的数据块,以及至少一个存储冗余数据的数据块,其中,该冗余数据为根据所在ec条带中所存储的数据计算的,其中,该冗余数据的计算方式为现有技术,在此不做赘述。

需要说明的是,该预定数量等于该数据所在ec条带中的存储冗余数据的数据块的数量。例如:当ec条带中的存储冗余数据的数据块的数量为2时,该预定数量为2。当异常数据块的数量未超过预定数量时,可以利用现有技术,通过ec条带恢复该异常数据。

在一种实现方式中,每个第一日志信息中包含所对应数据的数据标识;

当判断异常数据块的数量超过预定数量时,所述方法还可以包括:

获得存储配置信息;

根据所获得的存储配置信息以及异常数据的数据标识,判断异常数据所处云存储系统内是否存在异常数据的副本;

当判断异常数据所处云存储系统内存在异常数据的副本时,根据异常数据的副本恢复异常数据。

需要强调的是,在存储数据时,管理节点会可以根据预设的配置信息,对数据进行备份存储,并存储该备份存储的信息,生成存储配置信息。可以理解的,该存储配置信息中可以包括数据的备份数量,以及存储每份备份的数据的存储节点的标识信息,其中,该标识信息可以唯一确定所对应的存储节点,以及每个存储节点所属的云存储系统。另外,该存储配置信息还可以存储于存储节点中,或者存储于该电子设备中,这都是可以的。

当判断异常数据块的数量超过预定数量时,可以获得存储配置信息,根据该存储配置信息确定以及异常数据的数据标识,判断异常数据所处云存储系统内是否存在异常数据的副本,当判断异常数据所处云存储系统内存在异常数据的副本时,根据该异常数据的副本恢复异常数据。当判断异常数据所处云存储系统内不存在异常数据的副本时,所述方法还可以包括:

根据所获得的存储配置信息以及异常数据的数据标识,判断异常数据所处云存储系统外的其他云存储系统中,是否存在异常数据的副本;

当判断其他云存储系统中存在异常数据的副本时,根据其他云存储系统中所存在异常数据的副本恢复异常数据;

当判断其他云存储系统中不存在异常数据的副本时,通知用户重新上传异常数据的数据标识对应的数据。

当该异常数据所在ec条带中的异常数据块的数量超过预定数据,且异常数据所处云存储系统内不存在异常数据的副本,且异常数据所处云存储系统外的其他云存储系统中,也不存在异常数据的副本时,电子设备可以获得该异常数据的数据标识,以及上传该异常数据的用户的用户标识,然后将该数据标识发送给用户标识对应的用户,以通知该用户重新上传该异常数据的数据标识对应的数据。

在一种实现方式中,当对比结果表征第一最新日志信息不比第二最新日志信息新时,所述方法还可以包括:

获得待检测存储节点对应的状态信息;

当状态信息表征待检测存储节点上次关闭为非正常关闭时,将待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据,第二数据为待检测存储节点存储的第二日志信息对应的数据;

对当前待检测数据进行计算,获得对应的第三校验信息;

获得待检测存储节点存储的第二数据的第四校验信息,其中,第四校验信息为:待检测存储节点存储第二数据时所计算并存储的校验信息;

判断第三校验信息与第四校验信息是否相同;

当判断第三校验信息与第四校验信息不相同时,将当前待检测数据及当前待检测数据之后的数据均确定为异常数据;

返回所述将待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据的步骤。

可以理解的是,当确定第一最新日志信息不比第二最新日志信息新时,可以表征待检测存储节点存储的日志信息比管理节点对应该待检测存储节点的日志信息新,或待检测存储节点存储的日志信息与管理节点对应该待检测存储节点的日志信息相同。此时,可以通过现有技术,判断待检测存储节点上次关闭是否为非正常关闭,例如:获得能够表征待检测存储节点上次关闭是否为非正常关闭的状态信息。

为了节省电子设备的资源,当电子设备检测到待检测存储节点中所存储的最早的异常数据后,即结束检测循环过程。举例而言:待检测存储节点中所存储的第二数据分别为数据1、数据2、数据3、数据4、数据5、数据6、数据7以及数据8;其中,数据1、数据2、数据3、数据4、数据5、数据6、数据7以及数据8分别对应的第二日志信息越来越新,即数据8对应的第二日志信息新于数据7对应的第二日志信息,数据7对应的第二日志信息新于数据6对应的第二日志信息;数据6对应的第二日志信息新于数据5对应的第二日志信息……数据2对应的第二日志信息新于数据1对应的第二日志信息;

将待检测存储节点中的数据1确定为当前待检测数据;对数据1进行计算,获得数据1对应的第三校验信息1;获得待检测存储节点存储的数据1的第四校验信息1;判断第三校验信息1与第四校验信息1是否相同;当判断第三校验信息1与第四校验信息1相同时,表征数据1为正常数据;

然后,从数据2、数据3、数据4、数据5、数据6、数据7以及数据8中确定一个数据为当前待检测数据;将数据5确定为当前待检测数据;对数据5进行计算,获得数据5对应的第三校验信息2;获得待检测存储节点存储的数据5的第四校验信息2;判断第三校验信息2与第四校验信息2是否相同;当判断第三校验信息2与第四校验信息2不同时,表征数据5为异常数据;此时可以将数据5以及数据5之后的数据均确定为异常数据;

然后,从数据2、数据3、数据4、数据6、数据7以及数据8中确定一个数据为当前待检测数据,或者,由于在确定出数据5为异常数据后,将数据5以及数据5之后的数据均确定为异常数据了,为了减少检测次数,可以不在重复检测确定为异常数据的第二数据,此时,可以仅从数据2、数据3、数据4中确定一个数据为当前待检测数据;

将数据4确定为当前待检测数据;对数据4进行计算,获得数据4对应的第三校验信息3;获得待检测存储节点存储的数据4的第四校验信息3;判断第三校验信息3与第四校验信息3是否相同;当判断第三校验信息3与第四校验信息3相同时,表征数据4为正常数据;此时,可以将数据5以及数据5之后的数据均确定为异常数据;同时,由于数据4为正常数据,且数据5为异常数据,可以认为该数据5即为待检测存储节点中所存储的最早的异常数据,此时可以结束检测循环过程。

承接上述例子,在一种实现方式中,在检测出数据5为异常数据后,数据6、数据7以及数据8中可能会存在正常数据;此时,也可以继续检测数据6、数据7以及数据8是否为真正的异常数据,这也是可以的。

或者,为了更好的保证检测结果的准确性,可以将待检测存储节点中所存储的所有第二数据检测一遍后,结束检测循环过程。

当待检测存储节点上次关闭为非正常关闭时,可以检测待检测存储节点所存储的第二数据是否为异常数据,其中,该第二数据为待检测存储节点存储的第二日志信息对应的数据,该第二日志信息可以为待检测存储节点存储的所有日志信息。

当特征信息为存储节点生成并存储日志信息时为日志信息分配的序列号时,可以按照待检测存储节点所存储成功的日志信息的序列号的升序顺序,确定将待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据的顺序,也可以以随机的方式将待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据,这都是可以的。

当特征信息为存储节点生成并存储日志信息时对应的生成时间,可以按照待检测存储节点所生成并存储成功的日志信息对应的生成时间的升序顺序,确定将待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据的顺序。

当当前待检测数据的第三校验信息与第四校验信息不相同时,可以将该当前待检测数据以及当前待检测数据之后的数据均确定为异常数据,其中,该当前待检测数据之后的数据为:所对应日志信息比当前待检测数据对应的日志信息新的数据。

为了减少检测次数,减轻电子设备的运行负担,在一种实现方式中,所述将待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据的步骤,可以包括:

采用二分法,将待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据。

举例而言,待检测存储节点存储5个日志信息,每一日志信息分别对应一个第二数据,分别为数据1、数据2、数据3、数据4和数据5;

先确定数据1为当前待检测数据,再确定数据5为当前待检测数据,然后确定数据3为当前待检测数据,然后根据数据1的检测结果、数据5的检测结果以及数据3的检测结果,确定下次再确定数据2为当前待检测数据,还是再确定数据4为当前待检测数据。

相应于上述方法实施例,本发明实施例提供了一种基于云存储的数据检测装置,如图3所示,所述装置可以包括:

第一获得模块310,用于获得管理节点对应待检测存储节点存储的第一最新日志信息的特征信息,其中,所述管理节点中存储有至少一个存储节点对应的日志信息,所述日志信息为每一存储节点执行每次数据写操作时生成并存储的信息;

第二获得模块320,用于获得所述待检测存储节点存储的第二最新日志信息的特征信息;

对比模块330,用于对比所述第一最新日志信息的特征信息与所述第二最新日志信息的特征信息;

第一确定模块340,用于当对比结果表征所述第一最新日志信息比所述第二最新日志信息新时,确定所述待检测存储节点存储的数据中包含异常数据。

应用本发明实施例,获得管理节点对应待检测存储节点存储的第一最新日志信息的特征信息,管理节点中存储有至少一个存储节点对应的日志信息,日志信息为每一存储节点执行每次数据写操作时生成并存储的信息;获得待检测存储节点存储的第二最新日志信息的特征信息;对比第一最新日志信息的特征信息与第二最新日志信息的特征信息;当对比结果表征第一最新日志信息比第二最新日志信息新时,确定待检测存储节点存储的数据中包含异常数据。通过对比管理节点中所存储的待检测存储节点的最新日志信息的特征信息,与待检测存储节点存储的最新日志信息的特征信息,可以确定出待检测存储节点中是否包含异常数据,实现了云存储系统中对出现异常的数据的检测。

在一种实现方式中,基于图3所示结构,如图4所示,所述装置还可以包括第一同步模块410和第二确定模块420;

所述第一同步模块410,用于在所述确定所述待检测存储节点存储的数据中包含异常数据的步骤之后,根据所述第一最新日志信息的特征信息以及所述第二最新日志信息的特征信息,同步所述管理节点中的比所述第二最新日志信息新的至少一个第一日志信息至所述待检测存储节点;

所述第二确定模块420,用于根据所同步的至少一个第一日志信息,确定所述待检测存储节点存储的数据中所包含的所述异常数据。

在一种实现方式中,所述第二确定模块420包括第一获得单元、第二获得单元、第三获得单元、第一判断单元和第一确定单元;

所述第一获得单元,用于获得所述每个第一日志信息对应的第一数据;

所述第二获得单元,用于对每个第一数据进行计算,获得对应的第一校验信息;

所述第三获得单元,用于获得所述待检测存储节点存储的所述第一数据的第二校验信息,其中,所述第二校验信息为:所述待检测存储节点存储所述第一数据时所计算并存储的校验信息;

所述第一判断单元,用于判断所述第一校验信息与所述第二校验信息是否相同;

所述第一确定单元,用于当判断所述第一校验信息与所述第二校验信息不相同时,将所述第一数据确定为异常数据。

在一种实现方式中,每个日志信息中均包含所对应的数据写操作所存储数据的数据标识以及待存储位置;

所述第一获得单元,具体用于根据每个第一日志信息中所包含的第一数据标识以及第一待存储位置,读取所述待检测存储节点中对应的第一数据。

在一种实现方式中,所述装置还可以包括第三确定模块和第二同步模块;

所述第三确定模块,用于当所述对比结果表征所述第一最新日志信息不比所述第二最新日志信息新时,根据所述第一最新日志信息的特征信息与所述第二最新日志信息的特征信息,确定所述待检测存储节点存储的比所述第一最新日志信息新的至少一个第二日志信息;

所述第二同步模块,用于将所确定的所述至少一个第二日志信息同步至所述管理节点,以使所述管理节点对应所述待检测存储节点存储所述至少一个第二日志信息。

在一种实现方式中,所述装置可以应用于数据检测设备,所述数据检测设备为所述管理节点;

所述装置还可以包括第一通知模块;

所述第一通知模块,用于在所述根据所同步的至少一个第一日志信息,确定所述待检测存储节点存储的数据中所包含的所述异常数据的步骤之后,通知所述待检测存储节点对所确定的异常数据进行数据恢复。

在一种实现方式中,所述装置可以应用于数据检测设备,所述数据检测设备为所述待检测存储节点;

所述装置还可以包括第一恢复模块;所述第一恢复模块,用于在所述根据所同步的至少一个第一日志信息,确定所述待检测存储节点存储的数据中所包含的所述异常数据的步骤之后,对所确定的异常数据进行数据恢复。

在一种实现方式中,所述待检测存储节点依据纠删码技术存储数据;

所述第一恢复模块包括第二确定单元、第二判断单元和恢复单元;

所述第二确定单元,用于确定所述异常数据所在纠删码ec条带所包含的异常数据块,其中,所述异常数据块为包含出现异常的数据的数据块,所述ec条带中包含多个数据块;

所述第二判断单元,用于判断所述异常数据块的数量是否超过预定数量;

所述恢复单元,用于当判断未超过预定数量时,通过所述ec条带恢复所述异常数据。

在一种实现方式中,每个第一日志信息中包含所对应数据的数据标识;

所述装置还可以包括第三获得模块、第一判断模块和第二恢复模块;

所述第三获得模块,用于当判断所述异常数据块的数量超过预定数量时,获得存储配置信息;

所述第一判断模块,用于根据所获得的存储配置信息以及所述异常数据的数据标识,判断所述异常数据所处云存储系统内是否存在所述异常数据的副本;

所述第二恢复模块,用于当判断所述异常数据所处云存储系统内存在所述异常数据的副本时,根据所述异常数据的副本恢复所述异常数据。

在一种实现方式中,所述装置还可以包括第二判断模块、第三恢复模块和第二通知模块;

所述第二判断模块,用于当判断所述异常数据所处云存储系统内不存在所述异常数据的副本时,根据所获得的存储配置信息以及所述异常数据的数据标识,判断所述异常数据所处云存储系统外的其他云存储系统中,是否存在所述异常数据的副本;

所述第三恢复模块,用于当判断所述其他云存储系统中存在所述异常数据的副本时,根据所述其他云存储系统中所存在所述异常数据的副本恢复所述异常数据;

所述第二通知模块,用于当判断所述其他云存储系统中不存在所述异常数据的副本时,通知用户重新上传所述异常数据的数据标识对应的数据。

在一种实现方式中,所述装置还可以包括第四获得模块、第四确定模块、第五获得模块、第六获得模块、第三判断模块和第五确定模块;

所述第四获得模块,用于当所述对比结果表征所述第一最新日志信息不比所述第二最新日志信息新时,获得所述待检测存储节点对应的状态信息;

所述第四确定模块,用于当所述状态信息表征所述待检测存储节点上次关闭为非正常关闭时,将所述待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据,所述第二数据为所述待检测存储节点存储存储的第二日志信息对应的数据;

所述第五获得模块,用于对所述当前待检测数据进行计算,获得对应的第三校验信息;

所述第六获得模块,用于获得所述待检测存储节点存储的所述第二数据的第四校验信息,其中,所述第四校验信息为:所述待检测存储节点存储所述第二数据时所计算并存储的校验信息;

所述第三判断模块,用于判断所述第三校验信息与所述第四校验信息是否相同;

所述第五确定模块,用于当判断所述第三校验信息与所述第四校验信息不相同时,将所述当前待检测数据及所述当前待检测数据之后的数据均确定为异常数据;返回所述第四确定模块。

在一种实现方式中,所述第四确定模块,具体用于采用二分法,将所述待检测存储节点存储的一个未检测的第二数据确定为当前待检测数据。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1