一种基于块备份快速恢复数据的方法及系统与流程

文档序号:25481161发布日期:2021-06-15 21:40阅读:94来源:国知局
本发明涉及计算机容灾备份
技术领域
:,特别是涉及一种基于块备份快速恢复数据的方法及系统。
背景技术
::随着信息化建设的不断推进,生产数据变得越来越重要。因此,当故障发生时,能够在短时间内恢复数据就显得格外迫切。源业务系统发生故障,业务就中断了,数据恢复需要进行如下过程:修复原业务服务器的故障,恢复业务数据,重启源业务系统。这个过程往往耗费的时间很长,且在这过程中,业务系统一直处于中断状态;这种情况下,如果源业务系统数据量大,业务中断的时间是无法忍受的。特别是当业务服务器的硬件故障或者操作系统故障时,业务中断的时间更是无法估计。因此,实有必要提出一种快速恢复数据的技术手段,以解决上述问题。技术实现要素:为克服上述现有技术存在的不足,本发明之目的在于提供一种基于块备份快速恢复数据的方法及系统,以基于块备份快速恢复数据,恢复过程中没有数据复制,从而减少恢复系统所要的时间和减轻备份服务器的磁盘io的负担。为达上述目的,本发明提出一种基于块备份快速恢复数据的方法,包括如下步骤:步骤s1,利用块跟踪技术,对源业务服务器的块设备进行全量备份,并将备份数据传输到数据存储服务器上,将所述备份数据备份成qcow2格式的qcow2文件;步骤s2,利用块跟踪技术,基于上次备份进行增量备份,并在数据存储服务器中,基于上次备份对应的qcow2文件创建新的qcow2快照文件,将增量数据写到新的qcow2快照文件中;步骤s3,当恢复数据时,选择一个备份点进行恢复,并在数据存储服务器中,将相应的qcow2文件映射成一个nbd块设备,并将其导出。优选地,重复执行步骤s2,得到多个qcow2快照文件。优选地,于步骤s3中,将相应的qcow2文件通过qemu-nbd工具映射成一个nbd块设备。优选地,于步骤s3,通过在目标数据客户端中安装iscsi/fc发起端程序,添加数据存储服务器地址作为发现地址,从而实现在目标数据客户端中产生一个和备份点数据完全一致的磁盘。为达到上述目的,本发明还提供一种基于块备份快速恢复数据的系统,包括:源业务服务器,利用块跟踪技术对源业务服务器的块设备进行全量备份,并将备份数据传输到数据存储服务器上;利用块跟踪技术基于上次备份进行增量备份,将增量数据传输至数据存储服务器上;数据存储服务器,当接收到源业务服务器全量备份的备份数据时,将该备份数据备份成qcow2格式的qcow2文件,当接收到源业务服务器增量备份的增量数据时,基于上次备份对应的qcow2文件创建新的qcow2快照文件,并将增量数据写到新的qcow2快照文件中;当恢复数据时,根据选择的备份点进行恢复,将相应的qcow2文件映射成一个nbd块设备,并将其导出。优选地,所述数据存储服务器将相应的qcow2文件通过qemu-nbd工具映射成一个nbd块设备优选地,所述系统还包括目标数据客户端,安装iscsi/fc发起端程序,添加数据存储服务器地址作为发现地址,从而在所述目标数据客户端中产生一个和备份点数据完全一致的磁盘。与现有技术相比,本发明一种基于块备份快速恢复数据的方法及系统通过利用块跟踪技术对源业务服务器的块设备进行全量备份,并将备份数据传输到数据存储服务器上,将所述备份数据备份成qcow2格式的qcow2文件;利用块跟踪技术基于上次备份进行增量备份,并基于上次备份对应的qcow2文件创建新的qcow2快照文件,将增量数据写到新的qcow2快照文件中,当恢复数据时,选择一个备份点进行恢复,在数据存储服务器中将相应的qcow2文件映射成一个nbd块设备导出,从而实现基于块备份快速恢复数据的目的,本发明恢复过程中没有数据复制,从而减少了恢复系统所要的时间和减轻备份服务器的磁盘io的负担。附图说明图1为本发明一种基于块备份快速恢复数据的方法的步骤流程图;图2为本发明一种基于块备份快速恢复数据的系统的系统架构图;图3为本发明实施例中基于块备份快速恢复数据的示意图;图4为本发明与现有技术的性能对比图;图5a与图5b为本发明与现有技术备份恢复过程对比图。具体实施方式以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。图1为本发明一种基于块备份快速恢复数据的方法的步骤流程图。如图1所示,本发明一种基于块备份快速恢复数据的方法,包括如下步骤:步骤s1,利用块跟踪技术,对源业务服务器的块设备进行全量备份,将备份数据传输到数据存储服务器上,将所述备份数据备份成qcow2格式,所述数据存储服务器为用于存储源服务器的数据备份的备份服务器。在本发明中,块跟踪技术(blocktracking)是一种记录某时间段内变化数据块位置的技术,它会在内存中记录磁盘数据块的写操作,当进行备份时,只需要备份记录中的数据块,然后清空记录,开始为下次增量备份作记录,其缺点是如果源机系统重启,需要做一次全备份。qcow2,全称qemucopy-on-write格式,意思是写时复制,qcow2镜像格式是qemu模拟器支持的一种磁盘镜像,它可以用一个文件的形式来表示一块固定大小的块设备磁盘。每一个qcow2文件都是以一个固定格式的数据头开始的,格式如下:typedefstructqcowheader{uint32_tmagic;uint32_tversion;uint64_tbacking_file_offset;uint32_tbacking_file_size;uint32_tcluster_bits;uint64_tsize;/*inbytes*/uint32_tcrypt_method;uint32_tl1_size;uint64_tl1_table_offset;uint64_trefcount_table_offset;uint32_trefcount_table_clusters;uint32_tnb_snapshots;uint64_tsnapshots_offset;}qcowheader;对上述格式解释如下:头4个字节magic包含了字符'q','f','i',并以0xfb结尾;之后的4个字节version包含了这个文件所用的格式版本,本发明采用的是版本2,即qcow2;backing_file_offset字段给出相对于qcow2文件起始位置的偏移,指出一个字符串的位置,该字符串为backingfile文件的绝对路径。由于该字符串不是以'\0'结束,所以backing_file_size指出字符串的长度。如果当前镜像是一个copy-on-write镜像,则存在backingfile文件,否则没有;cluster_bits字段,决定了怎样映射镜像偏移地址到文件偏移地址,其决定了在一个簇中,将拿偏移地址的多少位(低位)来作为索引。l2表占据一个单独的簇,包含若干8字节的项,cluster_bits最少用3bits作为l2表的索引。size字段指示镜像以块设备呈现时的大小,单位字节;crypt_method只有两种值,0表示没有加密,1表示采用了aes加密;qcow2使用两级结构管理从磁盘地址到镜像文件偏移的映射,这个结构称为l1表和l2表,l1表是变长的,l1表的大小存储在header中,l1表可使用多个簇,但必须连续存储,l2表的大小为一个簇,l1_size表示当前激活的l1表中的表项个数,l1_table_offset为当前激活的l1表相对于镜像文件起始位置的偏移,簇的地址对齐;相似的,refcount_table_offset字段给出了refcounttable的文件偏移,refcount_table_clusters字段描述了refcounttable大小(单位为clusters);nb_snapshots字段给出了当前镜像中有多少个快照,snapshots_offset字段给出了qcowsnapshotheaderheaders的文件偏移,每个快照都会有这样一个header。步骤s2,利用块跟踪技术,基于上次备份进行增量备份,并在数据存储服务器中,基于上次备份对应的qcow2文件创建新的qcow2快照文件,即qcow2增量镜像文件,将增量数据写到新的qcow2快照文件中。类似于以下的命令行:qemu-imgcreate-bold_path/old_snapshot.qcow2-fqcow2-fqcow2new_path/new_snapshot.qcow2其中,old_path/old_snapshot.qcow2位为上次的备份数据,new_path/new_snapshot.qcow2为新的快照文件,然后将新的增量数据写入到new_path/new_snapshot.qcow2文件中qcow2镜像具有(copy-on-write)写时复制特性,一个qcow2镜像可以用来保存其它镜像的变化部分,从而不实际影响到原有磁盘的内容,这就是增量镜像,增量镜像看着就像一个独立的镜像,其所有数据都是从模板镜像获取的。写时复制的实现方式比较简单,增量镜像则在qcow2header中的backing_file_offset字段指示一个字符串在qcow2文件内的偏移,该字符串是模板镜像文件的绝对路径,backing_file_size字段指明字符串的长度。当要从增量镜像中读取一个cluster时,qemu则会先检查该cluster在增量镜像中有没有被分配,如果没有,则会去读模板镜像中的对应位置。例如,上次为全量备份,其于数据存储服务器上的备份数据为qcow2格式的全备文件full,有四个块,内容分别为1,2,3,4,在当前增量备份中,则基于全备文件full创建一个新的qcow2快照文件,即子文件inc.这时子文件inc大小为0个块,但查看inc的内容,发现和full文件一样,也是1,2,3,4,假设当前增量备份将4变为5,则修改子文件inc中的4为5,此时inc文件大小为1个块,查看内容为1,2,3,5,而全备文件full内容依然是1,2,3,4,即变化的内容保存在inc文件中,不变的数据保存在父文件full中。在本发明具体实施例中,不断重复执行步骤s2,得到多个qcow2快照文件,以实现基于块跟踪技术的数据备份目的。在本发明中,由于只备份增量数据,也不用计算对比(即通过截获块设备层的写操作,从而得到变化块列表的),所以备份时间较短。步骤s3,当恢复数据时,选择一个备份点进行恢复,并在数据存储服务器中,将相应的qcow2文件映射成一个nbd块设备,并将其导出。在本发明具体实施例中,由于不管全量还是增量,都会备份到一个目录下,(例如前面的old_path,new_path),每个目录则代表一个备份点。当选择一个目录后,则会自动读取该目录下的qcow2文件。当选择一个备份点进行恢复时,在数据存储服务器中,通过qemu-nbd工具映射成一个nbd块设备,比如/dev/nbd0,然后通过iscsi/fctarget将nbd块设备导出也就是说,本发明需要将qcow2文件通过qemu-nbd映射成nbd块设备,例如/dev/nbd0,从而该nbd设备包含完整数据,然后通过iscsi/fctarget对nbd块设备的读写将nbd块设备导出,以实现对qcow2文件的读写的目的。优选地,通过在目标数据客户端中,安装iscsi/fc发起端(initator)程序,添加数据存储服务器地址作为发现地址,这样在目标客户端中就会产生一个和备份点数据完全一致的磁盘。在本发明中,所述目标数据客户端指的是用于快速恢复数据的windows或者linux客户端。图2为本发明一种基于块备份快速恢复数据的系统的系统架构图。如图2所示,本发明一种基于块备份快速恢复数据的系统,包括:源业务服务器10,即生产业务服务器,利用块跟踪技术对源业务服务器的块设备进行全量备份,并将备份数据传输到数据存储服务器上;利用块跟踪技术基于上次备份进行增量备份,将增量数据传输至数据存储服务器上。数据存储服务器20,用于存储源业务服务器10的数据备份,当接收到源业务服务器全量备份的备份数据时,将该备份数据备份成qcow2格式的qcow2文件,当接收到源业务服务器增量备份的增量数据时,基于上次备份对应的qcow2文件创建新的qcow2快照文件,即qcow2增量镜像文件,并将增量数据写到新的qcow2快照文件中;当恢复数据时,根据选择的备份点进行恢复,将相应的qcow2文件映射成一个nbd块设备,并将其导出。qcow2,全称qemucopy-on-write格式,意思是写时复制,qcow2镜像格式是qemu模拟器支持的一种磁盘镜像,它可以用一个文件的形式来表示一块固定大小的块设备磁盘。当进行快速恢复数据时,本发明需要将qcow2文件通过qemu-nbd映射成nbd块设备,例如/dev/nbd0,从而该nbd设备包含完整数据,然后通过iscsi/fctarget对nbd块设备的读写将nbd块设备导出,以实现对qcow2文件的读写的目的。目标数据客户端30,即用于快速恢复数据的windows或者linux客户端,安装iscsi/fc发起端(initator)程序,添加数据存储服务器地址作为发现地址,从而在所述目标数据客户端中产生一个和备份点数据完全一致的磁盘。实施例在本实施例中,如图3所示,一种基于块备份快速恢复数据的方法,其步骤如下:步骤一,利用块跟踪技术,对源业务服务器的块设备进行全量备份,同时将备份数据传输到数据存储服务器上,数据备份成qcow2格式;步骤二,利用块跟踪技术,基于上次备份做增量备份,同时在数据存储服务器中,基于上次备份对应的qcow2文件创建新的qcow2快照文件,将增量数据写到新的qcow2文件中。由于只备份增量数据,也无需计算对比,所以备份时间较短;步骤三,返回重复执行步骤二;步骤四,当恢复数据时,选择一个备份点进行恢复,同时在数据存储服务器中,将相应的qcow2文件通过qemu-nbd工具映射成一个nbd设备,比如/dev/nbd0,然后通过iscsi/fctarget将nbd块设备导出步骤五,在目标数据客户端中,安装iscsi/fc发起端(initator)程序,添加数据存储服务器地址作为发现地址,而后目标数据客户端中就会产生一个与备份点数据完全一致的磁盘。本发明之基于块备份块速恢复的方法与现有技术中基于数据传输恢复数据的方法,其性能对比如图4所示,可以看出,本发明不通过远程数据传输就能快速地实现数据恢复。其具体优势如下:1、本发明在备份的过程中利用qcow2创建快照文件,然后将数据直接写入快照文件中,如图5a所示,其逻辑简洁;而传统的备份数据则需要记录数据在磁盘中相对位置,如图5b所示,结构相对复杂;2、在恢复过程,传统磁盘写数据方式为了保护其他快照数据不被破坏,需要把各个快照的数据合并再拷贝一份作为临时数据,再基于临时数据进行传输,而本发明采用qcow2快照方式,在一个快照文件中可以访问整个磁盘文件的内容,不用合并其他快照数据,也不用拷贝,省时且省空间;3、本发明在恢复的过程中,省去了远程传输数据的过程,省去了传输到工作机后写磁盘的操作,直接挂接到工作机使用,挂接过程很快完成,只占用很少的时间。上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1