CN115470049A - 一种元数据修复方法、装置、电子设备及存储介质 - Google Patents

一种元数据修复方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115470049A
CN115470049A CN202211420802.9A CN202211420802A CN115470049A CN 115470049 A CN115470049 A CN 115470049A CN 202211420802 A CN202211420802 A CN 202211420802A CN 115470049 A CN115470049 A CN 115470049A
Authority
CN
China
Prior art keywords
entry
table entry
damaged
secondary address
backup
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.)
Granted
Application number
CN202211420802.9A
Other languages
English (en)
Other versions
CN115470049B (zh
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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry 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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202211420802.9A priority Critical patent/CN115470049B/zh
Publication of CN115470049A publication Critical patent/CN115470049A/zh
Application granted granted Critical
Publication of CN115470049B publication Critical patent/CN115470049B/zh
Priority to PCT/CN2023/084812 priority patent/WO2024103596A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种元数据修复方法、装置、电子设备及存储介质,涉及虚拟存储领域,方法包括:在确定虚拟磁盘的二级地址表中存在损坏表项时,在虚拟磁盘对应的备份磁盘中查询与损坏表项对应的备份表项;二级地址表的各个表项用于记录虚拟磁盘中各个用户数据的地址;当查找到备份表项时,利用备份表项对损坏表项进行修复;当未查找到备份表项时,通过扫描虚拟磁盘中所有用户数据的地址构建反推二级地址表,并利用反推二级地址表对损坏表项进行修复;可采用备份数据和通过扫描虚拟磁盘中所有用户数据地址的方式构建的反推二级地址表对虚拟磁盘的二级地址表中的损坏表项进行修复,以尽可能修复丢失的用户数据。

Description

一种元数据修复方法、装置、电子设备及存储介质
技术领域
本发明涉及虚拟存储领域,特别涉及一种元数据修复方法、装置、电子设备及计算机可读存储介质。
背景技术
虚拟磁盘是虚拟机设备中的重要组成部分,其中qcow2是虚拟磁盘常见的格式。相关技术中,一级地址表(L1 Table)和二级地址表(L2 Table)是虚拟磁盘进行地址管理所需的重要元数据,其中一级地址表用于存放二级地址表在虚拟磁盘中的地址,而二级地址表用于存放用户数据簇(Data Cluster)在虚拟磁盘中的地址。这样,虚拟磁盘便可依照L1至L2的顺序进行用户数据查询。此外,虚拟磁盘在寻址过程中,为了提高查找数据的效率,经常使用内存中已缓存的二级地址表记录已经访问过的用户数据簇。然而,当***断电、文件***异常时,可能导致二级地址表缓存数据紊乱,进而导致二级地址表无法下刷到虚拟磁盘、数据内容转变为随机数等问题。此时,该二级地址表便无法用于寻址,进而就造成了虚拟磁盘的数据丢失问题。
因此,如何修复损坏的二级数据表是本领域技术人员亟需解决的技术问题。
发明内容
本发明的目的是提供一种元数据修复方法、装置、电子设备及计算机可读存储介质,可采用备份数据和通过扫描虚拟磁盘中所有用户数据地址的方式构建的反推二级地址表对虚拟磁盘的二级地址表中的损坏表项进行修复,以尽可能修复丢失的用户数据。
为解决上述技术问题,本发明提供一种元数据修复方法,包括:
在确定虚拟磁盘的二级地址表中存在损坏表项时,在所述虚拟磁盘对应的备份磁盘中查询与所述损坏表项对应的备份表项;所述二级地址表的各个表项用于记录所述虚拟磁盘中各个用户数据的地址;
当查找到所述备份表项时,利用所述备份表项对所述损坏表项进行修复;
当未查找到所述备份表项时,通过扫描所述虚拟磁盘中所有用户数据的地址构建反推二级地址表,并利用所述反推二级地址表对所述损坏表项进行修复。
可选地,在确定虚拟磁盘的二级地址表中存在损坏表项之前,还包括:
从所述虚拟磁盘中获取所述二级地址表,并将所述二级地址表中的每个表项依次设置为待检测表项;
判断所述待检测表项的数据内容能否被预设数据簇大小整除;
若否,则确定所述待检测表项为损坏表项。
可选地,所述从所述虚拟磁盘中获取所述二级地址表,包括:
从所述虚拟磁盘中获取一级地址表,并根据所述一级地址表的各个表项在所述虚拟磁盘中查找对应的二级地址表;所述一级地址表的表项用于记录各所述二级地址表在所述虚拟磁盘中的起始地址。
可选地,在确定所述待检测表项为损坏表项之后,还包括:
记录所述损坏表项在所述一级地址表中对应的索引;
相应的,所述在所述虚拟磁盘对应的备份磁盘中查询与所述损坏表项对应的备份表项,包括:
从所述备份磁盘中获取备份一级地址表,并利用所述索引及所述备份一级地址表在所述备份磁盘中查找所述备份表项。
可选地,还包括:
定期利用所述虚拟磁盘中的数据对所述备份磁盘中的数据进行备份更新。
可选地,所述通过扫描所述虚拟磁盘中所有用户数据的地址构建反推二级地址表,包括:
跳过所述虚拟磁盘头部预设大小的磁盘数据,并在剩余的磁盘数据中,依照从前到后的顺序将指定大小的数据依次设置为待验证数据;
利用预设特征对所述待验证数据进行匹配验证,并在确定所述待验证数据通过所述匹配验证时,将所述待验证数据在所述虚拟磁盘中的目标地址写入所述反推二级地址表,以将所述目标地址作为所述反推二级地址表的表项。
可选地,所述利用预设特征对所述待验证数据进行匹配验证,包括:
在确定所述待验证数据的首部和尾部并不同时包含一级地址表的关键字,以及所述待验证数据与引用计数表的关键字不同时,确定所述待验证数据通过所述匹配验证。
可选地,所述利用所述反推二级地址表对所述损坏表项进行修复,包括:
查找所述损坏表项在所述二级地址表中对应的前一个正常表项;
确定所述正常表项在所述反推二级地址表中对应的目标表项,并利用所述目标表项的后一表项对所述损坏表项进行修复。
可选地,所述利用所述反推二级地址表对所述损坏表项进行修复,包括:
在所述二级地址表中确定由连续的已损坏表项构成的损坏表项组,并查找所述损坏表项组对应的前一个正常表项;
确定所述正常表项在所述反推二级地址表中对应的目标表项,并利用所述目标表项之后指定数量的表项对所述损坏表项组进行修复;所述指定数量为所述损坏表项组所包含的损坏表项数量。
可选地,在利用所述反推二级地址表对所述损坏表项进行修复之后,还包括:
将已修复的损坏表项标记为已修复表项,并确定所述已修复表项在所述二级地址表中的目标索引值;
重新启动所述虚拟磁盘所属的虚拟机,并在所述虚拟机中确定所述已修复表项对应的用户数据是否恢复;
若否,则在预设偏移区间内为所述目标索引值增加偏移值,以移动所述已修复表项在所述二级地址表中所处的位置;所述偏移值为预设数据簇大小的整数倍。
可选地,在预设偏移区间内为所述目标索引值增加偏移值之前,还包括:
确定由连续的已修复表项构成的已修复表项组,并确定与所述已修复表项组在所述二级地址表中对应的前一正常表项和后一正常表项;
在所述二级地址表中确定所述前一正常表项对应的第一索引值和所述后一正常表项对应的第二索引值;利用所述第一索引值、所述第二索引值及所述预设数据簇大小确定与所述已修复表项组对应的预设偏移区间;
相应的,所述在预设偏移区间内为所述目标索引值增加偏移值,包括:
在所述已修复表项所属的已修复表项组对应的预设偏移区间内为所述目标索引值增加偏移值。
可选地,在预设偏移区间内为所述目标索引值增加偏移值之后,还包括:
重新启动所述虚拟磁盘所属的虚拟机,并在所述虚拟机中确定增加了所述偏移值的已修复表项对应的用户数据是否恢复;
若否,则在所述预设偏移区间内调整所述偏移值,为所述已修复表项的目标索引值增加调整后的偏移值,并进入所述重新启动所述虚拟磁盘所属的虚拟机的步骤。
本发明还提供一种元数据修复装置,包括:
备份表项查询模块,用于在确定虚拟磁盘的二级地址表中存在损坏表项时,在所述虚拟磁盘对应的备份磁盘中查询与所述损坏表项对应的备份表项;所述二级地址表的各个表项用于记录所述虚拟磁盘中各个用户数据的地址;
第一修复模块,用于当查找到所述备份表项时,利用所述备份表项对所述损坏表项进行修复;
第二修复模块,用于当未查找到所述备份表项时,通过扫描所述虚拟磁盘中所有用户数据的地址构建反推二级地址表,并利用所述反推二级地址表对所述损坏表项进行修复。
本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的元数据修复方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的元数据修复方法。
本发明提供一种元数据修复方法,包括:在确定虚拟磁盘的二级地址表中存在损坏表项时,在所述虚拟磁盘对应的备份磁盘中查询与所述损坏表项对应的备份表项;所述二级地址表的各个表项用于记录所述虚拟磁盘中各个用户数据的地址;当查找到所述备份表项时,利用所述备份表项对所述损坏表项进行修复;当未查找到所述备份表项时,通过扫描所述虚拟磁盘中所有用户数据的地址构建反推二级地址表,并利用所述反推二级地址表对所述损坏表项进行修复。
可见,本发明在确定虚拟磁盘的二级地址表中存在损坏表项时,会优先在与虚拟磁盘对应的备份磁盘中查询与损坏表项对应的备份表项,并利用较为准确的备份数据优先修复损坏表项,以提升恢复用户数据的成功率;随后,假若无法从备份磁盘中查询到相关备份表项,则本发明还可通过扫描虚拟磁盘中所有用户数据地址的方式构建反推二级地址表,并利用反推二级地址表对损坏表项进行修复,这是由于反推二级地址表可包含所有用户数据地址,且二级地址表中仍存在包含正确用户数据地址的正常表项,进而二级地址表与反推二级表之间存在相似性,本发明便可基于这一相似性,利用反推二级地址表对损坏表项进行修复,并尽可能地避免用户数据丢失。简单来讲,本发明可采用备份数据和上述反推二级地址表对虚拟磁盘的二级地址表中的损坏表项进行修复,以尽可能修复丢失的用户数据。本发明还可提供一种元数据修复装置、电子设备及计算机可读存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种元数据修复方法的流程图;
图2为本发明实施例所提供的第一种二级地址表表项修复的示意图;
图3为本发明实施例所提供的第二种二级地址表表项修复的示意图;
图4为本发明实施例所提供的第三种二级地址表表项修复的示意图;
图5为本发明实施例所提供的一种元数据修复装置的结构框图;
图6为本发明实施例所提供的另一种元数据修复装置的结构框图;
图7为本发明实施例所提供的一种电子设备的结构框图;
图8为本发明实施例所提供的一种计算机可读存储介质的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,一级地址表(L1 Table)和二级地址表(L2 Table)是虚拟磁盘进行地址管理所需的重要元数据,其中二级地址表用于存放用户数据簇在虚拟磁盘中的地址。然而,当***断电、文件***异常时,二级地址表缓存可能出现数据紊乱的情况,进而导致二级地址表的数据无法下刷到虚拟磁盘、数据内容转变为随机数等问题。此时,该二级地址表便无法用于寻址,进而就造成了虚拟磁盘的数据丢失问题。有鉴于此,本发明可提供一种元数据修复方法,可采用备份数据和通过扫描虚拟磁盘中所有用户数据地址的方式构建的反推二级地址表对虚拟磁盘的二级地址表中的损坏表项进行修复,以尽可能修复丢失的用户数据。请参考图1,图1为本发明实施例所提供的一种元数据修复方法的流程图,该方法可以包括:
S101、在确定虚拟磁盘的二级地址表中存在损坏表项时,在虚拟磁盘对应的备份磁盘中查询与损坏表项对应的备份表项;二级地址表的各个表项用于记录虚拟磁盘中各个用户数据的地址。
首先应当指出的是,二级地址表中的每个表项均用于保存对应的用户数据在虚拟磁盘中的地址,而虚拟磁盘正是依靠二级地址表中的各个表项进行用户数据寻址。这意味着假若在二级地址表中发现了损坏的表项,则该表项中保存的用户数据地址便无效,虚拟磁盘将无法利用该损坏表项查找到对应的用户数据,进而便意味着该用户数据丢失。因此,假若能够对二级地址表中损坏的表项进行修复,恢复二级地址表与用户数据之间的对应关系,便意味着找回了丢失的用户数据。
本发明实施例首先可为虚拟磁盘引入对应的备份磁盘,并利用该备份磁盘对其保存的用户数据、一级地址表、二级地址表等进行备份。进而,在发现虚拟磁盘的二级地址表中存在损坏表项时,便可利用备份磁盘中对应的备份表项对损坏表项进行修复,以达到恢复用户数据的效果。在实际应用中,备份磁盘可从物理上与虚拟磁盘所在的生产存储池相隔离,这样在生产存储池遭遇机械或电力故障时,备份存储池将不受影响,尽可最大程度地保护用户数据安全。当然,需说明的是,在本发明实施例中,仅会使用备份磁盘恢复虚拟磁盘二级地址表中存在故障的损坏表项,但并不会修复该表项对应的用户数据。这是由于用户数据本身可能并未存在损坏,仅是其在二级地址表中对应的表项存在异常;同时,受备份周期的影响,备份磁盘中的用户数据可能与虚拟磁盘中的用户数据不完全相同,进而若采用备份磁盘对损坏表项对应的用户数据也进行修复,则容易导致用户数据损坏,给用户的正常使用带来不便。
进一步,需要说明的是,本发明实施例并不限定如何确定上述损坏表项的检测方法,如可根据能否利用该表项查找到对应的用户数据来确定该表项是否损坏,也可以根据该表项能否被预设的数据簇大小整除来确定该表项是否损坏,其中数据簇(Cluster)是虚拟磁盘中的最小存储单位,每个用户数据可采用对应的用户数据簇(Data Cluster)保存,进而每个用户数据的地址应当为数据簇大小的整数倍。考虑到采用预设数据簇大小进行检测效率较高,因此在本发明实施例中将采用这种方法对二级地址表中的各个表项进行检测。
在一种可能的情况中,在确定虚拟磁盘的二级地址表中存在损坏表项之前,还可以包括:
步骤11:从虚拟磁盘中获取二级地址表,并将二级地址表中的每个表项依次设置为待检测表项;
步骤12:判断待检测表项的数据内容能否被预设数据簇大小整除;若是,则进入步骤13;若否,则进入步骤14;
步骤13:对下一个待检测表项执行步骤12;
步骤14:确定待检测表项为损坏表项。
需要说明的是,在虚拟磁盘中可能设置有多个二级地址表,且每个二级地址表所占据的数据簇可能并不相邻,进而通过扫描虚拟磁盘的方式查找二级地址表并不方便。考虑到一级地址表的各个表项保存有各二级地址表在虚拟磁盘中的起始地址,因此本发明实施例可利用一级地址表进行二级地址表查询。
在一种可能的情况中,从虚拟磁盘中获取二级地址表,包括:
步骤21:从虚拟磁盘中获取一级地址表,并根据一级地址表的各个表项在虚拟磁盘中查找对应的二级地址表;一级地址表的表项用于记录各二级地址表在虚拟磁盘中的起始地址。
进一步,还需指出的是,为便于查询和管理,除了记录二级地址表的初始地址之外,一级地址表中还保存有二级地址表中各个表项的索引。同时,考虑到备份磁盘中的一级地址表与虚拟磁盘中的一级地址表在数据内容及表结构方面均是相同的,因此在查找到二级地址表中的损坏表项之后,还可确定该表项在虚拟磁盘的一级地址表中对应的索引,进而利用该索引及备份磁盘一级地址表在备份磁盘中查找对应的备份表项。
在一种可能的情况中,在确定待检测表项为损坏表项之后,还可以包括:
步骤31:记录损坏表项在一级地址表中对应的索引;
相应的,在虚拟磁盘对应的备份磁盘中查询与损坏表项对应的备份表项,可以包括:
步骤32:从备份磁盘中获取备份一级地址表,并利用索引及备份一级地址表在备份磁盘中查找备份表项。
进一步,为确保备份磁盘中的数据可靠有效,还可定期利用虚拟磁盘中的数据对备份磁盘中的数据进行备份更新。
在一种可能的情况中,本方法还可以包括:
步骤41:定期利用虚拟磁盘中的数据对备份磁盘中的数据进行备份更新。
需要说明的是,本发明实施例并不限定具体的备份更新周期,可根据实际应用需求进行设定。
S102、当查找到备份表项时,利用备份表项对损坏表项进行修复。
假若能够在备份磁盘中查找到与损坏表项对应的备份表项,则可将备份表项重新写回至损坏表项在虚拟磁盘二级地址表中的对应位置,以完成对损坏表项的修复。
S103、当未查找到备份表项时,通过扫描虚拟磁盘中所有用户数据的地址构建反推二级地址表,并利用反推二级地址表对损坏表项进行修复。
进一步,受备份周期等因素的影响,备份磁盘中可能并未保存损坏表项对应的备份表项,此时将无法利用备份数据完成对虚拟磁盘二级地址表的修复。也这是如此,本发明实施例可提供另一种修复二级地址表的方式,可通过扫描虚拟磁盘中所有用户数据地址的方式构建反推二级地址表(Maybe_L2_Table),并利用这一反推二级地址表对虚拟磁盘的二级地址表进行修复。简单来讲,虚拟磁盘中除了记录有用户数据之外,还记录有类似于一级地址表、二级地址表、引用计数表(Refcount Table)等元数据,而这批元数据具有显著的数据特征,进而可根据这些数据特征对虚拟磁盘中的数据进行筛选,筛除元数据内容并保留可能的用户数据,并利用这些可能的用户数据的地址构造反推二级地址表。随后,由于反推二级地址表与虚拟磁盘的二级地址表均保存有用户数据地址,即两者存在相似性,因此可根据两表之间相似性在反推二级表中查找与损失表项最为接近的反推表项,进而便可利用反推表项对损失表项进行修复。当然,反推二级地址表具体的构建过程,以及利用该表对损坏表项的修复过程还可包含其他优选的步骤,具体可参考后续实施例中的描述。
基于上述实施例,本发明在确定虚拟磁盘的二级地址表中存在损坏表项时,会优先在与虚拟磁盘对应的备份磁盘中查询与损坏表项对应的备份表项,并利用较为准确的备份数据优先修复损坏表项,以提升恢复用户数据的成功率;随后,假若无法从备份磁盘中查询到相关备份表项,则本发明还可通过扫描虚拟磁盘中所有用户数据地址的方式构建反推二级地址表,并利用反推二级地址表对损坏表项进行修复,这是由于反推二级地址表可包含所有用户数据地址,且二级地址表中仍存在包含正确用户数据地址的正常表项,进而二级地址表与反推二级表之间存在相似性,本发明便可基于这一相似性,利用反推二级地址表对损坏表项进行修复,并尽可能地避免用户数据丢失。简单来讲,本发明可采用备份数据和上述反推二级地址表对虚拟磁盘的二级地址表中的损坏表项进行修复,以尽可能修复丢失的用户数据。
基于上述实施例,下面对反推二级地址表的构建方式及利用该表对二级地址表中的损坏表项进行修复的过程进行详细介绍。在一种可能的情况中,通过扫描虚拟磁盘中所有用户数据的地址构建反推二级地址表,包括:
S201、跳过虚拟磁盘头部预设大小的磁盘数据,并在剩余的磁盘数据中,依照从前到后的顺序将指定大小的数据依次设置为待验证数据。
在进行虚拟磁盘扫描时,为了提升扫描效率,可首先跳过虚拟磁盘头部预设大小的磁盘数据。这是由于此部分数据主要为虚拟磁盘文件(qcow2文件)的文件头,并不包含有效的用户数据,因此可无需扫描。本发明实施例并不限定具体的预设大小,例如可以为3个数据簇大小。在跳过文件头后,本发明实施将对剩余的磁盘数据按照从前到后的顺序依次进行扫描。具体的,本发明实施例依照从前到后的顺序将指定大小的数据依次设置为待验证数据,该指定大小是一个二级地址表表项可指向的用户数据大小,例如可以为64比特(bit)。换句话说,本发明实施例会从剩余的磁盘数据中依次提取64比特的数据进行检测。
S201、利用预设特征对待验证数据进行匹配验证,并在确定待验证数据通过匹配验证时,将待验证数据在虚拟磁盘中的目标地址写入反推二级地址表,以将目标地址作为反推二级地址表的表项。
本发明实施例具体会采用元数据的相关特征对待验证数据进行匹配验证。具体的,可采用一级地址表的关键字和引用计数表的关键字进行验证,其中一级地址表的关键字为0X8000*0000,其中*代表通配符,即跳过开头为8000,0000为后缀的字段;而引用计数表的关键字为0X0001000100010001。假若确定待验证数据中不包含上述关键字,则大致可判定待验证数据属于用户数据,进而便可判定待验证数据通过验证,并可将其在虚拟磁盘中的地址写入反推二级地址表。
在一种可能的情况中,利用预设特征对待验证数据进行匹配验证,可以包括:
步骤51:在确定待验证数据的首部和尾部并不同时包含一级地址表的关键字,以及待验证数据与引用计数表的关键字不同时,确定待验证数据通过匹配验证。
值得指出的是,由于本发明实施例对虚拟磁盘的扫描是依照从前至后的顺序进行的,因此反推二级地址表中保存的地址也是依次递增的。
下面介绍利用反推二级地址表修复损坏表项的具体步骤。如上所述,反推二级地址表与虚拟磁盘中的二级地址表存在相似性,因此可基于这种相似性在反推二级地址表中查找与损坏表项最接近的反推表项,并利用反推表项对损坏表项进行修复。为便于理解,请参考图2,图2为本发明实施例所提供的第一种二级地址表表项修复的示意图,其中左侧为反推二级地址表,右侧为虚拟磁盘的二级地址表,标记13所标出的表项(表项内容为0x111111111)为损坏表项。本发明实施例可在原二级地址表中查找损坏表项的前一个正常表项(即标记14所标出的表项,表项内容为0x33c8e0000),该正常表项与损坏表项紧邻,且其表项内容小于损坏表项对应的正确表项内容。进而,可在反推二级地址表中查找与正常表项对应的、内容完全相同的目标表项(即标记12所标出的表项,表项内容为0x33c8e0000),并利用目标表项的后一表项(即标记11所标出的表项,表项内容为0x33cb80000)对损坏表项进行修复,其中目标表项的后一表项是指与目标表项紧邻的、表项内容大于目标表项的表项。
在一种可能的情况中,利用反推二级地址表对损坏表项进行修复,可以包括:
步骤61:查找损坏表项在二级地址表中对应的前一个正常表项;
步骤62:确定正常表项在反推二级地址表中对应的目标表项,并利用目标表项的后一表项对损坏表项进行修复。
进一步,假若二级地址表中存在若干个相邻的损坏表项,则也可对它们进行批量修复。为便于理解,请参考图3,图3为本发明实施例所提供的第二种二级地址表表项修复的示意图,其中侧为反推二级地址表,右侧为虚拟磁盘的二级地址表,标记23所标出的4个连续的表项(表项内容分别为0x111111111、0x222222222、0x333333333、0x444444444)均为损坏表项,这4个损坏表项可组成一个损坏表项组。本发明实施例可在原二级地址表中该查找损坏表项组的前一个正常表项(即标记24所标出的表项,表项内容为0x33c8e0000),该正常表项与损坏表项组紧邻,且其表项内容小于损坏表项组中最小的正确表项内容。进而,可在反推二级地址表中查找与正常表项对应的、内容完全相同的目标表项(即标记22所标出的表项,表项内容为0x33c8e0000),并利用目标表项后的4个表项(即标记21所指向的4个连续的表项,表项内容依次为0x33cb80000、0x33cb80000、0x33ce70000及0x33d200000)对损坏表项组进行修复。
在一种可能的情况中,利用反推二级地址表对损坏表项进行修复,可以包括:
步骤71:在二级地址表中确定由连续的已损坏表项构成的损坏表项组,并查找损坏表项组对应的前一个正常表项;
步骤71:确定正常表项在反推二级地址表中对应的目标表项,并利用目标表项之后指定数量的表项对损坏表项组进行修复;指定数量为损坏表项组所包含的损坏表项数量。
基于上述实施例,本发明可通过扫描虚拟磁盘中所有用户数据地址的方式构造反推二级地址表,并基于该表与原二级地址表间的相似性,对损坏表项进行修复,可进一步对备份数据无法修复的损坏表项进行修复,进一步提升了用户数据恢复的有效程度。
基于上述实施例,反推二级地址表是利用可能的用户数据地址对损坏表项进行修复,但在构建反推二级地址表时难免会遗漏部分用户数据地址,进而会导致虚拟磁盘二级地址表出现用户地址缺漏的情况,进而导致用户数据难以恢复。例如,请参考图4,图4为本发明实施例所提供的第三种二级地址表表项修复的示意图,其中左侧表示正确的二级地址表,而右侧为错误的二级地址表。在对该表进行恢复得到右侧所示的二级地址表时,尽管由标记32所标出的四个表项所包含的表项内容与正确的二级地址表中由标记31所标出的两个表项之后的4个表项完全一致,但由于缺漏的标记31所标出的两个表项的内容,不仅导致标记32所标出的四个表项对应的四个地址完全无效,同时还额外导致标记32所标出的四个表项后面的两个表项无法恢复,进而造成6个用户数据丢失。为此,本发明实施例还可对已修复但并未恢复对应用户数据的表项进行位置调整,以尽可能恢复用户数据。在一种可能的情况中,在利用反推二级地址表对损坏表项进行修复之后,还可以包括:
S301、将已修复的损坏表项标记为已修复表项,并确定已修复表项在二级地址表中的目标索引值。
具体的,图4中表项组32所包含的表项均可被标记为已修复表项。应当特别指出的是,本发明实施例还需额外确定已修复表项在二级地址表中的目标索引值,即确定已修复表项当前在二级地址表中所处的位置。
S302、重新启动虚拟磁盘所属的虚拟机,并在虚拟机中确定已修复表项对应的用户数据是否恢复;若是,则判定修复成功;若否,则进入步骤S303。
具体的,由于标记32所标出的表项前缺漏的标记31所标出的表项的数据内容,进而导致标记32所标出的表项对应的用户数据均无法读取。本发明实施例正是对如同标记32标出的这类已修复但无法恢复用户数据的表项进行额外处理。
S303、在预设偏移区间内为目标索引值增加偏移值,以移动已修复表项在二级地址表中所处的位置;偏移值为预设数据簇大小的整数倍。
本发明实施例可为这些已修复表项的目标索引值继续增加偏移值,以尝试将这些已修复表项移动至其他位置,并确定其是否能对其他位置对应的用户数据进行恢复。应当指出的是,由于数据簇为虚拟磁盘中的最小存储单位,因此偏移值应当为预设数据簇大小的整数倍;同时,假若为已修复表项的目标索引值(或已修复表项组的目标索引值)增加偏移值后,其已偏移至正常表项所处的位置,则已修复表项将被正常表项覆盖,该偏移值起不到修复效果,因此为避免使用无效的偏移值,本发明实施例可在预设偏移区间内增加偏移值。显然,预设偏移区间的数值与已修复表项相邻的正常表项有关。具体的,预设偏移区间的确定方式如下:
在一种可能的情况中,在预设偏移区间内为目标索引值增加偏移值之前,还包括:
步骤81:确定由连续的已修复表项构成的已修复表项组,并确定与已修复表项组在二级地址表中对应的前一正常表项和后一正常表项;
步骤82:在二级地址表中确定前一正常表项对应的第一索引值和后一正常表项对应的第二索引值。
应当指出的是,“第一”和“第二”仅用于区分前一正常表项和后一正常表项的索引值,并不代表这两个正常表项在二级地址表中带有多个表项。
步骤83:利用第一索引值、第二索引值及预设数据簇大小确定与已修复表项组对应的预设偏移区间。
具体的,预设偏移区间的上限值应当为上述两个正常表项的索引值间隔减去预设数据簇大小。
相应的,在预设偏移区间内为目标索引值增加偏移值,可以包括:
步骤84:在已修复表项所属的已修复表项组对应的预设偏移区间内为目标索引值增加偏移值。
进一步,在完成偏移值添加之后,可进一步验证用户数据是否恢复,假若仍未恢复则可继续修改偏移值,直至完成恢复或判定恢复失败。
在一种可能的情况中,在预设偏移区间内为目标索引值增加偏移值值之后,还包括:
S304、重新启动虚拟磁盘所属的虚拟机,并在虚拟机中确定增加了偏移值的已修复表项对应的用户数据是否恢复;若是,则判定修复成功;若否,则进入步骤S305。
S305、若否,则在预设偏移区间内调整偏移值,为已修复表项的目标索引值增加调整后的偏移值,并进入重新启动虚拟磁盘所属的虚拟机的步骤。
基于上述实施例,本发明实施例还可对已修复但并未恢复对应用户数据的表项进行位置调整,以尽可能恢复用户数据。
下面基于具体的示意图介绍上述元数据修复方法。请参考图5,图5为本发明实施例所提供的一种元数据修复装置的结构框图,下面对该装置所包含的模块及用途进行详细介绍。
(1)磁盘坏块检查模块:用于检查损坏磁盘的L2表(L2 Table)。它按照qcow2虚拟磁盘对应的L1->L2寻址规则,遍历检查L2表项(L2表的内容),并找出不符合预期规则的L2表项。规则为该L2表项是否能被数据簇大小(Cluster_size)整除,如果不能被整除,说明该L2表项已经损坏。磁盘坏块检查模块将得到损坏的L2表项及其在L1的索引;
(2)虚拟磁盘备份模块:用于把虚拟磁盘备份到备份存储池中,以在发生环境异常时进行数据恢复。通常在虚拟化平台中,可以提供定时备份和立即备份两种备份策略。在备份虚拟磁盘时,不管qcow2的元数据还是真实数据,都会按照备份策略,把虚拟磁盘备份到备份存储池中。如果备份磁盘中存在磁盘坏块检查模块找出的L1索引及L2表项,则可以使用备份磁盘中的L2表项恢复损坏的qcow2元数据。在恢复元数据时,并不恢复L2表项对应的真实数据,以避免之前的数据覆盖当前数据(qcow2磁盘元数据一旦建立,其对应关系不会改变)。
(3)磁盘偏移反推模块:用于探索所有可能的用户数据簇(Data Cluster)。它不依赖qcow2虚拟磁盘的L1->L2寻址规则,而是按照每次偏移数据簇大小,并根据qcow2元数据特征(首先跳过三个大小均为数据簇大小的表头,其次跳过内容为0X0001000100010001的字段(很可能为引用计数表),最后跳过内容为0X8000*0000[*代表通配符,即跳过开头为8000,0000为后缀的字段]),逐个筛选出可能为用户数据簇的数据块的地址(可能的L2表项);进而得到所有可能的L2表项,并利用其构造反推二级地址表(Maybe_L2_Tables);
(4)坏块精准修复模块:用于修复qcow2磁盘元数据。它以磁盘坏块检查模块输出的L1索引为输入,优先从备份磁盘中查找是否存在对应的L2表项,如果存在,则把L2表项写入当前损坏磁盘的L1索引所对应的L2表项;如果备份磁盘未找到对应的L2表项,则把磁盘偏移反推模块得到的反推二级地址表,写入当前损坏磁盘的L1索引所对应的L2表项。
(5)修复调整模块:用于调整从反推二级地址表写入的L2表项在L2表中的偏移值(Offset)。当通过坏块精准修复模块修复虚拟磁盘后,还是发现某些数据不能恢复时,可通过该模块调整从反推二级地址表写入的L2表项在L2表中的偏移值,以尽可能修复所有数据块。
下面对本发明实施例提供的元数据修复装置、电子设备及计算机可读存储介质进行介绍,下文描述的元数据修复装置、电子设备及计算机可读存储介质与上文描述的数据修复方法可相互对应参照。
请参考图6,图6为本发明实施例所提供的另一种元数据修复装置的结构框图,该装置可以包括:
备份表项查询模块601,用于在确定虚拟磁盘的二级地址表中存在损坏表项时,在虚拟磁盘对应的备份磁盘中查询与损坏表项对应的备份表项;二级地址表的各个表项用于记录虚拟磁盘中各个用户数据的地址;
第一修复模块602,用于当查找到备份表项时,利用备份表项对损坏表项进行修复;
第二修复模块603,用于当未查找到备份表项时,通过扫描虚拟磁盘中所有用户数据的地址构建反推二级地址表,并利用反推二级地址表对损坏表项进行修复。
可选地,该装置还可以包括:
设置模块,用于在确定虚拟磁盘的二级地址表中存在损坏表项之前,从虚拟磁盘中获取二级地址表,并将二级地址表中的每个表项依次设置为待检测表项;
损坏表项判断模块,用于判断待检测表项的数据内容能否被预设数据簇大小整除;若否,则确定待检测表项为损坏表项。
可选地,设置模块,可以包括:
查找子模块,用于从虚拟磁盘中获取一级地址表,并根据一级地址表的各个表项在虚拟磁盘中查找对应的二级地址表;一级地址表的表项用于记录各二级地址表在虚拟磁盘中的起始地址。
可选地,该装置还可以包括:
记录模块,用于在确定待检测表项为损坏表项之后,记录损坏表项在一级地址表中对应的索引;
相应的,备份表项查询模块601,可以包括:
备份表项查询子模块,用于从备份磁盘中获取备份一级地址表,并利用索引及备份一级地址表在备份磁盘中查找备份表项。
可选地,该装置还可以包括:
备份模块,用于定期利用虚拟磁盘中的数据对备份磁盘中的数据进行备份更新。
可选地,第二修复模块603,包括:
扫描设置子模块,用于跳过虚拟磁盘头部预设大小的磁盘数据,并在剩余的磁盘数据中,依照从前到后的顺序将指定大小的数据依次设置为待验证数据;
反推二级地址表构建子模块,用于利用预设特征对待验证数据进行匹配验证,并在确定待验证数据通过匹配验证时,将待验证数据在虚拟磁盘中的目标地址写入反推二级地址表,以将目标地址作为反推二级地址表的表项。
可选地,反推二级地址表构建子模块,可以包括:
验证单元,用于在确定待验证数据的首部和尾部并不同时包含一级地址表的关键字,以及待验证数据与引用计数表的关键字不同时,确定待验证数据通过匹配验证。
可选地,第二修复模块603,包括:
第一查找子模块,用于查找损坏表项在二级地址表中对应的前一个正常表项;
第一修复子模块,用于确定正常表项在反推二级地址表中对应的目标表项,并利用目标表项的后一表项对损坏表项进行修复。
可选地,利用反推二级地址表对损坏表项进行修复,包括:
第二查找子模块,用于在二级地址表中确定由连续的已损坏表项构成的损坏表项组,并查找损坏表项组对应的前一个正常表项;
第二修复子模块,用于确定正常表项在反推二级地址表中对应的目标表项,并利用目标表项之后指定数量的表项对损坏表项组进行修复;指定数量为损坏表项组所包含的损坏表项数量。
可选地,该装置还可以包括:
标记模块,用于在利用反推二级地址表对损坏表项进行修复之后,将已修复的损坏表项标记为已修复表项,并确定已修复表项在二级地址表中的目标索引值;
第一恢复验证模块,用于重新启动虚拟磁盘所属的虚拟机,并在虚拟机中确定已修复表项对应的用户数据是否恢复;
偏移值增加模块,用于若否,则在预设偏移区间内为目标索引值增加偏移值,以移动已修复表项在二级地址表中所处的位置;偏移值为预设数据簇大小的整数倍。
可选地,该装置还可以包括:
表项确定模块,用于在预设偏移区间内为目标索引值增加偏移值之前,确定由连续的已修复表项构成的已修复表项组,并确定与已修复表项组在二级地址表中对应的前一正常表项和后一正常表项;
索引值确定模块,用于在二级地址表中确定前一正常表项对应的第一索引值和后一正常表项对应的第二索引值;
预设偏移区间设置模块,用于利用第一索引值、第二索引值及预设数据簇大小确定与已修复表项组对应的预设偏移区间;
相应的,偏移值增加模块,具体用于:
在已修复表项所属的已修复表项组对应的预设偏移区间内为目标索引值增加偏移值。
可选地,该装置还可以额包括:
第二恢复验证模块,用于在预设偏移区间内为目标索引值增加偏移值之后,重新启动虚拟磁盘所属的虚拟机,并在虚拟机中确定增加了偏移值的已修复表项对应的用户数据是否恢复;若否,则在预设偏移区间内调整偏移值,为已修复表项的原始表项内容增加调整后的偏移值,并进入重新启动虚拟磁盘所属的虚拟机的步骤。
请参考图7,图7为本发明实施例所提供的一种电子设备的结构框图,本发明实施例还提供一种电子设备,包括:
存储器701,用于存储计算机程序;
处理器702,用于执行计算机程序时实现如上述的元数据修复方法的步骤。
由于电子设备部分的实施例与元数据修复方法部分的实施例相互对应,因此电子设备部分的实施例请参见元数据修复方法部分的实施例的描述,这里不再赘述。
请参考图8,图8为本发明实施例所提供的一种计算机可读存储介质的结构框图,本发明实施例还提供一种计算机可读存储介质810,计算机可读存储介质810上存储有计算机程序811,计算机程序811被处理器执行时实现上述任意实施例的元数据修复方法的步骤。
由于计算机可读存储介质部分的实施例与元数据修复方法部分的实施例相互对应,因此存储介质部分的实施例请参见元数据修复方法部分的实施例的描述,这里不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种元数据修复方法、装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (15)

1.一种元数据修复方法,其特征在于,包括:
在确定虚拟磁盘的二级地址表中存在损坏表项时,在所述虚拟磁盘对应的备份磁盘中查询与所述损坏表项对应的备份表项;所述二级地址表的各个表项用于记录所述虚拟磁盘中各个用户数据的地址;
当查找到所述备份表项时,利用所述备份表项对所述损坏表项进行修复;
当未查找到所述备份表项时,通过扫描所述虚拟磁盘中所有用户数据的地址构建反推二级地址表,并利用所述反推二级地址表对所述损坏表项进行修复。
2.根据权利要求1所述的元数据修复方法,其特征在于,在确定虚拟磁盘的二级地址表中存在损坏表项之前,还包括:
从所述虚拟磁盘中获取所述二级地址表,并将所述二级地址表中的每个表项依次设置为待检测表项;
判断所述待检测表项的数据内容能否被预设数据簇大小整除;
若否,则确定所述待检测表项为损坏表项。
3.根据权利要求2所述的元数据修复方法,其特征在于,所述从所述虚拟磁盘中获取所述二级地址表,包括:
从所述虚拟磁盘中获取一级地址表,并根据所述一级地址表的各个表项在所述虚拟磁盘中查找对应的二级地址表;所述一级地址表的表项用于记录各所述二级地址表在所述虚拟磁盘中的起始地址。
4.根据权利要求3所述的元数据修复方法,其特征在于,在确定所述待检测表项为损坏表项之后,还包括:
记录所述损坏表项在所述一级地址表中对应的索引;
相应的,所述在所述虚拟磁盘对应的备份磁盘中查询与所述损坏表项对应的备份表项,包括:
从所述备份磁盘中获取备份一级地址表,并利用所述索引及所述备份一级地址表在所述备份磁盘中查找所述备份表项。
5.根据权利要求1所述的元数据修复方法,其特征在于,还包括:
定期利用所述虚拟磁盘中的数据对所述备份磁盘中的数据进行备份更新。
6.根据权利要求1所述的元数据修复方法,其特征在于,所述通过扫描所述虚拟磁盘中所有用户数据的地址构建反推二级地址表,包括:
跳过所述虚拟磁盘头部预设大小的磁盘数据,并在剩余的磁盘数据中,依照从前到后的顺序将指定大小的数据依次设置为待验证数据;
利用预设特征对所述待验证数据进行匹配验证,并在确定所述待验证数据通过所述匹配验证时,将所述待验证数据在所述虚拟磁盘中的目标地址写入所述反推二级地址表,以将所述目标地址作为所述反推二级地址表的表项。
7.根据权利要求6所述的元数据修复方法,其特征在于,所述利用预设特征对所述待验证数据进行匹配验证,包括:
在确定所述待验证数据的首部和尾部并不同时包含一级地址表的关键字,以及所述待验证数据与引用计数表的关键字不同时,确定所述待验证数据通过所述匹配验证。
8.根据权利要求6所述的元数据修复方法,其特征在于,所述利用所述反推二级地址表对所述损坏表项进行修复,包括:
查找所述损坏表项在所述二级地址表中对应的前一个正常表项;
确定所述正常表项在所述反推二级地址表中对应的目标表项,并利用所述目标表项的后一表项对所述损坏表项进行修复。
9.根据权利要求6所述的元数据修复方法,其特征在于,所述利用所述反推二级地址表对所述损坏表项进行修复,包括:
在所述二级地址表中确定由连续的已损坏表项构成的损坏表项组,并查找所述损坏表项组对应的前一个正常表项;
确定所述正常表项在所述反推二级地址表中对应的目标表项,并利用所述目标表项之后指定数量的表项对所述损坏表项组进行修复;所述指定数量为所述损坏表项组所包含的损坏表项数量。
10.根据权利要求1至9任一项所述的元数据修复方法,其特征在于,在利用所述反推二级地址表对所述损坏表项进行修复之后,还包括:
将已修复的损坏表项标记为已修复表项,并确定所述已修复表项在所述二级地址表中的目标索引值;
重新启动所述虚拟磁盘所属的虚拟机,并在所述虚拟机中确定所述已修复表项对应的用户数据是否恢复;
若否,则在预设偏移区间内为所述目标索引值增加偏移值,以移动所述已修复表项在所述二级地址表中所处的位置;所述偏移值为预设数据簇大小的整数倍。
11.根据权利要求10所述的元数据修复方法,其特征在于,在预设偏移区间内为所述目标索引值增加偏移值之前,还包括:
确定由连续的已修复表项构成的已修复表项组,并确定与所述已修复表项组在所述二级地址表中对应的前一正常表项和后一正常表项;
在所述二级地址表中确定所述前一正常表项对应的第一索引值和所述后一正常表项对应的第二索引值;
利用所述第一索引值、所述第二索引值及所述预设数据簇大小确定与所述已修复表项组对应的预设偏移区间;
相应的,所述在预设偏移区间内为所述目标索引值增加偏移值,包括:
在所述已修复表项所属的已修复表项组对应的预设偏移区间内为所述目标索引值增加偏移值。
12.根据权利要求10所述的元数据修复方法,其特征在于,在预设偏移区间内为所述目标索引值增加偏移值之后,还包括:
重新启动所述虚拟磁盘所属的虚拟机,并在所述虚拟机中确定增加了所述偏移值的已修复表项对应的用户数据是否恢复;
若否,则在所述预设偏移区间内调整所述偏移值,为所述已修复表项的目标索引值增加调整后的偏移值,并进入所述重新启动所述虚拟磁盘所属的虚拟机的步骤。
13.一种元数据修复装置,其特征在于,包括:
备份表项查询模块,用于在确定虚拟磁盘的二级地址表中存在损坏表项时,在所述虚拟磁盘对应的备份磁盘中查询与所述损坏表项对应的备份表项;所述二级地址表的各个表项用于记录所述虚拟磁盘中各个用户数据的地址;
第一修复模块,用于当查找到所述备份表项时,利用所述备份表项对所述损坏表项进行修复;
第二修复模块,用于当未查找到所述备份表项时,通过扫描所述虚拟磁盘中所有用户数据的地址构建反推二级地址表,并利用所述反推二级地址表对所述损坏表项进行修复。
14.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至12任一项所述的元数据修复方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至12任一项所述的元数据修复方法。
CN202211420802.9A 2022-11-15 2022-11-15 一种元数据修复方法、装置、电子设备及存储介质 Active CN115470049B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211420802.9A CN115470049B (zh) 2022-11-15 2022-11-15 一种元数据修复方法、装置、电子设备及存储介质
PCT/CN2023/084812 WO2024103596A1 (zh) 2022-11-15 2023-03-29 一种元数据修复方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211420802.9A CN115470049B (zh) 2022-11-15 2022-11-15 一种元数据修复方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN115470049A true CN115470049A (zh) 2022-12-13
CN115470049B CN115470049B (zh) 2023-02-28

Family

ID=84338208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211420802.9A Active CN115470049B (zh) 2022-11-15 2022-11-15 一种元数据修复方法、装置、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN115470049B (zh)
WO (1) WO2024103596A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024103596A1 (zh) * 2022-11-15 2024-05-23 浪潮电子信息产业股份有限公司 一种元数据修复方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980195A (zh) * 2010-10-26 2011-02-23 青岛海信移动通信技术股份有限公司 一种基于移动通信终端的数据库索引修复方法及装置
US20170371551A1 (en) * 2016-06-23 2017-12-28 Linkedin Corporation Capturing snapshots of variable-length data sequentially stored and indexed to facilitate reverse reading
US20190042375A1 (en) * 2017-08-07 2019-02-07 Micron Technology, Inc. Performing data restore operations in memory
CN110225351A (zh) * 2019-06-20 2019-09-10 北京达佳互联信息技术有限公司 视频文件处理方法、装置、电子设备及存储介质
CN112256464A (zh) * 2020-10-20 2021-01-22 湖南国科微电子股份有限公司 硬盘数据纠错方法、装置、电子设备及存储介质
CN114840358A (zh) * 2022-04-28 2022-08-02 济南浪潮数据技术有限公司 一种基于虚拟磁盘的数据修复方法、装置及其介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704208B (zh) * 2017-10-13 2021-08-10 郑州云海信息技术有限公司 一种元数据的修复方法、装置及介质
CN115470049B (zh) * 2022-11-15 2023-02-28 浪潮电子信息产业股份有限公司 一种元数据修复方法、装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980195A (zh) * 2010-10-26 2011-02-23 青岛海信移动通信技术股份有限公司 一种基于移动通信终端的数据库索引修复方法及装置
US20170371551A1 (en) * 2016-06-23 2017-12-28 Linkedin Corporation Capturing snapshots of variable-length data sequentially stored and indexed to facilitate reverse reading
US20190042375A1 (en) * 2017-08-07 2019-02-07 Micron Technology, Inc. Performing data restore operations in memory
CN110225351A (zh) * 2019-06-20 2019-09-10 北京达佳互联信息技术有限公司 视频文件处理方法、装置、电子设备及存储介质
CN112256464A (zh) * 2020-10-20 2021-01-22 湖南国科微电子股份有限公司 硬盘数据纠错方法、装置、电子设备及存储介质
CN114840358A (zh) * 2022-04-28 2022-08-02 济南浪潮数据技术有限公司 一种基于虚拟磁盘的数据修复方法、装置及其介质

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
JIANXIN LI: "iROW: An Efficient Live Snapshot System for Virtual Machine Disk", 《 2012 IEEE 18TH INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED SYSTEMS》 *
李等: "一种块级连续数据保护***的快速恢复方法", 《北京理工大学学报》 *
詹东阳: "面向可控云的虚拟机域外安全监测与管理技术研究", 《中国博士学位论文全文数据库信息科技辑》 *
谈华芳等: "一种基于对象存储中的元数据组织管理方法", 《计算机工程》 *
陈春媛: "基于qcow2镜像格式的快照技术", 《信息与电脑(理论版)》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024103596A1 (zh) * 2022-11-15 2024-05-23 浪潮电子信息产业股份有限公司 一种元数据修复方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN115470049B (zh) 2023-02-28
WO2024103596A1 (zh) 2024-05-23

Similar Documents

Publication Publication Date Title
US7143251B1 (en) Data storage using identifiers
KR101613678B1 (ko) 전력 손실 이후의 비-휘발성 메모리에 대한 복원
US7240178B2 (en) Non-volatile memory and non-volatile memory data rewriting method
US20190278770A1 (en) Time Series Data Management Method, Device, And Apparatus
CN115470049B (zh) 一种元数据修复方法、装置、电子设备及存储介质
CN113127378B (zh) 数据读取方法、装置及数据存储设备
US10572335B2 (en) Metadata recovery method and apparatus
CN114201120B (zh) 一种数据读写方法、装置及相关设备
CN111581022B (zh) 一种数据恢复方法及***
CN103077095B (zh) 内存数据的纠错方法及装置及计算机***
CN111046024A (zh) 一种共享存储数据库的数据处理方法、装置、设备及介质
CN1696906A (zh) 用于存储设备的自主错误恢复方法、***
CN114721972A (zh) 垃圾回收方法、装置、可读存储介质及电子设备
CN112447254A (zh) 三元内容可寻址存储器中的错误检测方法
CN115955248A (zh) 一种数据压缩方法、装置及电子设备和存储介质
CN111008625A (zh) 一种地址校正方法、装置、设备及存储介质
CN106909514B (zh) 一种快照盘地址的定位方法及装置
CN116909939A (zh) 基于lsm树的键值分离存储引擎垃圾回收方法、***及设备
CN115048402B (zh) 带时效的自适应动态数据集合成员***、删除及检索方法
CN107908500B (zh) 一种坏块识别方法及装置
CN111736778B (zh) 数据更新方法、装置、***和电子设备
CN112463460B (zh) 一种基于纠删码的小块数据恢复方法及***
CN107301073B (zh) 一种基于固态硬盘***的配置信息检索方法及其装置
JP5041003B2 (ja) 検索装置および検索方法
CN115454710B (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
GR01 Patent grant
GR01 Patent grant