CN111858173A - 一种数据恢复方法、装置、设备和介质 - Google Patents
一种数据恢复方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN111858173A CN111858173A CN202010686237.5A CN202010686237A CN111858173A CN 111858173 A CN111858173 A CN 111858173A CN 202010686237 A CN202010686237 A CN 202010686237A CN 111858173 A CN111858173 A CN 111858173A
- Authority
- CN
- China
- Prior art keywords
- disk
- differential
- target
- data recovery
- information
- 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
- 238000011084 recovery Methods 0.000 title claims abstract description 123
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 10
- 230000002085 persistent effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000002045 lasting effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000001233 cdp Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004637 computerized dynamic posturography Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
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/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- 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/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
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
本申请提供一种数据恢复方法、装置、电子设备和计算机可读存储介质,方法包括:若当前的虚拟机原磁盘有IO信息写入,将IO信息和当前时间戳存储至差异IO磁盘;当接收到CDP数据恢复指令时,根据CDP数据恢复指令中的目标时间点,从所有的差异IO磁盘中确定与目标时间点对应的目标差异IO磁盘;从目标差异IO磁盘中获取与目标时间点对应的IO数据,并将IO数据写入与目标差异IO磁盘唯一对应的目标基础磁盘,以实现数据恢复。可见,本申请中的数据恢复时所用的IO数据的较小,可以缩短数据恢复的恢复时间目标指标,提升数据恢复效率,提升用户使用持续数据保护功能体验。
Description
技术领域
本申请涉及持续数据保护技术领域,特别涉及一种数据恢复方法、装置、电子设备和计算机可读存储介质。
背景技术
在云计算领域,对虚拟机的磁盘数据进行持续数据保护主要有持续数据保护CDP技术。持续数据保护(Continuous Data Protection,简称CDP)是一种在不影响主要数据运行的前提下,可以实现持续捕捉或跟踪目标数据所发生的任何改变,并且能够恢复到此前任意时间点的方法。有两个度量指标可以衡量CDP的数据保护和数据恢复效果,具体是恢复时间目标和恢复点目标。但是当长时间持续保存磁盘IO,或者磁盘IOPS过高,CDP保存的IO数据量过大时,CDP数据恢复过程的恢复时间过长,即恢复时间目标过大。相关技术利用读取恢复点相近的时间基线到内存中,利用内存中数据处理速度快的特点,提高数据恢复的效率问题。但该方案基本出发点是利用内存空间换取数据恢复效率(空间换时间),在实际应用中需要耗费系统中很大的内存空间,当恢复的IO数据较大时,该方法不能够进行数据恢复。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本申请的目的是提供一种数据恢复方法、装置、电子设备和计算机可读存储介质,本申请中的数据恢复时所用的IO数据的较小,可以缩短数据恢复的恢复时间目标指标,提升数据恢复效率,提升用户使用持续数据保护功能体验。其具体方案如下:
本申请提供了一种数据恢复方法,包括:
若当前的虚拟机原磁盘有IO信息写入,将所述IO信息和当前时间戳存储至差异IO磁盘;
当接收到CDP数据恢复指令时,根据所述CDP数据恢复指令中的目标时间点,从所有的所述差异IO磁盘中确定与所述目标时间点对应的目标差异IO磁盘;
从所述目标差异IO磁盘中获取与所述目标时间点对应的IO数据,并将所述IO数据写入与所述目标差异IO磁盘唯一对应的目标基础磁盘,以实现数据恢复。
优选地,所述IO信息包括IO写入地址、IO长度、IO内容,对应的,所述将所述IO信息和当前时间戳存储至差异IO磁盘,包括:
根据所述当前时间戳、所述IO写入地址、所述IO长度设置预先建立的IO描述块、IO提交块;
将所述IO内容写入预先建立的原IO信息块;
以所述IO描述块、所述原IO信息块、所述IO提交块的顺序进行拼接,得到对应结构的IO元数据;
将所述IO元数据存储至所述差异IO磁盘。
优选地,所述将所述IO元数据存储至所述差异IO磁盘,包括:
判断所述IO元数据的容量是否大于预设阈值,所述预设阈值与当前的所述差异IO磁盘的剩余量相对应;
若所述IO元数据的容量不大于所述预设阈值,则将所述IO元数据写入当前的所述差异IO磁盘的尾部;
若所述IO元数据的容量大于所述预设阈值,则建立新基础磁盘和对应的新差异IO磁盘;
将所述IO元数据写入所述新差异IO磁盘,所述新基础磁盘与所述新差异IO磁盘唯一对应。
优选地,所述若所述IO元数据的容量大于所述预设阈值,则建立新基础磁盘和对应的新差异IO磁盘,包括:
若所述IO元数据的容量大于所述预设阈值,则拷贝当前虚拟机原磁盘作为所述新基础磁盘;
建立所述新基础磁盘对应的所述新差异IO磁盘。
优选地,所述差异IO磁盘中的数据格式包括总体信息和所述IO元数据;
其中,所述总体信息包括所述差异IO磁盘的大小、总IO数量、第一次IO信息和最后一次IO信息。
优选地,所述若当前的虚拟机原磁盘有IO信息写入,将所述IO信息和当前时间戳存储至差异IO磁盘之前,还包括:
在所述虚拟机原磁盘中未写入任何IO信息时,拷贝所述虚拟机原磁盘作为基础磁盘,并创建对应的所述差异IO磁盘。
优选地,所述根据所述CDP数据恢复指令中的目标时间点,从所有的所述差异IO磁盘中确定与所述目标时间点对应的目标差异IO磁盘,包括:
判断所述CDP数据恢复指令中的所述目标时间点是否在可恢复时间范围内;
若所述目标时间点在所述可恢复时间范围内,则查找与所述目标时间点对应的所述目标基础磁盘和所述目标差异IO磁盘。
本申请提供了一种数据恢复装置,包括:
存储模块,用于若当前的虚拟机原磁盘有IO信息写入,将所述IO信息和当前时间戳存储至差异IO磁盘;
确定模块,用于当接收到CDP数据恢复指令时,根据所述CDP数据恢复指令中的目标时间点,从所有的所述差异IO磁盘中确定与所述目标时间点对应的目标差异IO磁盘;
数据恢复模块,用于从所述目标差异IO磁盘中获取与所述目标时间点对应的IO数据,并将所述IO数据写入与所述目标差异IO磁盘唯一对应的目标基础磁盘,以实现数据恢复。
本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述数据恢复方法的步骤。
本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述数据恢复方法的步骤。
本申请提供一种数据恢复方法,包括:若当前的虚拟机原磁盘有IO信息写入,将IO信息和当前时间戳存储至差异IO磁盘;当接收到CDP数据恢复指令时,根据CDP数据恢复指令中的目标时间点,从所有的差异IO磁盘中确定与目标时间点对应的目标差异IO磁盘;从目标差异IO磁盘中获取与目标时间点对应的IO数据,并将IO数据写入与目标差异IO磁盘唯一对应的目标基础磁盘,以实现数据恢复。
可见,本申请当当前的虚拟机原磁盘中有IO信息写入时,实时捕获IO信息,自动的将当前时间戳和IO信息备份至差异IO磁盘中,当接收到CDP数据回复指令后,从所有的差异IO磁盘中确定目标差异IO磁盘,将目标差异IO磁盘中的对应的IO数据写入目标基础磁盘,以实现数据恢复,本申请中的数据恢复时所用的IO数据的较小,可以缩短数据恢复的恢复时间目标指标,提升数据恢复效率,提升用户使用持续数据保护功能体验。
本申请同时还提供了一种数据恢复装置、电子设备和计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种数据恢复方法的流程图;
图2为本申请实施例提供的一种IO信息存储的示意图;
图3为本申请实施例提供的一种数据格式的示意图;
图4为本申请实施例提供的一种常规IO持续数据保护与本申请IO持续数据保护的对比图;
图5为本申请实施例提供的一种备份流程示意图;
图6为本申请实施例提供的一种恢复流程示意图;
图7为本申请实施例所提供的一种数据恢复装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术利用读取恢复点相近的时间基线到内存中,利用内存中数据处理速度快的特点,提高数据恢复的效率问题。但该方案基本出发点是利用内存空间换取数据恢复效率(空间换时间),在实际应用中需要耗费系统中很大的内存空间,当恢复的IO数据较大时,该方法不能够进行数据恢复。基于上述技术问题,本实施例提供一种数据恢复方法,本申请中的数据恢复时所用的IO数据的较小,可以缩短数据恢复的恢复时间目标指标,提升数据恢复效率,提升用户使用持续数据保护功能体验,具体请参考图1,图1为本申请实施例所提供的一种数据恢复方法的流程图,具体包括:
S101、若当前的虚拟机原磁盘有IO信息写入,将IO信息和当前时间戳存储至差异IO磁盘;
本步骤的目的是针对QEMU(快速仿真器)实现磁盘中的IO信息的备份。请参考图2,图2为本申请实施例提供的一种IO信息存储的示意图,若当前的虚拟机原磁盘有IO信息写入,此时截获IO信息,将IO信息存储至差异IO磁盘中,然后再将IO信息存储至虚拟机原磁盘中。
本实施例不对当前的虚拟机原磁盘进行限定,该磁盘可以是没有写入任何IO信息的磁盘,还可以是写入过IO信息的磁盘,可以根据实际情况进行限定。对应的当前时间戳包括但是不限定于当前时间。本实施例也不对IO信息进行限定,可以是写信息、读信息、修改信息等,用户可自定义设置。本实施例针对差异IO磁盘进行进一步阐述,本实施例中的QEMU中将建立可用的基础磁盘和唯一对应的差异IO磁盘,当截获到IO信息后,如果差异IO磁盘由于内存情况不可用时,建立新基础磁盘和唯一对应的新差异IO磁盘,将截获到的IO信息和当前时间戳存储至新差异IO磁盘中。
具体的,步骤S101可以包括:利用IO写捕捉模块,获取IO信息;利用IO备份模块,将IO信息和当前时间戳存储至差异IO磁盘。
其中,针对QEMU中的IO捕获单元进行进一步阐述,QEMU中的IO捕获单元,通常是嵌入到QEMU的写时复制CoW模块。当QEMU内部有IO写操作时(即当前的虚拟机原磁盘有IO信息写入),IO捕获单元首先接收到IO写请求即IO信息,该IO信息包括但是不限定于IO写入地址(偏移),IO长度,IO内容。针对IO备份模块进行进一步阐述,IO备份模块用于备份上述模块捕获的IO信息到差异IO磁盘中。首先IO备份模块拷贝虚拟机原磁盘为一个基础磁盘;其次创建一个预定义(可以根据策略配置)大小的差异IO磁盘;然后把QEMUIO写捕获模块截获的IO信息连同当前时间戳组成IO元数据格式,作为写入IO信息后的虚拟机原磁盘与基础磁盘的差异IO信息,追加写入差异IO磁盘。
进一步的,为了保证数据的完整性和数据的有效性,具体的,IO信息包括IO写入地址、IO长度、IO内容,对应的,将IO信息和当前时间戳存储至差异IO磁盘,包括:根据当前时间戳、IO写入地址、IO长度设置预先建立的IO描述块、IO提交块;将IO内容写入预先建立的原IO信息块;以IO描述块、原IO信息块、IO提交块的顺序进行拼接,得到对应结构的IO元数据;将IO元数据存储至差异IO磁盘。
其中,IO元数据由IO描述块即DESCRIPTORBLOCK块、原IO信息块、IO提交块即COMMITBLOCK块顺序组成;DESCRIPTORBLOCK块是每个IO元数据的描述块信息(或者理解为IO元数据的头),其大小固定为512字节。COMMITBLOCK块是每个IO元数据的提交块信息(或者理解为IO元数据的尾),其大小固定为512字节。每个DESCRIPTORBLOCK块信息都有唯一一个COMMITBLOCK块相对应;原IO信息块是从虚拟机原磁盘中的IO信息,该IO信息块都由DESCRIPTORBLOCK作为头,COMMITBLOCK作为尾进行包围。基于该种结构的IO元数据可以通过头尾包围的结构确定数据的有效性和数据的完整性。
进一步的,将IO元数据存储至差异IO磁盘,包括:判断IO元数据的容量是否大于预设阈值,预设阈值与当前的差异IO磁盘的剩余量相对应;若IO元数据的容量不大于预设阈值,则将IO元数据写入当前的差异IO磁盘的尾部;若IO元数据的容量大于预设阈值,则建立新基础磁盘和对应的新差异IO磁盘;将IO元数据写入新差异IO磁盘,新基础磁盘与新差异IO磁盘唯一对应。
其中,本实施例在进行追加写入差异IO磁盘时,先判断差异IO磁盘剩余量对应的预设阈值是否大于IO元数据的容量,当大于IO元数据的容量时,IO元数据直接追加到差异IO磁盘中。当小于IO元数据的容量时,QEMUIO备份模块重新拷贝虚拟机原磁盘为一个新基础磁盘,然后创建一个新差异IO磁盘,最后把该IO元数据写入该新差异IO磁盘中。本实施例不对新基础磁盘的建立进行限定,可以是基于上一次的基础磁盘和差异IO磁盘得到新基础磁盘,还可以是根据当前虚拟机原磁盘得到新基础磁盘。例如,基础磁盘a对应差异IO磁盘,差异IO磁盘中包括100个历史IO信息,当IO元数据的容量大于预设阈值,则拷贝当前的虚拟机原磁盘,可以理解的是当前的虚拟机原磁盘中的内容包括100个历史IO信息和基础磁盘;将当前的虚拟机原磁盘拷贝,得到新基础磁盘,并且建立与新基础磁盘唯一对应的差异IO磁盘。值得注意的是,每一个差异IO磁盘均可以存储多个写入请求对应的IO信息,并且每一个IO信息均对应有一个时间戳。
进一步的,若IO元数据的容量大于预设阈值,则建立新基础磁盘和对应的新差异IO磁盘,包括:若IO元数据的容量大于预设阈值,则拷贝当前虚拟机原磁盘作为新基础磁盘;建立新基础磁盘对应的新差异IO磁盘。该方式更加简单易操作。
进一步的,差异IO磁盘中的数据格式包括总体信息和IO元数据;其中,总体信息包括差异IO磁盘的大小、总IO数量、第一次IO信息和最后一次IO信息。
本实施例针对差异IO磁盘中的数据格式进行进一步阐述,差异IO磁盘中存储的是可以保存和恢复的IO数据,为了能够实现数据的保存和恢复以及数据的一致性问题,需要设计单独的数据格式进行处理。此处就差异IO磁盘中的数据格式进行特殊阐述。差异IO磁盘数据格式主要由总体信息即SuperBlock和IO元数据组成。请参考图3,图3为本申请实施例提供的一种数据格式的示意图,其中DATA表征IO元数据。
SuperBlock表征该差异IO磁盘的总体信息,如差异IO磁盘的大小,总IO数量,第一次IO信息(tail块IO块位置及tail块IO时间戳),最后一次IO信息(head块IO块位置及head块IO时间戳),SuperBlock块大小为512字节,SuperBlock的数据结构如表1。IO元数据由IO描述块即DESCRIPTORBLOCK块、原IO信息块、IO提交块即COMMITBLOCK块顺序组成;DESCRIPTORBLOCK块是每个IO元数据的描述块信息(或者理解为IO元数据的头),其大小固定为512字节,DESCRIPTORBLOCK块的数据结构如表2所示。COMMITBLOCK块是每个IO元数据的提交块信息(或者理解为IO元数据的尾),其大小固定为512字节。COMMITBLOCK块的数据结构如表3所示。每个DESCRIPTORBLOCK块信息都有唯一一个COMMITBLOCK块相对应;原IO信息块是从虚拟机原磁盘中的IO信息,该IO信息块都由DESCRIPTORBLOCK作为头,COMMITBLOCK作为尾进行包围。基于该种结构的IO元数据可以通过头尾包围的结构确定数据的有效性和数据的完整性。
表1
表2
表3
进一步的,若当前的虚拟机原磁盘有IO信息写入,将IO信息和当前时间戳存储至差异IO磁盘之前,还包括:在虚拟机原磁盘中未写入任何IO信息时,拷贝虚拟机原磁盘作为基础磁盘,并创建对应的差异IO磁盘。
S102、当接收到CDP数据恢复指令时,根据CDP数据恢复指令中的目标时间点,从所有的差异IO磁盘中确定与目标时间点对应的目标差异IO磁盘;
其中,CDP数据恢复指令中包括目标时间点。此时QEMU中存储有多个基础磁盘和对应的多个差异IO磁盘,基于目标时间点从中得到目标基础磁盘。例如,QEMU中存储有基础磁盘1(基础磁盘时间戳2020年5月1日12时00分)和对应的差异IO磁盘1(head块IO时间戳为2020年5月1日13时00分);基础磁盘2(基础磁盘时间戳2020年5月2日12时00分)和对应的差异IO磁盘2(head块IO时间戳为2020年5月2日14时00分);基础磁盘3(基础磁盘时间戳2020年5月3日12时00分)和对应的差异IO磁盘3(head块IO时间戳为2020年5月4日14时00分)。当目标时间点是2020年5月2日13时00分时,确定目标基础磁盘为基础磁盘2,对应的目标差异IO磁盘为差异IO磁盘2。
进一步的,根据CDP数据恢复指令中的目标时间点,从所有的差异IO磁盘中确定与目标时间点对应的目标差异IO磁盘,包括:判断CDP数据恢复指令中的目标时间点是否在可恢复时间范围内;若目标时间点在可恢复时间范围内,则查找与目标时间点对应的目标基础磁盘和目标差异IO磁盘。
其中,可恢复时间范围为最早的基础磁盘时间戳与最晚的差异IO磁盘head块IO时间戳之间,如果不存在,则报错退出;如果存在则查找与目标时间点对应的目标基础磁盘和目标差异IO磁盘。可以理解的是,本实施例基于QEMU产生的N个基础磁盘和N个差异IO磁盘,根据用户指定的目标时间点,查找该目标时间点属于哪个时间范围。然后把对应的目标基础磁盘作为目标,从目标差异IO磁盘中读取指定范围的IO数据,写入到基础磁盘目标中,实现数据的快速恢复。针对目标基础磁盘的确定方式本实施例不再进行限定,用户可自定义设置,只要是能够实现本实施例的目的即可。例如,按照顺序查找方法,以时间戳最早的基础磁盘开始,顺序判断该目标时间点T是否满足:第N个基础磁盘的时间戳<=T<第N+1个基础磁盘的时间戳;找到的第N个基础磁盘即为时间点T对应的基础磁盘,第N个差异IO磁盘即为对应的差异IO磁盘。
S103、从目标差异IO磁盘中获取与目标时间点对应的IO数据,并将IO数据写入与目标差异IO磁盘唯一对应的目标基础磁盘,以实现数据恢复。
本实施例不对IO数据的获取方式进行限定,用户可根据实际需求进行设置,只要是能够实现本实施例的目的即可。例如,当目标时间是2020年5月2日13时00分,确定目标基础磁盘为基础磁盘2(基础磁盘时间戳2020年5月2日12时00分),对应的目标差异IO磁盘为差异IO磁盘2(head块IO时间戳为2020年5月2日14时00分),此时,差异IO磁盘中存储有三个IO元数据,第一IO元数据的时间戳为2020年5月2日12时00分,第二元数据的时间戳为2020年5月2日13时00分,第三元数据的时间戳为2020年5月2日14时00分。此时,得到的IO数据为第一IO元数据和第二IO元数据。
在一种可实现的实施方式中,可以采用以目标基础磁盘的时间戳T_Start为左区间,指定的时间点T1为右区间,即[T_Start,T1)从差异IO磁盘中取出该范围的IO数据;进一步的,以对应的目标基础磁盘为目标数据,以对应的差异IO磁盘为源数据,将[T_Start,T)范围的IO数据写入目标基础磁盘,写入[T_Start,T)时间范围的IO数据的目标基础磁盘,即是用户想要恢复的数据磁盘,恢复完成。
可见,本实施例采用的是增量备份,该增量备份指的是:在IO元数据追加写入到差异IO磁盘中时,判断IO元数据大小加上原差异IO磁盘大小是否超过差异IO磁盘上限。当IO元数据大小加上原差异IO磁盘大小未超过差异IO磁盘上限时,则直接把该IO元数据追加写入差异IO磁盘中;当IO元数据大小加上原差异IO磁盘大小超过差异IO磁盘上限时,则首先记录该时刻T,其次对虚拟机原磁盘即backendimage进行备份,生成基础磁盘即backend_backupimage;然后创建新的差异IO磁盘。当后续时刻(即:当前时间>T时)有新的IO数据落盘时,按照上述方式组成IO元数据,追加写入新的差异IO磁盘中。通过增量备份机制,分隔整个IO持续数据保护周期,减少IO长时间保护时,追加IO写入时间过长而导致的恢复时间目标过长,从而提高数据恢复速度。请参考图4,图4为本申请实施例提供的一种常规IO持续数据保护与本申请IO持续数据保护的对比图。通过在QEMU的IO捕获模块截获新的IO信息,并按照预定义的结构存入差异IO磁盘,同时在开启持续数据保护时刻T1,拷贝该时刻T1虚拟机原磁盘为基础磁盘。利用该基础磁盘加差异IO磁盘,可以进行开启持续数据保护时刻T1至当前时刻的任意状态的数据恢复。当差异IO磁盘大小达到预定义的上限时,(简称该时刻为T2),QEMU自动拷贝当前磁盘作为新基础磁盘,同时创建新差异IO磁盘。该时刻T2之后,虚拟机中所有的新IO数据会存入新差异IO磁盘。T1时刻至T2时刻的数据恢复,通过T1时刻的基础磁盘和T1时刻的差异IO磁盘来恢复该时间范围的数据,T2时刻-当前时刻的数据恢复,通过T2时刻的基础磁盘和T2时刻的差异IO磁盘来恢复该时间范围的数据。通过这种增量备份和IO持续数据保护机制,既能恢复到任意时间点的数据,又能缩短CDP恢复时的恢复时间目标指标,提高数据恢复效率。
基于上述技术方案,本实施例当当前的虚拟机原磁盘中有IO信息写入时,实时捕获IO信息,自动的将当前时间戳和IO信息备份至差异IO磁盘中,当接收到CDP数据回复指令后,从所有的差异IO磁盘中确定目标差异IO磁盘,将目标差异IO磁盘中的对应的IO数据写入目标基础磁盘,以实现数据恢复,本申请中的数据恢复时所用的IO数据的较小,可以缩短数据恢复的恢复时间目标指标,提升数据恢复效率,提升用户使用持续数据保护功能体验。
基于上述实施例,本实施例提供一种具体的数据恢复的方法,包括:
当给虚拟机开启CDP保护时,QEMU磁盘IO备份部件处理流程如1~7,请参考图5,图5为本申请实施例提供的一种备份流程示意图,包括:
1、拷贝虚拟机原磁盘为基础磁盘并以当前时刻命名(如20200620_120000_baseimage),然后在该时刻创建差异IO磁盘(数据格式为前述格式),并以当前时刻命名(如20200620_120000_traceimage);
2、当虚拟机有IO写入时,QEMUIO写捕获模块获取该IO信息,IO信息包括:IO的偏移IO_offset、IO的长度IO_size、IO内容IO_Content;
3、QEMU新建一个DESCRIPTORBLOCK块和COMMITBLOCK块。DESCRIPTORBLOCK块的h_magic设置为0X“4A4443FB”(JCD的ASCII码+FB结束符)h_pair_block为COMMITBLOCK位置(SuperBlock中的s_head_block+IO_size-1),h_offset为IO_offset,h_size为IO_size;COMMITBLOCK块的h_magic设置为0X“4A4354FC”(JCT的ASCII码+FC结束符)h_pair_block为DESCRIPTORBLOCK位置(SuperBlock中的s_head_block),h_offset为IO_offset,h_size为IO_size;
4、QEMU新建一个原IO信息块,拷贝IO内容IO_Content到该原IO信息块;
5、QEMU以DESCRIPTORBLOCK块、原IO信息块、COMMITBLOCK块顺序拼接在一起,形成一个IO元数据;
6、判断IO元数据大小与差异IO磁盘剩余大小,当IO元数据大小小于或者等于差异IO磁盘剩余大小时,则该IO元数据直接追加到差异IO磁盘尾部,然后跳转到步骤2,继续等待新IO写入;当IO元数据大小大于差异IO磁盘剩余大小时,则进入步骤7;
7、备份当前虚拟机原磁盘为新的基础磁盘,并以当前时刻命名(如20200621_100000_baseimage),然后在该时刻创建新的差异IO磁盘(数据格式为前述格式),并以当前时刻命名(如20200621_100000_traceimage),然后把步骤5中的IO元数据写入新创建的新差异IO磁盘;
当进行CDP数据恢复时,QEMU磁盘快速恢复部件处理逻辑如8~12,请参考图6,图6为本申请实施例提供的一种恢复流程示意图,包括:
8、获取目标时间点T1,用户指定CDP持续数据保护的某个时间点T1;
9、QEMU磁盘快速恢复部件检查该目标时间点T1是否在可恢复的时间范围内,即最早的基础磁盘时间戳<=T1<=最晚的差异IO磁盘head块IO时间戳,如果是则继续,否则就报错退出;
10、查找该时间点T1对应的目标基础磁盘和目标差异IO磁盘:按照顺序查找方法,以最早的基础磁盘开始,顺序判断该时间点T1是否满足:第N个基础磁盘的时间戳<=T1<第N+1个基础磁盘的时间戳;找到的第N个基础磁盘即为时间点T1对应的目标基础磁盘,第N个差异IO磁盘即为对应的目标差异IO磁盘;
11、从对应的差异IO磁盘中读取要恢复时间范围的IO数据:以第N个基础磁盘的时间戳T_Start为左区间,指定的时间点T1为右区间,即[T_Start,T1)从差异IO磁盘中取出该范围的IO数据;
12、以对应的基础磁盘为目标数据,以对应的差异IO磁盘为源数据,写入[T_Start,T1)时间范围的IO数据的基础磁盘,即是用户想要恢复的数据磁盘,恢复完成。
基于上述实施例,本实施例提供一种基于QEMU的快速恢复方法,在进行IO持续数据保护时,定义了差异IO磁盘大小的上限。当差异IO磁盘大小超过预定义的上限,QEMU自动备份该时刻的虚拟机磁盘为新的基础磁盘,同时,也生成新的差异IO磁盘,并在该差异IO磁盘中记录该磁盘可恢复的时间范围。通过这种IO持续数据保护与增量备份相结合的机制来减小持续数据保护范围内的恢复时间目标指标,缩短持续数据保护的恢复时间,提高数据恢复效率。
下面对本申请实施例提供的一种数据恢复装置进行介绍,下文描述的数据恢复装置与上文描述的数据恢复方法可相互对应参照,参考图7,图7为本申请实施例所提供的一种数据恢复装置的结构示意图,包括:
存储模块201,用于若当前的虚拟机原磁盘有IO信息写入,将IO信息和当前时间戳存储至差异IO磁盘;
确定模块202,用于当接收到CDP数据恢复指令时,根据CDP数据恢复指令中的目标时间点,从所有的差异IO磁盘中确定与目标时间点对应的目标差异IO磁盘;
数据恢复模块203,用于从目标差异IO磁盘中获取与目标时间点对应的IO数据,并将IO数据写入与目标差异IO磁盘唯一对应的目标基础磁盘,以实现数据恢复。
优选地,IO信息包括IO写入地址、IO长度、IO内容,对应的,存储模块201,包括:
设置单元,用于根据当前时间戳、IO写入地址、IO长度设置预先建立的IO描述块、IO提交块;
写入单元,用于将IO内容写入预先建立的原IO信息块;
拼接单元,用于以IO描述块、原IO信息块、IO提交块的顺序进行拼接,得到对应结构的IO元数据;
存储单元,用于将IO元数据存储至差异IO磁盘。
优选地,存储单元,包括:
判断子单元,用于判断IO元数据的容量是否大于预设阈值,预设阈值与当前的差异IO磁盘的剩余量相对应;
第一存储子单元,用于若IO元数据的容量不大于预设阈值,则将IO元数据写入当前的差异IO磁盘的尾部;
建立子单元,用于若IO元数据的容量大于预设阈值,则建立新基础磁盘和对应的新差异IO磁盘;
第二存储子单元,用于将IO元数据写入新差异IO磁盘,新基础磁盘与新差异IO磁盘唯一对应。
优选地,建立子单元,包括:
新基础磁盘建立子单元,用于若IO元数据的容量大于预设阈值,则拷贝当前虚拟机原磁盘作为新基础磁盘;
新差异IO磁盘建立子单元,用于建立新基础磁盘对应的新差异IO磁盘。
优选地,差异IO磁盘中的数据格式包括总体信息和IO元数据;
其中,总体信息包括差异IO磁盘的大小、总IO数量、第一次IO信息和最后一次IO信息。
优选地,还包括:
初始创建模块,用于在虚拟机原磁盘中未写入任何IO信息时,拷贝虚拟机原磁盘作为基础磁盘,并创建对应的差异IO磁盘。
优选地,确定模块202,包括:
判断单元,用于判断CDP数据恢复指令中的目标时间点是否在可恢复时间范围内;
查找单元,用于若目标时间点在可恢复时间范围内,则查找与目标时间点对应的目标基础磁盘和目标差异IO磁盘。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的电子设备与上文描述的方法可相互对应参照。
本实施例提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述数据恢复方法的步骤。
由于电子设备部分的实施例与方法部分的实施例相互对应,因此电子设备部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本申请实施例提供的一种计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的方法可相互对应参照。
本实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述数据恢复方法的步骤。
由于计算机可读存储介质部分的实施例与方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种数据恢复方法、装置、电子设备和计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种数据恢复方法,其特征在于,包括:
若当前的虚拟机原磁盘有IO信息写入,将所述IO信息和当前时间戳存储至差异IO磁盘;
当接收到CDP数据恢复指令时,根据所述CDP数据恢复指令中的目标时间点,从所有的所述差异IO磁盘中确定与所述目标时间点对应的目标差异IO磁盘;
从所述目标差异IO磁盘中获取与所述目标时间点对应的IO数据,并将所述IO数据写入与所述目标差异IO磁盘唯一对应的目标基础磁盘,以实现数据恢复。
2.根据权利要求1所述的数据恢复方法,其特征在于,所述IO信息包括IO写入地址、IO长度、IO内容,对应的,所述将所述IO信息和当前时间戳存储至差异IO磁盘,包括:
根据所述当前时间戳、所述IO写入地址、所述IO长度设置预先建立的IO描述块、IO提交块;
将所述IO内容写入预先建立的原IO信息块;
以所述IO描述块、所述原IO信息块、所述IO提交块的顺序进行拼接,得到对应结构的IO元数据;
将所述IO元数据存储至所述差异IO磁盘。
3.根据权利要求2所述的数据恢复方法,其特征在于,所述将所述IO元数据存储至所述差异IO磁盘,包括:
判断所述IO元数据的容量是否大于预设阈值,所述预设阈值与当前的所述差异IO磁盘的剩余量相对应;
若所述IO元数据的容量不大于所述预设阈值,则将所述IO元数据写入当前的所述差异IO磁盘的尾部;
若所述IO元数据的容量大于所述预设阈值,则建立新基础磁盘和对应的新差异IO磁盘;
将所述IO元数据写入所述新差异IO磁盘,所述新基础磁盘与所述新差异IO磁盘唯一对应。
4.根据权利要求3所述的数据恢复方法,其特征在于,所述若所述IO元数据的容量大于所述预设阈值,则建立新基础磁盘和对应的新差异IO磁盘,包括:
若所述IO元数据的容量大于所述预设阈值,则拷贝当前虚拟机原磁盘作为所述新基础磁盘;
建立所述新基础磁盘对应的所述新差异IO磁盘。
5.根据权利要求2所述的数据恢复方法,其特征在于,所述差异IO磁盘中的数据格式包括总体信息和所述IO元数据;
其中,所述总体信息包括所述差异IO磁盘的大小、总IO数量、第一次IO信息和最后一次IO信息。
6.根据权利要求1所述的数据恢复方法,其特征在于,所述若当前的虚拟机原磁盘有IO信息写入,将所述IO信息和当前时间戳存储至差异IO磁盘之前,还包括:
在所述虚拟机原磁盘中未写入任何IO信息时,拷贝所述虚拟机原磁盘作为基础磁盘,并创建对应的所述差异IO磁盘。
7.根据权利要求1至6任一项所述的数据恢复方法,其特征在于,所述根据所述CDP数据恢复指令中的目标时间点,从所有的所述差异IO磁盘中确定与所述目标时间点对应的目标差异IO磁盘,包括:
判断所述CDP数据恢复指令中的所述目标时间点是否在可恢复时间范围内;
若所述目标时间点在所述可恢复时间范围内,则查找与所述目标时间点对应的所述目标基础磁盘和所述目标差异IO磁盘。
8.一种数据恢复装置,其特征在于,包括:
存储模块,用于若当前的虚拟机原磁盘有IO信息写入,将所述IO信息和当前时间戳存储至差异IO磁盘;
确定模块,用于当接收到CDP数据恢复指令时,根据所述CDP数据恢复指令中的目标时间点,从所有的所述差异IO磁盘中确定与所述目标时间点对应的目标差异IO磁盘;
数据恢复模块,用于从所述目标差异IO磁盘中获取与所述目标时间点对应的IO数据,并将所述IO数据写入与所述目标差异IO磁盘唯一对应的目标基础磁盘,以实现数据恢复。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据恢复方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据恢复方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010686237.5A CN111858173A (zh) | 2020-07-16 | 2020-07-16 | 一种数据恢复方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010686237.5A CN111858173A (zh) | 2020-07-16 | 2020-07-16 | 一种数据恢复方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111858173A true CN111858173A (zh) | 2020-10-30 |
Family
ID=72983639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010686237.5A Pending CN111858173A (zh) | 2020-07-16 | 2020-07-16 | 一种数据恢复方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858173A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858164A (zh) * | 2020-07-03 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种持续数据保护方法、装置、设备及可读存储介质 |
CN112306417A (zh) * | 2020-11-09 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种ssd缩短上电恢复时间的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354582A (zh) * | 2016-08-18 | 2017-01-25 | 无锡华云数据技术服务有限公司 | 一种连续数据保护方法 |
CN110032477A (zh) * | 2019-04-17 | 2019-07-19 | 深信服科技股份有限公司 | 一种恢复持续数据保护的方法、系统及相关组件 |
-
2020
- 2020-07-16 CN CN202010686237.5A patent/CN111858173A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354582A (zh) * | 2016-08-18 | 2017-01-25 | 无锡华云数据技术服务有限公司 | 一种连续数据保护方法 |
CN110032477A (zh) * | 2019-04-17 | 2019-07-19 | 深信服科技股份有限公司 | 一种恢复持续数据保护的方法、系统及相关组件 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858164A (zh) * | 2020-07-03 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种持续数据保护方法、装置、设备及可读存储介质 |
CN111858164B (zh) * | 2020-07-03 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种持续数据保护方法、装置、设备及可读存储介质 |
CN112306417A (zh) * | 2020-11-09 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种ssd缩短上电恢复时间的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230138736A1 (en) | Cluster file system-based data backup method and apparatus, and readable storage medium | |
US11397648B2 (en) | Virtual machine recovery method and virtual machine management device | |
US20150213100A1 (en) | Data synchronization method and system | |
US9483357B2 (en) | Selective restore from incremental block level backup | |
US8856469B2 (en) | Apparatus and method for logging optimization using non-volatile memory | |
CN109542682B (zh) | 一种数据备份方法、装置、设备和存储介质 | |
CN106527958B (zh) | 用于分布式存储系统的写入数据、获取数据的方法和设备 | |
WO2018153251A1 (zh) | 一种快照的处理方法及分布式块存储系统 | |
CN107562578B (zh) | 一种存储数据的快照创建方法、装置、设备及存储介质 | |
CN101945131B (zh) | 一种基于存储虚拟化的数据迁移方法 | |
CN109189608A (zh) | 一种保证复制事务一致性的方法以及相应的复制装置 | |
US20120054477A1 (en) | Providing a backup service from a remote backup data center to a computer through a network | |
CN113220729B (zh) | 数据存储方法、装置、电子设备及计算机可读存储介质 | |
CN114637475A (zh) | 一种分布式存储系统控制方法、装置及可读存储介质 | |
CN111858173A (zh) | 一种数据恢复方法、装置、设备和介质 | |
CN106357703B (zh) | 集群切换方法与设备 | |
CN111400267A (zh) | 记录日志的方法和装置 | |
CN111158858A (zh) | 一种虚拟机的克隆方法和装置,及计算机可读存储介质 | |
CN113467719B (zh) | 数据写入方法及装置 | |
CN112988880B (zh) | 数据同步方法、装置、电子设备及计算机存储介质 | |
JP2016181142A (ja) | バックアップ制御装置、バックアップ制御方法、及び、プログラム | |
CN113419897B (zh) | 一种文件处理方法、装置、电子设备及其存储介质 | |
CN113791934A (zh) | 数据的恢复方法、计算设备及存储介质 | |
US20050262033A1 (en) | Data recording apparatus, data recording method, program for implementing the method, and program recording medium | |
CN112000623A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201030 |