CN112306753B - 一种数据修复方法、装置及系统 - Google Patents
一种数据修复方法、装置及系统 Download PDFInfo
- Publication number
- CN112306753B CN112306753B CN202011195255.XA CN202011195255A CN112306753B CN 112306753 B CN112306753 B CN 112306753B CN 202011195255 A CN202011195255 A CN 202011195255A CN 112306753 B CN112306753 B CN 112306753B
- Authority
- CN
- China
- Prior art keywords
- data
- information
- verification information
- target data
- authoritative
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000012795 verification Methods 0.000 claims description 155
- 230000008439 repair process Effects 0.000 claims description 103
- 230000008569 process Effects 0.000 claims description 26
- 238000012544 monitoring process Methods 0.000 claims description 20
- 230000001960 triggered effect Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据修复方法、装置及系统,该方法获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息,确定多个副本数据分别对应的第二校验信息,并从各个第一校验信息和各个第二校验信息中分别确定出第一权威校验信息、第二权威校验信息,在此基础上,进一步基于确定出的两种权威校验信息以及多个副本数据中当前副本数据的第二校验信息,判定该当前副本数据的正确性,在不正确情形下,基于第一或第二权威校验信息对应的副本数据对该当前副本数据进行修复,或者,对目标数据执行由用户参与修复的预定处理,基于上述处理过程,当存在数据损坏等数据错误事件时,能及时检测发现这一情况并及时进行数据修复,避免了给用户带来损失。
Description
技术领域
本申请属于数据存储与恢复技术领域,尤其涉及一种数据修复方法、装置及系统。
背景技术
数据存储过程中,如果存储后端出现数据损坏,为了避免数据丢失,需及时进行数据修复。然而,当存储后端出现数据损坏时,用户可能无法直接、及时地感知到数据已损坏,例如数据的静默损坏,相应导致不能及时进行数据修复甚至遗漏修复,尤其是对于不经常访问的数据,该问题更为凸显。
不能及时感知数据损坏并及时进行数据修复对于用户来讲损失是巨大的,可能会导致损坏的数据无法修复(永久性丢失)的严重后果。
发明内容
有鉴于此,本申请提供了一种数据修复方法、装置及系统,用于达到在出现数据损坏等数据错误事件时能及时进行数据修复的目的。
具体技术方案如下:
一种数据修复方法,所述方法包括:
获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息,确定多个副本数据分别对应的第二校验信息;
从各个第一校验信息中确定出满足第一权威条件的第一权威校验信息;从各个第二校验信息中确定出满足第二权威条件的第二权威校验信息;
根据所述第二权威校验信息,确定所述多个副本数据中的当前副本数据的第二校验信息是否权威;
若所述当前副本数据的第二校验信息权威,确定所述当前副本数据的第二校验信息和所述第一权威校验信息是否一致;若不一致,对所述目标数据执行由用户参与修复的预定处理;
若所述当前副本数据的第二校验信息非权威,确定所述第一权威校验信息与所述第二权威校验信息是否一致;若一致,基于所述第一权威校验信息或所述第二权威校验信息对应的副本数据对所述当前副本数据进行修复;若不一致,对所述目标数据执行由用户参与修复的预定处理。
可选的,所述根据所述第二权威校验信息,确定所述多个副本数据中的当前副本数据的第二校验信息是否权威,包括:
确定所述当前副本数据的第二校验信息是否为所述第二权威校验信息;
若是所述第二权威校验信息,则所述当前副本数据的第二校验信息权威;
若不是所述第二权威校验信息,则所述当前副本数据的第二校验信息非权威。
可选的,所述对所述目标数据执行由用户参与修复的预定处理,包括:
获取目标数据发生错误的错误事件所对应的事件信息;
发送所述事件信息至客户端,以至少使客户端基于所述事件信息执行用于指示对所述目标数据进行修复的提示处理。
可选的,其中,所述目标数据发生错误的错误事件所对应的事件信息,包括:目标数据对应的块设备标识、目标数据的数据块对应的地址信息和目标数据对应的各副本数据。
可选的,在所述发送所述事件信息至客户端之后,还包括:
获得用户基于客户端的修复提示对所述目标数据进行修复而产生的修复数据;
基于所述修复数据对所述目标数据进行调整,得到调整后的目标数据;
生成所述调整后的目标数据对应的多个副本数据;
基于所述调整后的目标数据对应的多个副本数据,对所述目标数据的已存储的多个副本数据进行更新存储;
为更新存储后的副本数据生成并存储相应的校验信息。
可选的,所述目标数据的数据块对应的地址信息包括:所述目标数据的数据块对应的数据块偏移及数据块长度;
所述目标数据基于所述目标数据在客户端的文件系统中对应的文件信息得以在所述客户端完成相应修复提示及由用户参与的修复;
其中,所述目标数据在客户端的文件系统中对应的文件信息,通过根据所述块设备标识和所述数据块偏移确定所述目标数据的数据块在所述文件系统中对应的文件索引地址、根据所述文件索引地址确定所述目标数据的数据块在所述文件系统中对应的文件索引和数据块索引、根据所述文件索引和数据块索引确定所述目标数据的数据块在所述文件系统中所属的目标文件的文件名、路径信息以及所述目标数据在所述目标文件中的位置信息得到;
所述文件名、所述路径信息和所述位置信息构成所述文件信息。
可选的,其中:
所述目标数据在所述客户端对应的修复提示,包括:
根据所述文件名和/或所述路径信息,至少生成并显示用于指示对所述目标文件进行修复的提示信息;
在基于所述提示信息获得确认修复的指示信息时,根据所述路径信息进行引导处理,以引导打开所述目标文件;
在打开所述目标文件时,至少在目标文件中显示所述目标数据的各个副本数据,供用户查看并修复,以获得用户对所述目标数据的修复数据。
可选的,所述方法应用于第一存储节点中,在所述获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息之前,所述方法还包括:
获得一监控信息;所述监控信息至少能用于指示第一存储节点需处理的至少一个目标数据,以及目标数据对应的多个副本数据分别所属的存储节点;
基于所述监控信息,确定在所述第一存储节点待处理的至少一个目标数据。
一种数据修复装置,包括:
获取单元,用于获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息,确定多个副本数据分别对应的第二校验信息;
第一确定单元,用于从各个第一校验信息中确定出满足第一权威条件的第一权威校验信息;从各个第二校验信息中确定出满足第二权威条件的第二权威校验信息;
第二确定单元,用于根据所述第二权威校验信息,确定所述多个副本数据中的当前副本数据的第二校验信息是否权威;
处理单元,用于:
若所述当前副本数据的第二校验信息权威,确定所述当前副本数据的第二校验信息和所述第一权威校验信息是否一致;若不一致,对所述目标数据执行由用户参与修复的预定处理;
若所述当前副本数据的第二校验信息非权威,确定所述第一权威校验信息与所述第二权威校验信息是否一致;若一致,基于所述第一权威校验信息或所述第二权威校验信息对应的副本数据对所述当前副本数据进行修复;若不一致,对所述目标数据执行由用户参与修复的预定处理。
一种数据修复系统,包括存储端和客户端;
所述存储端,用于:
获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息,确定多个副本数据分别对应的第二校验信息;
从各个第一校验信息中确定出满足第一权威条件的第一权威校验信息;从各个第二校验信息中确定出满足第二权威条件的第二权威校验信息;
根据所述第二权威校验信息,确定所述多个副本数据中的当前副本数据的第二校验信息是否权威;
若所述当前副本数据的第二校验信息权威,确定所述当前副本数据的第二校验信息和所述第一权威校验信息是否一致;若不一致,对所述目标数据执行由用户参与修复的预定处理;
若所述当前副本数据的第二校验信息非权威,确定所述第一权威校验信息与所述第二权威校验信息是否一致;若一致,基于所述第一权威校验信息或所述第二权威校验信息对应的副本数据对所述当前副本数据进行修复;若不一致,对所述目标数据执行由用户在客户端参与修复的第一预定处理。
所述客户端,用于在所述第一权威校验信息与所述第二权威校验信息不一致的情况下,执行由用户参与对所述目标数据进行修复的第二预定处理。
由以上方案可知,本申请提供的数据修复方法、装置及系统,获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息,确定(例如,计算)多个副本数据分别对应的第二校验信息,并从各个第一校验信息和各个第二校验信息中分别确定出第一权威校验信息、第二权威校验信息,在此基础上,进一步基于确定出的两种权威校验信息以及多个副本数据中当前副本数据的第二校验信息,判定该当前副本数据的正确性(如,是否损坏等),在不正确情形下,则基于第一或第二权威校验信息对应的副本数据对该当前副本数据进行修复,或者,对目标数据执行由用户参与修复的预定处理,基于上述处理过程,当存在数据损坏等数据错误事件时,能及时检测发现这一情况并及时进行数据修复,避免了给用户带来损失。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请实施例提供的数据修复方法的一种流程示意图;
图2是本申请实施例提供的本申请方法的一分布式存储应用场景架构图;
图3是本申请实施例提供的存储端校验数据和数据块的映射关系示意图;
图4是本申请实施例提供的数据修复方法的另一流程示意图;
图5是本申请实施例提供的数据修复方法的又一流程示意图;
图6是本申请实施例提供的客户端确定目标数据在客户端的文件系统中对应的文件信息的处理过程流程图;
图7是本申请实施例提供的存储端和客户端关系映射图;
图8是本申请实施例提供的客户端对用户进行修复提示及提示基础上的由用户参与修复的处理流程图;
图9是本申请实施例提供的数据修复方法的再一流程示意图;
图10是本申请实施例提供的数据修复装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着软件定义存储(Software Defined Storage,SDS)的广泛应用,后端存储平台,如作为公司日常应用的后端存储平台,对外提供了块接口、对象接口、文件系统等丰富的接口,用户可以在虚拟化平台用块接口在虚拟机内运行业务系统,也可以采用对象接口访问业务数据存储平台,或者,也可以用文件系统接口访问备份系统的备份空间。在基于各种接口的后端存储应用中,如果存储后端出现数据损坏,尤其是用户无感知的静默损坏(数据损坏时在客户端无任何提示),在用户不经常访问情况下无法获知数据已损坏,不能及时感知数据损坏对于用户来讲损失是巨大的,严重的后果是损坏的数据无法恢复(数据永久性丢失)。
基于此,本申请提供了一种数据修复方法、装置及系统,以至少在存储端存在诸如数据损坏等的数据错误事件时能及时进行数据修复。
参见图1,为本申请一可选实施例提供的数据修复方法的一种流程示意图,该数据修复方法可应用于存储端,例如,具体可应用于但不限于云端(公有云/私有云)或局域网的数据存储服务器中,较典型的,该方法可应用于包括多个节点的分布式存储集群的任一存储节点中,每个存储节点可对应包括一个或多个用于存储数据的物理机(如,服务器或cache设备),具体可参见图2示出的应用场景架构图,集群中的存储节点可通过网络(或非网络,如数据连接线)及相应接口(如文件系统接口)为客户端提供数据存储及读写等数据访问服务。
本申请实施例中,在存储端,数据以多副本形式存储,较典型地,可采用三副本方式将每个数据存储为三份,其中每份作为数据的一个副本,各个副本互为备份。
另外,存储端在对每个数据进行存储时,为每个数据生成并对应记录相应的校验信息。具体地,针对每一待存储数据,可基于预定的校验值计算算法,如预定的消息摘要算法、安全散列算法或者消息认证码算法等,为其计算一校验值,并将数据与记录的校验值对应存储。
实施中,可选的,针对存储的每个校验值,可为其关联存储一用于指向其所对应数据的数据存储地址,存储端可采用但不限于以数据块为单位对数据进行存储,针对每个数据块为其计算并记录相对应的校验值,由此,参见图3,在存储端,针对存储的每个数据块,可具有如图3示出的校验数据和数据块之间的映射关系。
为了与下文中在读取目标数据各副本时为读取的各副本实时计算的校验信息加以区分,本实施例将存储数据时为其记录的校验信息称为第一校验信息,将为读取的各副本实时计算的校验信息称为第二校验信息。
以上分布式应用场景仅为本申请示例性提供的典型场景,但不限于此,实际应用中,用于数据存储并为客户端提供数据读写等访问服务的存储端以及用于面向用户提供数据访问功能的客户端,还可以实现在同一设备(如,同一计算机)中,本申请对此不加限制。
如图1所示,本申请实施例公开的数据修复方法,可以包括以下处理:
步骤101、获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息,确定多个副本数据分别对应的第二校验信息。
在将数据写入存储端以进行多副本存储的写操作过程中,某副本所在的存储节点可能会因节点掉电、磁盘故障、服务代码bug,外部攻击等原因而导致写入的该副本的数据不正确或不完整(相对应,为其计算并记录的校验值相比于该副本对应的原始数据也不正确),另外,在写操作完毕而存储数据的过程中,可能会因类似的原因,如,磁盘故障、服务代码bug,攻击等而导致已存储的数据发生损坏。
为了及时检测发现此类数据错误事件,并进行数据修复,可选地,可在存储端,如分布式集群的各存储节点中,设定扫描条件,并基于扫描条件自动触发对存储端所存储数据的扫描检测,以确定数据是否正确。其中,扫描条件可以但不限于设定为以下的任意一种:
定时触发进行数据的扫描检测的条件;
周期性触发进行数据的扫描检测的条件;
基于存储端的资源(如CPU、磁盘剩余容量等)、磁盘实时I/O等确定出的在满足空闲状态时触发进行数据的扫描检测的条件;
在基于扫描条件,而触发对存储端的数据的扫描检测时,即进入本步骤101:获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息,确定多个副本数据分别对应的第二校验信息。
以上述的三副本存储方式为例,在本步骤中,具体可读取目标数据的三个副本数据以及为三个副本数据分别记录的三个第一校验信息,同时,采用与存储目标数据时为目标数据各副本生成第一校验信息相同的方式(如相同的校验值计算算法),为读取的各个副本数据分别实时生成一第二校验信息。
在上述的分布式场景中,对于同一数据(如同一数据块)的三个副本,优选地,本实施例将三个副本分别存储于不同的存储节点,以增强存储端抗灾能力,也就是说,同一数据的三个副本未处于同一存储节点,为避免不同节点对同一数据的重复扫描(如针对同一数据的三副本,避免对数据进行三次扫描),本申请实施例针对同一数据的三副本所对应的三个存储节点,从中择其一而将其设置为该数据的主本节点(主本设备),由主本节点负责对该数据对应的三副本数据进行获取及后续的数据正确与否的检测与修复处理过程。
进一步地,对于分布式存储场景,为了尽可能保证各存储节点的任务均衡,对于每个节点存储的全部数据来说,一般仅会选取其中的部分数据(如,部分而非全量数据块)作为该节点待处理的目标数据,也即,将该节点作为该“部分数据”的主本节点负责对其各副本数据的获取及后续的数据正确性检测与修复处理过程,而该节点中所述的“部分数据”除外的其他数据的主本节点则为其他节点,由其他节点负责其处理过程。
由此,对于存储端当前的某一节点来说,其待处理的目标数据,即可以为该节点存储的数据中以该节点作为主本节点的数据。从而,在基于扫描条件而触发对数据的扫描检测后,存储端的当前存储节点,从自身节点以及相应副本所在的其他节点获取以该当前节点为主本节点的目标数据的各个副本数据,并读取为各个副本数据分别记录的各个第一校验信息,同时,采用与存储目标数据时为目标数据各副本生成第一校验信息相同的方式(如相同的校验值计算算法),为读取的各个副本数据分别实时生成一第二校验信息。
需要说明的是,对于存储端某一节点来说,其对应的待处理的目标数据,可以为该节点中以该节点为主本节点的数据中的全部数据或部分数据,本实施例对此不加限制,具体地,例如,在确定出节点中以该节点作为主本节点的全部数据基础上,可进一步从该全部数据中筛选出惰性数据作为待处理的目标数据,其中,惰性数据是指长时间不被访问的数据,实施中,可通过读取数据的访问属性信息(如,最近访问时间),并基于设定的时长条件确定数据是否为惰性数据。
步骤102、从各个第一校验信息中确定出满足第一权威条件的第一权威校验信息;从各个第二校验信息中确定出满足第二权威条件的第二权威校验信息。
其中,目标数据的满足第一权威条件的第一权威校验信息,可以是但不限于:为目标数据的多个副本记录的各个第一校验信息中取值数量最多的校验信息,以数据的三副本存储方式为例,假设,为某一数据的三副本分别记录的三个第一校验信息中有两个第一校验信息的取值相同,则该两个第一校验信息的取值即可确定为第一权威校验信息。
相类似,目标数据的满足第二权威条件的第二权威校验信息,可以是但不限于:为目标数据的多个副本实时生成的各个第二校验信息中取值数量最多的校验信息。
步骤103、根据所述第二权威校验信息,确定所述多个副本数据中的当前副本数据的第二校验信息是否权威。
具体地,可确定当前副本数据的第二校验信息是否为确定出的第二权威校验信息,即,确定当前副本数据的第二校验信息与第二权威校验信息是否一致,若是,则当前副本数据的第二校验信息权威,若否,则当前副本数据的第二校验信息非权威。
由于当前副本数据的第二校验信息是基于读取的当前副本数据实时计算得到的,两者对应一致,因此,确定当前副本数据的第二校验信息是否权威,本质上相当于确定当前副本数据是否权威。
步骤104、若所述当前副本数据的第二校验信息权威,确定所述当前副本数据的第二校验信息和所述第一权威校验信息是否一致;若不一致,触发执行步骤105;若一致,则当前副本数据正确,不需修复;
步骤105、对所述目标数据执行由用户参与修复的预定处理。
在当前副本数据的第二校验信息权威的情形下,继续确定当前副本数据的第二校验信息和基于记录的各个第一校验信息确定出的第一权威校验信息是否一致。
若两者不一致,则判定该当前副本数据的数据不正确,例如,可能是在写磁盘以进行数据存储的时刻因节点掉电、磁盘故障、服务代码bug,攻击等原因而导致存储的该副本数据不正确或不完整,或者写操作完毕进行数据存储的过程中因相类似原因而导致数据发生损坏等。
进一步地,由于当前副本数据的第二校验信息权威,相当于表示该当前副本数据基于实时计算的各个第二校验信息而言,在目标数据的各个副本中是权威、可信的,为便于表述,将其称为在计算通道权威、可信,然而,又由于当前副本数据的第二校验信息(本质上即为第二权威校验信息)与第一权威校验信息不一致,从而该当前副本数据针对记录的各个第一校验信息而言,在目标数据的各个副本中又是非权威、不可信的,相对地,将其称为在记录通道非权威、不可信,那么,针对此种情形,本实施例判定当前副本数据不正确,同时鉴于计算通道与记录通道的权威的不一致性,无法获知哪个通道更为权威,因此,判定目标数据的各个副本数据中不存在权威可信的副本作为依据用来对该当前副本数据进行自动修复,相应触发由用户参与修复的预定处理。
在当前副本数据的第二校验信息权威的前提下,若当前副本数据的第二校验信息和第一权威校验信息一致,判定该当前副本数据正确,无需进行修复处理,并且,若后续检测出目标数据的其他副本数据不正确,可将该当前副本数据作为对数据不正确的其他副本的修复依据。
步骤106、若所述当前副本数据的第二校验信息非权威,确定所述第一权威校验信息与所述第二权威校验信息是否一致;若一致,触发执行步骤107;若不一致,触发步骤105的对目标数据执行由用户参与修复的预定处理;
步骤107、基于第一权威校验信息或第二权威校验信息对应的副本数据对所述当前副本数据进行修复。
若当前副本数据的第二校验信息非权威,则认为当前副本数据不正确,即发生了数据错误,需对该当前副本数据进行修复。
在该情况下,继续判断基于记录通道获得的第一权威校验信息与基于计算通道获得的第二权威校验信息是否一致,若两个权威校验信息一致,表明计算通道与记录通道对应的权威副本是一致的,相应判定第一权威校验信息或第二权威校验信息对应的副本数据权威、可信,可用于作为对当前副本数据进行修复的依据,并基于该依据对当前副本数据进行修复,此修复过程直接由存储端自动完成,即存储端自我修复,无需客户端用户的参与,在用户无感知情形下完成数据修复。
反之,若第一权威校验信息与第二权威校验信息不一致,表明计算通道与记录通道对应的权威副本不一致,此种情况判定目标数据的各个副本数据中不存在权威可信的副本作为依据用来对该当前副本数据进行自动修复,同样触发由用户参与修复的预定处理。
本申请提供的数据修复方法,获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息,确定(例如,计算)多个副本数据分别对应的第二校验信息,并从各个第一校验信息和各个第二校验信息中分别确定出第一权威校验信息、第二权威校验信息,在此基础上,进一步基于确定出的两种权威校验信息以及多个副本数据中当前副本数据的第二校验信息,判定该当前副本数据的正确性(如,是否损坏等),在不正确情形下,则基于第一或第二权威校验信息对应的副本数据对该当前副本数据进行修复,或者,对目标数据执行由用户参与修复的预定处理,基于上述处理过程,当存在数据损坏等数据错误事件时,能及时检测发现这一情况并及时进行数据修复,避免了给用户带来损失。
参见图4示出的数据修复方法的另一流程图,可选的,上述数据修复方法中的步骤105(对目标数据执行由用户参与修复的预定处理)具体可实现为:
步骤1051、获取目标数据发生错误的错误事件所对应的事件信息。
目标数据发生错误的错误事件所对应的事件信息,可以包括:目标数据对应的块设备(如磁盘)标识、目标数据的数据块对应的地址信息和目标数据对应的各副本数据。
其中,块设备标识可以是但不限于块设备名称、UUID(Universally UniqueIdentifier,通用唯一识别码)等,目标数据的数据块对应的地址信息包括:目标数据的数据块对应的数据块偏移及数据块长度。
所述事件信息不限于以上的各项信息,例如,除了上述的块设备标识等信息,还可以包括目标数据各副本的计算校验块(第二校验信息),连续错误的数据块个数等中的任一项或多项。
步骤1052、发送所述事件信息至客户端,以至少使客户端基于所述事件信息执行用于指示对所述目标数据进行修复的提示处理。
实施中,存储端可以以消息通知或指令等方式将所述事件信息推送至客户端。对于上述的基于网络的分布式存储场景,存储端具体可向客户端发送一网络报文通知,网络报文中携带目标数据发生错误的错误事件所对应的各项信息,以下示例性提供本实施例的一网络报文信息结构:
客户端基于存储端发送的上述事件信息,对用户进行目标数据的修复提示,用户基于该修复提示选择修复或不修复目标数据,若用户选择修复目标数据,则存储端最终接收客户端返回的用户修复数据并完成对目标数据的修复(若用户放弃对目标数据的修复,存储端维持对目标数据的现有存储)。
由此,如图5所示,本申请实施例的数据修复方法在步骤1052之后,还可以包括以下处理:
步骤108、获得用户基于客户端的修复提示对所述目标数据进行修复而产生的修复数据。
用户基于客户端的修复提示,对目标数据进行修复而产生的修复数据,可以为用户通过对目标数据执行增加、删除或修改操作而产生的增加数据、删除数据、修改数据中的任意一种或多种。
存储端接收客户端回传的用户修复数据。
步骤109、基于所述修复数据对所述目标数据进行调整,得到调整后的目标数据。
存储端基于客户端回传的修复数据,对目标数据进行增加、删除或修改等调整操作,相应得到调整后的目标数据。
步骤110、生成所述调整后的目标数据对应的多个副本数据。
由于存储端基于多副本方式存储数据,因此,针对调整后的目标数据,可基于复制技术得到所需数量的多副本数据,如三副本数据等。
步骤111、基于所述调整后的目标数据对应的多个副本数据,对所述目标数据的已存储的多个副本数据进行更新存储。
之后,将目标数据的已存储的多个原有副本数据更新存储为调整后的目标数据对应的多个副本数据,例如,将调整后的目标数据对应的多个副本数据,分别更新存储至分布式集群中用于存储该目标数据各个副本的各个存储节点等。
步骤112、为更新存储后的副本数据生成并存储相应的校验信息。
同时,为更新存储后的每个副本数据分别生成并记录相对应的校验信息,该校验信息作为第一校验信息参与下一轮扫描过程中对目标数据的正确性验证及修复处理过程。
本实施例中,存储端在无法从目标数据的各副本数据中确定出用来作为对当前副本数据进行修复的修复依据相应无法实现自我修复时,才触发由用户参与的修复处理,尽可能减少了用户的修复工作量,并且,在后端存储无法自我修复时及时触发由用户参与的数据修复处理,避免了给用户带来损失。
对于客户端用户来说,其一般基于文件系统实现对存储端数据的访问,而数据在存储端的后端存储则是基于数据块实现的,因此,当需由用户在客户端对目标数据进行修复时,需将存储端目标数据转换为文件系统中用户可见、可操作的文件的数据。
鉴于此,本申请实施例中,目标数据具体基于目标数据在客户端的文件系统中对应的文件信息得以在客户端完成相应修复提示及由用户参与的修复。
目标数据在客户端的文件系统中对应的文件信息,由客户端根据所述事件信息中的块设备标识和数据块偏移确定所述目标数据的数据块在所述文件系统中对应的文件索引地址、根据所述文件索引地址确定所述目标数据的数据块在所述文件系统中对应的文件索引和数据块索引、根据所述文件索引和数据块索引确定所述目标数据的数据块在所述文件系统中所属的目标文件的文件名、路径信息以及所述目标数据在所述目标文件中的位置信息得到。
以下进一步说明客户端通过确定目标数据在客户端的文件系统中对应的文件信息,并基于确定的文件信息实现对用户进行修复提示及提示基础上的用户参与修复的详细处理过程。
参见图6,客户端确定目标数据在客户端的文件系统中对应的文件信息的处理过程,具体可以包括:
步骤601、根据所述块设备标识,获取所述文件系统的预定元数据信息。
客户端获得存储端发送的上述事件信息,如接收客户端推送的上述网络报文通知等,从中解析得到目标数据对应的块设备标识(如,块设备UUID)、目标数据的数据块对应的数据块偏移及数据块长度,和目标数据对应的各副本数据等各项信息。
为了能够精确的分析出错误数据块对应的数据文件及偏移,本申请实施例在客户端实现了一个内核模块,用于负责监听存储端的网络报文通知,并在监听到存储端的网络报文时,解析存储端网络报文,根据解析出的各项信息逆向分析待修复的目标数据的数据块对应的数据文件偏移和长度,具体可参见图7。
其中,内核模块首先根据解析得到的块设备标识,获取客户端文件系统的预定元数据信息,具体地,可根据块设备标识读取文件系统类型,根据文件系统类型读取超级块,得到文件系统块大小、文件系统元数据块数量、文件系统数据块数量、文件系统数据区起始地址、文件索引的大小(即summary信息的大小)以及文件每一块能存储的文件索引的个数等元数据信息。
步骤602、根据发生数据错误的目标数据的数据块对应的数据块偏移和所述预定元数据信息,确定目标数据的数据块在所述文件系统中对应的文件索引地址。
其中,根据目标数据的数据块偏移和所述预定元数据信息,确定目标数据的数据块在客户端文件系统中对应的文件索引地址的过程可以包括:
1)确定客户端文件系统的文件索引起始地址:
Summary_total_count=data_count/file_index_entry_size/entry_cnt_per_block;
Summary_start_pos=data_start_pos–Summary_total_count;
其中:
data_count表示文件系统数据块数量;
file_index_entry_size表示文件索引的大小;
entry_cnt_per_block表示每一块能存储的文件索引的个数;
data_start_pos表示文件系统数据区起始地址;
Summary_start_pos表示文件索引起始地址,即Summary起始地址。
2)确定目标数据的数据块在数据块中的序号(page序号):
Bad_block_index=(offset–meta_count*blocksize)/blocksize:
Bad_Summary_pos=bad_block_index/file_index_entry_size/entry_cnt_per_block;
其中:
offset表示目标数据的数据块对应的数据块偏移;
meta_count表示文件系统元数据块数量;
blocksize表示文件系统块大小;
file_index_entry_size表示文件索引的大小;
entry_cnt_per_block表示每一块能存储的文件索引的个数;
Bad_Summary_pos表示目标数据的数据块在数据块中的序号。
3)确定目标数据的数据块在客户端文件系统中对应的文件索引地址:
Bad_summary_block_addr=summary_start_pos+Bad_Summary_pos。
其中,Bad_summary_block_addr表示最终得到的所述文件索引地址,即为图7中所示的文件系统summary的地址。
步骤603、根据所述文件索引地址,获取目标数据的数据块在所述文件系统中对应的文件索引和数据块索引。
其中,具体可根据文件索引地址读取文件索引信息(如图7中示出的文件系统summary的信息),从中解析出目标数据的数据块在文件系统中对应的文件索引(文件ino)和数据块索引。
步骤604、根据所述文件索引确定目标数据的数据块在所述文件系统中所属的目标文件的文件名,并确定所述文件名对应的路径信息。
具体可根据文件索引及数据块索引,获取目标数据的数据块在客户端文件系统中所属的目标文件的文件名及其对应的父目录,进而基于文件名及其对应的父目录递归还原出目标文件的文件全路径。
步骤605、根据所述数据块索引和所述数据块长度确定所述目标数据的数据块在所述目标文件中的位置信息。
在此基础上,进一步根据所述数据块索引和目标数据的数据块长度确定目标数据的数据块在其所属的目标文件中的位置信息,如确定目标数据的数据块在属于目标文件中对应的页码、段落和/或行数等等。
目标文件的数据块在文件系统中所属目标文件的文件名、路径信息及其在目标文件中的位置信息,构成目标文件的数据块在文件系统中对应的文件信息。
在此基础上,客户端可进一步基于确定的文件信息实现对用户进行修复提示及提示基础上的由用户参与修复的处理,参见图8,该过程可以包括:
步骤801、根据所述文件名和/或所述路径信息,至少生成并显示用于指示对所述目标文件进行修复的提示信息。
例如,具体采用一提示框,在客户端界面显示用于指示目标文件发生数据错误,需对其进行修复的提示信息等,提示框中显示的提示信息至少包括:目标文件的文件名。
除此之外,可选地,还可以包括目标文件对应的路径信息,和/或目标文件中错误数据的位置信息等其他信息。
步骤802、在基于所述提示信息获得确认修复的指示信息时,根据所述路径信息进行引导处理,以引导打开所述目标文件。
若用户选择对目标文件进行修复,客户端相应得到确认修复的指示信息,响应于该指示信息,客户端根据目标文件的路径信息引导打开目标文件,以供用户对目标文件进行数据查看及修复。
步骤803、在打开所述目标文件时,至少在目标文件中显示所述目标数据的各个副本数据,以供用户查看并修复。
在打开目标文件后,可显示目标文件的全量数据,其中,为了便于用户对错误数据即发生了数据错误的目标数据的直观查看,可直接将目标文件定位至目标数据的位置供用户查看及修复。
可选地,还可以在打开的目标文件中仅显示其中的错误数据(发生了数据错误的目标数据),以方便用户的查看及修复。
步骤804、获得用户对所述目标数据的修复数据,将获得的修复数据发送至存储端。
用户基于客户端的修复提示对目标数据进行修复而产生的修复数据,可以为用户对目标数据执行增加、删除或修改操作而产生的增加数据、删除数据、修改数据中的任意一种或多种。
客户端基于用户的修复操作获得用户对目标数据的以上任意类型的修复数据,并将其回传至存储端。存储端基于客户端回传的修复数据,对目标数据执行增加、删除或修改等调整操作,相应得到调整后的目标数据,实现了对无法在存储端自我修复的目标数据及时进行由用户干预的修复,避免了在数据发生错误的情况下,为用户带来损失。
对于上述的分布式存储集群这一应用场景,本申请提供的数据修复方法可应用于集群的任一存储节点中,以将该方法应用于第一存储节点为例,参阅图9示出的数据修复方法的又一流程示意图,本申请公开的数据修复方法在步骤101之前,还可以包括以下处理:
步骤901、获得一监控信息;所述监控信息至少能用于指示第一存储节点需处理的至少一个目标数据,以及目标数据对应的多个副本数据分别所属的存储节点;
步骤902、基于所述监控信息,确定在所述第一存储节点待处理的至少一个目标数据。
为了便于集群中每个节点确定自身需进行扫描处理的目标数据,本申请实施例预先在集群中提供了一监控服务,用于监控、记录集群中数据的各副本分别所处的节点,并基于预定策略(如基于节点资源的任务均衡策略)确定与维护集群中每个节点作为主本节点需负责扫描的目标数据。
集群中每个节点在接收到扫描指令后,在步骤101之前,首先从集群监控服务至少获得记录有节点自身作为主本节点需负责扫描的目标数据及其各副本分别在集群中所处节点的监控信息,并根据获得的监控信息,确定自身节点待处理的至少一个目标数据,
在此基础上,可进一步展触发以上任一方法实施例提供的数据修复方法处理流程,实现对目标数据进行自我修复或由用户参与修复的处理过程。
本实施例通过在集群中提供上述的监控服务,可避免集群中各节点对存储的数据的重复扫描,同时尽可能保证了各存储节点的任务均衡。
对应于上述的数据修复方法,本申请实施例还提供了一种数据修复装置,该装置同样可应用于存储端,如应用于上述的分布式存储集群中的任一存储节点等,参见图10示出的数据修复装置的结构示意图,该装置可以包括:
获取单元1001,用于获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息,确定多个副本数据分别对应的第二校验信息;
第一确定单元1002,用于从各个第一校验信息中确定出满足第一权威条件的第一权威校验信息;从各个第二校验信息中确定出满足第二权威条件的第二权威校验信息;
第二确定单元1003,用于根据所述第二权威校验信息,确定所述多个副本数据中的当前副本数据的第二校验信息是否权威;
处理单元1004,用于:
若所述当前副本数据的第二校验信息权威,确定所述当前副本数据的第二校验信息和所述第一权威校验信息是否一致;若不一致,对所述目标数据执行由用户参与修复的预定处理;
若所述当前副本数据的第二校验信息非权威,确定所述第一权威校验信息与所述第二权威校验信息是否一致;若一致,基于所述第一权威校验信息或所述第二权威校验信息对应的副本数据对所述当前副本数据进行修复;若不一致,对所述目标数据执行由用户参与修复的预定处理。
在本申请实施例的一可选实施方式中,第二确定单元1003,具体用于:
确定所述当前副本数据的第二校验信息是否为所述第二权威校验信息;
若是所述第二权威校验信息,则所述当前副本数据的第二校验信息权威;
若不是所述第二权威校验信息,则所述当前副本数据的第二校验信息非权威。
在本申请实施例的一可选实施方式中,处理单元1004,对目标数据执行由用户参与修复的预定处理,包括:
获取目标数据发生错误的错误事件所对应的事件信息;
发送所述事件信息至客户端,以至少使客户端基于所述事件信息执行用于指示对所述目标数据进行修复的提示处理。
在本申请实施例的一可选实施方式中,所述目标数据发生错误的错误事件所对应的事件信息,包括:目标数据对应的块设备标识、目标数据的数据块对应的地址信息和目标数据对应的各副本数据。
在本申请实施例的一可选实施方式中,处理单元1004,在发送所述事件信息至客户端之后,还用于:
获得用户基于客户端的修复提示对所述目标数据进行修复而产生的修复数据;
基于所述修复数据对所述目标数据进行调整,得到调整后的目标数据;
生成所述调整后的目标数据对应的多个副本数据;
基于所述调整后的目标数据对应的多个副本数据,对所述目标数据的已存储的多个副本数据进行更新存储;
为更新存储后的副本数据生成并存储相应的校验信息。
在本申请实施例的一可选实施方式中,所述目标数据的数据块对应的地址信息包括:所述目标数据的数据块对应的数据块偏移及数据块长度;
所述目标数据基于所述目标数据在客户端的文件系统中对应的文件信息得以在所述客户端完成相应修复提示及由用户参与的修复;
其中,所述目标数据在客户端的文件系统中对应的文件信息,通过根据所述块设备标识和所述数据块偏移确定所述目标数据的数据块在所述文件系统中对应的文件索引地址、根据所述文件索引地址确定所述目标数据的数据块在所述文件系统中对应的文件索引和数据块索引、根据所述文件索引和数据块索引确定所述目标数据的数据块在所述文件系统中所属的目标文件的文件名、路径信息以及所述目标数据在所述目标文件中的位置信息得到;
所述文件名、所述路径信息和所述位置信息构成所述文件信息。
在本申请实施例的一可选实施方式中,所述目标数据在所述客户端对应的修复提示,包括:
根据所述文件名和/或所述路径信息,至少生成并显示用于指示对所述目标文件进行修复的提示信息;
在基于所述提示信息获得确认修复的指示信息时,根据所述路径信息进行引导处理,以引导打开所述目标文件;
在打开所述目标文件时,至少在目标文件中显示所述目标数据的各个副本数据,供用户查看并修复,以获得用户对所述目标数据的修复数据。
在本申请实施例的一可选实施方式中,所述装置应用于第一存储节点中;
获取单元1001,在所述获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息之前,还用于:
获得一监控信息;所述监控信息至少能用于指示第一存储节点需处理的至少一个目标数据,以及目标数据对应的多个副本数据分别所属的存储节点;
基于所述监控信息,确定在所述第一存储节点待处理的至少一个目标数据。
对于本申请实施例公开的数据修复装置而言,由于其与上文任一方法实施例公开的数据修复方法相对应,所以描述的比较简单,相关相似之处请参见上文任一方法实施例中数据修复方法部分的说明即可,此处不再详述。
另外,本申请实施例还公开了一种数据修复系统,该系统包括存储端和客户端。
其中,所述存储端,用于:
获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息,确定多个副本数据分别对应的第二校验信息;
从各个第一校验信息中确定出满足第一权威条件的第一权威校验信息;从各个第二校验信息中确定出满足第二权威条件的第二权威校验信息;
根据所述第二权威校验信息,确定所述多个副本数据中的当前副本数据的第二校验信息是否权威;
若所述当前副本数据的第二校验信息权威,确定所述当前副本数据的第二校验信息和所述第一权威校验信息是否一致;若不一致,对所述目标数据执行由用户参与修复的预定处理;
若所述当前副本数据的第二校验信息非权威,确定所述第一权威校验信息与所述第二权威校验信息是否一致;若一致,基于所述第一权威校验信息或所述第二权威校验信息对应的副本数据对所述当前副本数据进行修复;若不一致,对所述目标数据执行由用户在客户端参与修复的第一预定处理。
所述客户端,用于在所述第一权威校验信息与所述第二权威校验信息不一致的情况下,执行由用户参与对所述目标数据进行修复的第二预定处理。
存储端与客户端的交互过程具体可参阅上文任一方法实施例的说明,不再赘述,基于本申请实施例的数据修复系统,当存在数据损坏等数据错误事件时,能及时检测发现这一情况并及时进行数据修复,避免了给用户带来损失。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种数据修复方法,所述方法包括:
获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息,确定多个副本数据分别对应的第二校验信息;
从各个第一校验信息中确定出满足第一权威条件的第一权威校验信息,所述第一权威校验信息为所述目标数据的多个副本记录的各个第一校验信息中取值数量最多的校验信息;从各个第二校验信息中确定出满足第二权威条件的第二权威校验信息,所述第二权威校验信息为所述目标数据的多个副本实时生成的各个第二校验信息中取值数量最多的校验信息;
根据所述第二权威校验信息,确定所述多个副本数据中的当前副本数据的第二校验信息是否权威;
若所述当前副本数据的第二校验信息权威,确定所述当前副本数据的第二校验信息和所述第一权威校验信息是否一致;若不一致,对所述目标数据执行由用户参与修复的预定处理;
若所述当前副本数据的第二校验信息非权威,确定所述第一权威校验信息与所述第二权威校验信息是否一致;若一致,基于所述第一权威校验信息或所述第二权威校验信息对应的副本数据对所述当前副本数据进行修复;若不一致,对所述目标数据执行由用户参与修复的预定处理。
2.根据权利要求1所述的方法,所述根据所述第二权威校验信息,确定所述多个副本数据中的当前副本数据的第二校验信息是否权威,包括:
确定所述当前副本数据的第二校验信息是否为所述第二权威校验信息;
若是所述第二权威校验信息,则所述当前副本数据的第二校验信息权威;
若不是所述第二权威校验信息,则所述当前副本数据的第二校验信息非权威。
3.根据权利要求1所述的方法,所述对所述目标数据执行由用户参与修复的预定处理,包括:
获取目标数据发生错误的错误事件所对应的事件信息;
发送所述事件信息至客户端,以至少使客户端基于所述事件信息执行用于指示对所述目标数据进行修复的提示处理。
4.根据权利要求3所述的方法,其中,所述目标数据发生错误的错误事件所对应的事件信息,包括:目标数据对应的块设备标识、目标数据的数据块对应的地址信息和目标数据对应的各副本数据。
5.根据权利要求4所述的方法,在所述发送所述事件信息至客户端之后,还包括:
获得用户基于客户端的修复提示对所述目标数据进行修复而产生的修复数据;
基于所述修复数据对所述目标数据进行调整,得到调整后的目标数据;
生成所述调整后的目标数据对应的多个副本数据;
基于所述调整后的目标数据对应的多个副本数据,对所述目标数据的已存储的多个副本数据进行更新存储;
为更新存储后的副本数据生成并存储相应的校验信息。
6.根据权利要求5所述的方法,所述目标数据的数据块对应的地址信息包括:所述目标数据的数据块对应的数据块偏移及数据块长度;
所述目标数据基于所述目标数据在客户端的文件系统中对应的文件信息得以在所述客户端完成相应修复提示及由用户参与的修复;
其中,所述目标数据在客户端的文件系统中对应的文件信息,通过根据所述块设备标识和所述数据块偏移确定所述目标数据的数据块在所述文件系统中对应的文件索引地址、根据所述文件索引地址确定所述目标数据的数据块在所述文件系统中对应的文件索引和数据块索引、根据所述文件索引和数据块索引确定所述目标数据的数据块在所述文件系统中所属的目标文件的文件名、路径信息以及所述目标数据在所述目标文件中的位置信息得到;
所述文件名、所述路径信息和所述位置信息构成所述文件信息。
7.根据权利要求6所述的方法,其中:
所述目标数据在所述客户端对应的修复提示,包括:
根据所述文件名和/或所述路径信息,至少生成并显示用于指示对所述目标文件进行修复的提示信息;
在基于所述提示信息获得确认修复的指示信息时,根据所述路径信息进行引导处理,以引导打开所述目标文件;
在打开所述目标文件时,至少在目标文件中显示所述目标数据的各个副本数据,供用户查看并修复,以获得用户对所述目标数据的修复数据。
8.根据权利要求1所述的方法,所述方法应用于第一存储节点中,在所述获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息之前,所述方法还包括:
获得一监控信息;所述监控信息至少能用于指示第一存储节点需处理的至少一个目标数据,以及目标数据对应的多个副本数据分别所属的存储节点;
基于所述监控信息,确定在所述第一存储节点待处理的至少一个目标数据。
9.一种数据修复装置,包括:
获取单元,用于获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息,确定多个副本数据分别对应的第二校验信息;
第一确定单元,用于从各个第一校验信息中确定出满足第一权威条件的第一权威校验信息,所述第一权威校验信息为所述目标数据的多个副本记录的各个第一校验信息中取值数量最多的校验信息;从各个第二校验信息中确定出满足第二权威条件的第二权威校验信息,所述第二权威校验信息为所述目标数据的多个副本实时生成的各个第二校验信息中取值数量最多的校验信息;
第二确定单元,用于根据所述第二权威校验信息,确定所述多个副本数据中的当前副本数据的第二校验信息是否权威;
处理单元,用于:
若所述当前副本数据的第二校验信息权威,确定所述当前副本数据的第二校验信息和所述第一权威校验信息是否一致;若不一致,对所述目标数据执行由用户参与修复的预定处理;
若所述当前副本数据的第二校验信息非权威,确定所述第一权威校验信息与所述第二权威校验信息是否一致;若一致,基于所述第一权威校验信息或所述第二权威校验信息对应的副本数据对所述当前副本数据进行修复;若不一致,对所述目标数据执行由用户参与修复的预定处理。
10.一种数据修复系统,包括存储端和客户端;
所述存储端,用于:
获得目标数据的多个副本数据和为各副本数据分别记录的第一校验信息,确定多个副本数据分别对应的第二校验信息;
从各个第一校验信息中确定出满足第一权威条件的第一权威校验信息,所述第一权威校验信息为所述目标数据的多个副本记录的各个第一校验信息中取值数量最多的校验信息;从各个第二校验信息中确定出满足第二权威条件的第二权威校验信息,所述第二权威校验信息为所述目标数据的多个副本实时生成的各个第二校验信息中取值数量最多的校验信息;
根据所述第二权威校验信息,确定所述多个副本数据中的当前副本数据的第二校验信息是否权威;
若所述当前副本数据的第二校验信息权威,确定所述当前副本数据的第二校验信息和所述第一权威校验信息是否一致;若不一致,对所述目标数据执行由用户参与修复的预定处理;
若所述当前副本数据的第二校验信息非权威,确定所述第一权威校验信息与所述第二权威校验信息是否一致;若一致,基于所述第一权威校验信息或所述第二权威校验信息对应的副本数据对所述当前副本数据进行修复;若不一致,对所述目标数据执行由用户在客户端参与修复的第一预定处理;
所述客户端,用于在所述第一权威校验信息与所述第二权威校验信息不一致的情况下,执行由用户参与对所述目标数据进行修复的第二预定处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011195255.XA CN112306753B (zh) | 2020-10-30 | 2020-10-30 | 一种数据修复方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011195255.XA CN112306753B (zh) | 2020-10-30 | 2020-10-30 | 一种数据修复方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112306753A CN112306753A (zh) | 2021-02-02 |
CN112306753B true CN112306753B (zh) | 2024-07-23 |
Family
ID=74333221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011195255.XA Active CN112306753B (zh) | 2020-10-30 | 2020-10-30 | 一种数据修复方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112306753B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704359B (zh) * | 2021-09-03 | 2024-04-26 | 优刻得科技股份有限公司 | 一种时序数据库多数据副本的同步方法、系统以及服务器 |
CN114780021B (zh) * | 2022-03-25 | 2022-11-29 | 北京百度网讯科技有限公司 | 副本修复方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108573007A (zh) * | 2017-06-08 | 2018-09-25 | 北京金山云网络技术有限公司 | 检测数据一致性的方法、装置、电子设备及存储介质 |
CN110460487A (zh) * | 2019-06-25 | 2019-11-15 | 网宿科技股份有限公司 | 服务节点的监控方法及系统、服务节点 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841521A (zh) * | 2010-01-22 | 2010-09-22 | 中国科学院计算机网络信息中心 | 对dns报文中的身份信息进行认证的方法、服务器和系统 |
CN108572883B (zh) * | 2017-04-19 | 2021-06-18 | 北京金山云网络技术有限公司 | 一种数据正确性校验方法及装置 |
-
2020
- 2020-10-30 CN CN202011195255.XA patent/CN112306753B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108573007A (zh) * | 2017-06-08 | 2018-09-25 | 北京金山云网络技术有限公司 | 检测数据一致性的方法、装置、电子设备及存储介质 |
CN110460487A (zh) * | 2019-06-25 | 2019-11-15 | 网宿科技股份有限公司 | 服务节点的监控方法及系统、服务节点 |
Also Published As
Publication number | Publication date |
---|---|
CN112306753A (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9268648B1 (en) | System and method for consistency verification of replicated data in a recovery system | |
US10229152B2 (en) | Automatically restoring data replication consistency without service interruption during parallel apply | |
CN111538719B (zh) | 数据迁移方法、装置、设备及计算机存储介质 | |
US7769721B2 (en) | Data recovery method in differential remote backup for a NAS system | |
US8001075B2 (en) | Log file amnesia detection | |
US7925630B1 (en) | Method of inserting a validated time-image on the primary CDP subsystem in a continuous data protection and replication (CDP/R) subsystem | |
US20070220328A1 (en) | Shutdown recovery | |
CN112306753B (zh) | 一种数据修复方法、装置及系统 | |
CN112286728A (zh) | 数据备份方法、装置、设备及计算机存储介质 | |
JP4506841B2 (ja) | ファイル管理方法、ファイル管理装置およびプログラム | |
CN113190448B (zh) | 测试代码更新方法及装置、电子设备、存储介质 | |
US8271454B2 (en) | Circular log amnesia detection | |
CN113190531A (zh) | 一种数据库迁移方法、装置、设备和存储介质 | |
TW201335779A (zh) | 檔案同步系統及方法 | |
CN109947730B (zh) | 元数据恢复方法、装置、分布式文件系统及可读存储介质 | |
CN108459925B (zh) | 私有云设备及其数据库的修复方法、具有存储功能的装置 | |
CN107402841B (zh) | 大规模分布式文件系统数据修复方法及设备 | |
CN116483284B (zh) | 一种读写虚拟硬盘的方法、装置、介质及电子设备 | |
WO2021056798A1 (zh) | 一种元数据修复方法、装置、设备及存储介质 | |
CN112463444A (zh) | 一种数据不一致修复方法及相关装置 | |
CN111625397A (zh) | 业务日志备份方法、集群、装置、电子设备及存储介质 | |
US20220058207A1 (en) | Database management system data replication | |
CN112637293B (zh) | 数据修复系统、方法、装置、电子设备及存储介质 | |
US20230214486A1 (en) | System and method of backup slice control for recovering data archives | |
US12014056B2 (en) | Slice file recovery using dead replica slice files |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |