一种磁盘数据的还原方法、装置及电子设备与流程

文档序号:18796335发布日期:2019-09-29 19:42阅读:144来源:国知局
一种磁盘数据的还原方法、装置及电子设备与流程

本申请涉及磁盘数据备份还原技术领域,尤其涉及一种磁盘数据的还原方法、装置及电子设备。



背景技术:

磁盘是电脑数据的主要存储媒介,磁盘中以扇区(sector)为单位对磁盘数据进行存储,一个扇区一般是512个字节(byte),也可以是1024字节或4096字节,而每次对磁盘数据进行读写时的数据字节数是扇区字节大小的整数倍。进一步的,在磁盘中,为了便于数据的存储,把磁盘空间分成块,划分的空间称为分区(partition),分区组成卷(volume),其中,一个或多个分区组成一个卷,相应的,在卷上由文件系统(filesystem)管理卷中的磁盘数据,而基于文件系统,磁盘数据以文件的形式提供给应用程序进行管理,文件系统通过元文件管理磁盘中的数据文件,元文件数据中包含相应数据文件的大小、空间等信息。

为了保护磁盘数据,通常会对磁盘数据进行备份,将磁盘数据备份到文件中称为镜像文件。在磁盘数据需要进行备份还原时,将镜像文件还原到磁盘中原位置或新的磁盘卷位置。目前常用的还原方案中,通常是先将镜像文件中的数据还原到与目标磁盘卷对应的磁盘存储位置上,在根据磁盘卷的空间存储信息修改文件系统的信息之后,再生成并挂载新的磁盘卷,此时还原完成才能提供给应用程序进行访问。

可见,目前的还原方案中,还原所用的时间消耗与磁盘数据的大小相关,磁盘数据量越大,还原所用的时间消耗越长,使得应用程序无法尽快访问到磁盘数据,导致运行效率较低。



技术实现要素:

有鉴于此,本申请提供一种磁盘数据的还原方法、装置及服务器,用以减少对磁盘数据进行访问的等待耗时,以使得应用程序能够尽快访问到磁盘中的数据,提高运行效率。

为实现以上目的,本申请提供了一种磁盘数据的还原方法,包括:

对磁盘中第一磁盘卷进行删除,所述第一磁盘卷为待还原覆盖的目标磁盘卷;

将镜像文件中的备份的原文件系统的元数据还原到所述磁盘中;

在所述磁盘的与所述第一磁盘卷所对应的存储区域中,生成并挂载第二磁盘卷;

将所述镜像文件中的未还原数据块还原到所述第二磁盘卷,以使得还原到所述第二磁盘卷的数据块提供给应用程序进行访问。

上述方法,优选的,还包括:

设置过滤驱动;

在所述过滤驱动上挂载所述第二磁盘卷,以使得所述镜像文件中没有还原到所述第二磁盘卷的数据块通过所述过滤驱动提供给所述应用程序进行访问。

上述方法,优选的,还包括:

接收所述应用程序的访问请求;

在所述镜像文件中的数据块已经全部还原完成的情况下,将所述第二磁盘卷中所述访问请求对应的目标数据块提供给所述应用程序进行访问;

在所述镜像文件中的数据块没有全部还原完成的情况下,判断所述目标数据块是否已经还原到所述第二磁盘卷;

其中,如果所述目标数据块已经还原到所述第二磁盘卷,将所述第二磁盘卷中的所述目标数据块提供给所述应用程序访问;如果所述目标数据块没有还原到所述第二磁盘卷,利用所述过滤驱动,将所述镜像文件中的所述目标数据块提供给所述应用程序访问。

上述方法,优选的,在利用所述过滤驱动,将所述镜像文件中的所述目标数据块提供给所述应用程序访问之后,所述方法还包括:

将所述目标数据块写入到所述第二磁盘卷。

上述方法,优选的,将所述镜像文件中的备份的原文件系统的元数据还原到所述磁盘中,包括:

获得所述镜像文件中的备份的原文件系统的元数据的占用位图;其中,所述元数据的占用位图包括至少一个元数据在所述镜像文件中的占用位;

基于所述第一磁盘卷中数据块的存储位置与所述镜像文件,生成所述镜像文件还原到所述磁盘的位置映射关系;

基于所述元数据的占用位图和所述位置映射关系,将所述镜像文件中的元数据还原到所述磁盘中;

其中,在所述元数据的占用位图中,已经还原到所述磁盘的元数据对应的占用位被删除。

上述方法,优选的,所述方法还包括:

获得所述镜像文件中数据块的占用位图,所述数据块的占用位图包括至少一个数据块在所述镜像文件中的占用位;

基于所述数据块的占用位图和所述位置映射关系,对所述元数据中对应数据块的空间属性进行调整。

上述方法,优选的,将所述镜像文件中的未还原数据块还原到所述第二磁盘卷,包括:

利用所述位置映射关系,将所述镜像文件中的未还原数据块还原到所述第二磁盘卷中相应的存储位置上;

其中,在所述数据块的占用位图中,已经还原到所述第二磁盘卷的数据块对应的占用位被删除。

本申请还提供了一种磁盘数据的还原装置,包括:

卷删除单元,用于对磁盘中第一磁盘卷进行删除,所述第一磁盘卷为待还原覆盖的目标磁盘卷;

第一还原单元,用于将镜像文件中备份的原文件系统的元数据还原到所述磁盘中;

卷处理单元,用于在所述磁盘的与所述第一磁盘卷所对应的存储区域中,生成并挂载第二磁盘卷;

第二还原单元,用于将所述镜像文件中的未还原数据块还原到所述第二磁盘卷,以使得还原到所述第二磁盘卷的数据块提供给应用程序进行访问。

上述装置,优选的,还包括:

驱动设置单元,用于设置过滤驱动,并在所述过滤驱动上挂载所述第二磁盘卷,以使得所述镜像文件中没有还原到所述第二磁盘卷的数据块通过所述过滤驱动提供给所述应用程序进行访问。

本申请还提供了一种电子设备,包括:

磁盘,包括第一磁盘卷,所述第一磁盘卷为待还原覆盖的目标磁盘卷;

处理器,用于对所述磁盘中的第一磁盘卷进行删除;将镜像文件中的备份的原文件系统的元数据还原到所述磁盘中;在所述磁盘的与所述第一磁盘卷所对应的存储区域中,生成并挂载第二磁盘卷;将所述镜像文件中的未还原数据块还原到所述第二磁盘卷,以使得还原到所述第二磁盘卷的数据块提供给应用程序进行访问。

由上述方案可知,本申请所提供的一种磁盘数据的还原方法、装置及电子设备,对于待还原的镜像文件,首先删除其在磁盘中对应的目标磁盘卷,之后,将镜像文件中的备份的原文件系统的元数据还原到磁盘中后在磁盘的与第一磁盘卷所对应的存储区域中生成并挂载新的磁盘卷,此时,对于应用程序来说,新的磁盘卷中的数据块已经处于能够进行访问的状态,由此,应用程序能够访问新磁盘卷中已经从镜像文件中还原的数据块。可见,本申请中在对磁盘数据进行还原时,先对镜像文件中的元数据进行还原后生成并挂载新的磁盘卷,从而使得应用程序可以访问还原到新磁盘卷中的数据块,而元数据的数量通常都比较小,因此,应用程序等待访问的耗时明显较短,而且,应用程序也无需等待镜像文件中的全部数据块均还原到新磁盘卷,就可以对已经还原到新磁盘卷的数据块进行访问,进而避免现有技术中需要等待镜像文件全部还原到磁盘后才挂载新磁盘卷而导致应用程序长时间无法访问新磁盘卷的情况,因此,本申请中能够减少新磁盘卷中数据块被访问的等待耗时,能够使得应用程序从镜像文件中的数据块开始向新磁盘卷还原就可以进行数据块访问,由此提高运行效率,从而达到本申请目的。

附图说明

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

图1为常用的磁盘数据访问架构示意图;

图2为本申请实施例一提供的一种磁盘数据的还原方法的流程图;

图3为本申请实施例一的部分流程图;

图4为本申请实施例二提供的一种磁盘数据的还原装置的结构示意图;

图5为本申请实施例三提供的一种电子设备的结构示意图;

图6为本申请实施例中磁盘数据的访问架构图。

具体实施方式

以windows操作系统为例,磁盘中的数据的访问架构如图1中所示,应用程序要读写一个文件要通过多层的数据传递,最终才到达数据所在的物理磁盘上:

在用户层面上,应用程序首先通过systemapi发送访问请求,该访问请求到达操作系统内核之后,内核中通过磁盘挂载的文件系统驱动filesystemdriver、系统驱动volumeupperfilterdriver、卷驱动volumedriver、磁盘驱动diskdriver之后,将访问请求传输到磁盘设备diskdevice,磁盘设备将访问请求所需要访问的目标数据块向上层返回。

本申请的发明人经过研究发现,基于常用的磁盘数据还原方案,应用程序需要等待磁盘数据全部还原到磁盘并将完成数据还原的磁盘卷重新挂载在文件系统驱动上,才可以对磁盘卷进行数据访问,可见,应用程序需要等待磁盘数据完全还原完成,导致等待耗时过长,而造成工作效率较低。

有鉴于此,本申请的发明人经过进一步研究,针对以上缺陷,提出一种新的对磁盘数据进行还原的技术方案,可以对磁盘卷的数据进行备份形成的镜像文件进行还原,并还原到磁盘原始位置或新的磁盘位置上。基于本申请中的技术方案,在镜像文件进行还原的过程中,应用程序就可以对磁盘中已经还原的数据块进行访问,以减少应用程序进行访问的等待耗时。进一步的,在镜像文件进行还原的过程中,应用程序也可以对镜像文件中没有还原到磁盘中的数据块进行访问,从而进一步减少应用程序进行访问的等待耗时。

具体的,本申请中可以在对磁盘中待还原覆盖的第一磁盘卷即目标磁盘卷进行删除之后,首先将镜像文件中的元数据还原到磁盘中,之后就在磁盘目标磁盘卷原来的存储区域上中生成并挂载新的磁盘卷即第二磁盘卷,由此,在镜像文件中的数据块向第二磁盘卷进行还原进行过程中,应用程序就可以对已经还原到第二磁盘卷中的数据块进行访问,而无需等待所有数据块均还原完成才能进行数据访问。

进一步的,本申请中可以对第二磁盘卷挂载到预先安装的过滤驱动,进而通过过滤驱动能够使得镜像文件中没有还原到第二磁盘卷的数据块也能够被应用程序所访问。

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

参考图2,为本申请实施例一提供的一种磁盘数据的还原方法的实现流程图,适用于各种具有数据备份功能的计算机、服务器等设备中,主要用以对设备中的磁盘数据进行还原,这里的磁盘数据区别于设备的操作系统数据,可见,本申请实施例针对磁盘中操作系统数据之外的可以被读写的数据进行还原。

具体的,本实施例中的方法可以包括以下步骤:

步骤201:对磁盘中的第一磁盘卷进行删除。

其中,第一磁盘卷为待还原覆盖的目标磁盘卷。例如,本实施例中需要对计算机磁盘中的d盘进行备份,然后还原到d盘(当然,也可以选择其它的磁盘卷或未分区的磁盘空间作为目标磁盘卷),此时,将该d盘的磁盘卷进行删除,可以理解为:删除d盘这个磁盘卷,在磁盘中不再有d盘这个磁盘卷。

需要说明的是,待还原的镜像文件是指待还原的备份数据,备份数据以镜像文件的形式存在。本申请中的目的在于将镜像文件中的备份卷的数据还原到目标磁盘卷中对应的位置。

步骤202:将镜像文件中备份的原文件系统的元数据还原到磁盘中。

其中,本实施例中可以将镜像文件中备份的原文件系统的元数据进行还原到被删除的目标磁盘卷在磁盘中对应的存储区域中。

在具体实现中,本实施例中可以通过以下方式将镜像文件中备份的原文件系统的元数据还原到磁盘中,如下:

首先,获得镜像文件中元数据的占用位图,其中,该元数据的占用位图中包含有至少一个元数据在镜像文件中的占用位,这里的占用位能够表征对应的元数据在镜像文件中有没有已经被还原完成以及在镜像文件中的存储位置等信息;

之后,基于第一磁盘卷中数据块的存储位置与镜像文件中在磁盘所需要还原的存储位置,生成镜像文件还原到磁盘中的第一磁盘卷的位置映射关系,其中,位置映射关系可以以位置映射表的形式存在,而该位置映射表中包含镜像文件中各种数据向磁盘还原的位置对应关系,如对于a数据,从镜像文件所在a1位置还原到磁盘中目标磁盘卷的a2位置,a1和a2之间形成一个位置对应关系,对于镜像文件中各个待还原的数据,如元数据和其对应的数据块等,分别形成一个向磁盘还原的位置对应关系,组成位置映射表;

最后,基于元数据的占用位图和位置映射关系,将镜像文件中的元数据还原到磁盘中。具体的,本实施例中可以按照元数据的占用位图中的各个占用位,将镜像文件中的元数据按照位置映射关系还原到磁盘中的相应位置上,例如,可以将各个元数据进行同步还原,或者按照占用位图中的占用位顺序进行依次还原。

而在还原完成元数据之后,将该元数据在占用位图中对应的占用位进行删除,由此来表征镜像文件中的与该删除的占用位对应的元数据已经被还原到磁盘中。

进一步的,在完成元数据的还原之后,由于镜像文件中的数据块在还原时的存储空间地址等信息可能发生变化,因此需要对元数据进行调整,如下:

首先,获得镜像文件中数据块的占用位图,其中,数据块的占用位图包含至少一个数据块在镜像文件中的占用位,该占用位保证数据块有没有被还原以及存储位置等;

之后,基于数据块的占用位图和位置映射关系,对元数据中对应数据块的空间属性进行调整。例如,本实施例中可以按照数据块的占用位图中的各个占用位,将元数据中对应数据块的空间属性按照位置映射关系中数据块还原到磁盘中的空间信息进行调整,以使得后续完成还原后,磁盘中的元数据能够准确表征其对应的数据块的各项信息。

具体的,本实施例中根据第一磁盘卷和镜像文件所在备份卷中各自数据的存储信息,如地址关系和存储大小等,计算备份卷中的数据还原到目标磁盘卷所在的原始存储区域上时需要进行的位置调整等信息。例如,在文件系统中是以簇为最小单位来保存数据为例,在数据还原时要把源卷(备份卷)的簇拷贝到目标卷(目标磁盘卷所在的存储区域),因为目标卷与源卷的大小不一样,可能需要做位置的调整。比如,有源卷的分区容量为100gb,已用50gb,需要还原到60gb的目标卷的分区中,而源卷的分区的数据是散落在100gb的空间里,如果有数据存在分区偏移60gb之后,此时,需要把超出60gb的数据在目标卷的60gb内找空闲的位置存放,此时对相应数据的元数据进行修改调整。

当然,如要目标卷的分区比源卷的分区大,那么元数据中的地址信息可以不调整,源卷中的数据还原到目标卷的相同位置即可,只修改分区大小的相关参数对应的元数据。

步骤203:在磁盘的与第一磁盘卷所对应的存储区域中,生成并挂载第二磁盘卷。

其中,第二磁盘卷是在磁盘中与删除的第一磁盘卷所在的存储区域上进行生成,并挂载在操作系统的文件系统驱动上,例如,以盘符为d:挂载第二磁盘卷,由此,第二磁盘卷能够通过文件系统驱动展示给用户和应用程序,由此应用程序可以对第二磁盘卷中的数据进行访问。

在具体实现中,第二磁盘卷与第一磁盘卷的卷信息相同,如盘符、路径等,如第一磁盘卷为d盘符的卷,新挂载的第二磁盘卷的盘符仍为d,这些磁盘卷的信息均保持不变,以便于用户和应用程序进行访问。

需要说明的是,第二磁盘卷在被删除的第一磁盘卷的存储区域上生成,由此,之前还原到磁盘的元数据是在第二磁盘卷中的。

步骤204:将镜像文件中的未还原数据块还原到第二磁盘卷,以使得还原到第二磁盘卷的数据块提供给应用程序进行访问。

可见,在第二磁盘卷挂载到文件系统驱动之后,第二磁盘卷对于用户和应用程序来说都是可见且可访问的,从镜像文件中的未还原数据块向第二磁盘卷开始还原起,应用程序就可以对第二磁盘卷进行访问,而在有数据块还原到第二磁盘卷时,应用程序就可以对第二磁盘卷中已经还原完成的数据块进行访问,并不需要等待镜像文件中的所有数据块都还原完成。

在一种实现方式中,本实施例中在将镜像文件中的未还原数据块还原到第二磁盘卷时,可以通过以下方式实现:

用位置映射关系,将镜像文件中的未还原数据块还原到第二磁盘卷中相应的存储位置上,而对于已经还原到第二磁盘卷的数据块来说,在数据块的占用位图中,将已经还原到第二磁盘卷的数据块对应的占用位进行标记或者删除,以表征该数据块已经从镜像文件中还原到第二磁盘卷中。

由上述方案可知,本申请实施例一所提供的一种磁盘数据的还原方法,对于待还原的镜像文件,首先删除目标磁盘中对应的磁盘卷,之后,将镜像文件中的备份的原文件系统的元数据还原到磁盘中后在磁盘的与第一磁盘卷所对应的存储区域中生成并挂载新的磁盘卷,此时,对于应用程序来说,新的磁盘卷中的数据块已经处于能够进行访问的状态,由此,应用程序能够访问新磁盘卷中已经从镜像文件中还原的数据块。可见,本实施例中在对磁盘数据进行还原时,先对镜像文件中的元数据进行还原后生成并挂载新的磁盘卷,从而使得应用程序可以访问还原到新磁盘卷中的数据块,而元数据的数量通常都比较小,因此,应用程序等待访问的耗时明显较短,而且,应用程序也无需等待镜像文件中的全部数据块均还原到新磁盘卷,就可以对已经还原到新磁盘卷的数据块进行访问,进而避免现有技术中需要等待镜像文件全部还原到磁盘后才挂载新磁盘卷而导致应用程序长时间无法访问新磁盘卷的情况,因此,本实施例中能够减少新磁盘卷中数据块被访问的等待耗时,能够使得应用程序从镜像文件中的数据块开始向新磁盘卷还原就可以进行数据块访问,由此提高运行效率,从而达到本实施例目的。

在一种实现方式中,为了在镜像文件中的数据块还没有全部还原到第二磁盘卷时就可以对这些没有还原的数据块进行访问,本实施例中可以针对第二磁盘卷设置过滤驱动,并在该过滤驱动上挂载第二磁盘卷,以使得镜像文件中没有还原到第二磁盘卷的数据块能够通过过滤驱动提供给应用程序进行访问。

而在镜像文件中的数据块全部还原到第二磁盘卷之后,过滤驱动不再处于激活状态,此时的过滤驱动可以被暂时保留,而在操作系统重启时可以删除过滤驱动,以节省空间。

具体的,在镜像文件中的数据块向第二磁盘卷还原的过程中,本实施例中还可以具有以下执行流程,如图3中所示:

步骤301:接收应用程序的访问请求。

其中,访问请求中可以包含有待访问的目标数据块的数据标识。

步骤302:判断镜像文件中的数据块是否已经全部还原完成,如果是,执行步骤303,如果没有全部还原完成,执行步骤304。

其中,本实施例中可以基于数据块的占用位图来判断镜像文件中的数据块是否已经全部还原完成,例如,如果数据块的占用位图中的所有占用位均被标识为还原完成或者全部被删除,那么表征镜像文件中的数据块已经全部还原完成;或者,如果过滤驱动没有处于激活状态或者过滤驱动被删除,那么也保证镜像文件中的数据块已经全部还原完成。

步骤303:将第二磁盘卷中访问请求对应的目标数据块提供给应用程序进行访问。

例如,在镜像文件中的所有数据块全部还原完成时,访问请求通过文件系统驱动传输到磁盘,由此,第二磁盘卷中与访问请求相对应的目标数据块向上层返回,以提供给应用程序进行访问。

步骤304:判断目标数据块是否已经还原到第二磁盘卷,如果是,执行步骤303,否则,执行步骤305。

其中,本实施例中可以通过判断数据块的占用位图中目标数据块的占用位是否被标记为还原完成或者被删除,来确定判断目标数据块是否已经还原到第二磁盘卷。如果目标数据块的占用位被标记为还原完成或者被删除,那么表征目标数据块已经被还原到第二磁盘卷,此时,就可以执行步骤303,在第二磁盘卷中将访问请求对应的目标数据块提供给应用程序进行访问,而如果目标数据块的占用位没有被标记为还原完成或者没有被删除,那么执行步骤305。

步骤305:利用过滤驱动,将镜像文件中的目标数据块提供给应用程序进行访问。

具体的,本实施例中通过过滤驱动将访问请求从文件系统驱动转向到镜像文件中,由此,将镜像文件中与访问请求相对应的目标数据块向上层返回,以提供给应用程序进行访问。

步骤306:将目标数据块写入到第二磁盘卷。

也就是说,在镜像文件中目标数据块没有被还原到第二磁盘卷时,应用程序又访问到该目标数据块,此时,可以将被访问的目标数据块写入到第二磁盘卷,进而实现目标数据块的还原。同时,可以将数据块的占用位图中该目标数据块对应的占用位进行标记或删除,以表征该目标数据块已经被还原到第二磁盘卷。

参考图4中所示,为本申请实施例二提供的一种磁盘数据的还原装置的结构示意图,适用于各种具有数据备份功能的计算机、服务器等电子设备中,主要用以对设备中的磁盘数据进行还原,这里的磁盘数据区别于设备的操作系统数据,可见,本申请实施例针对磁盘中操作系统数据之外的可以被读写的数据进行还原。

卷删除单元401,用于对磁盘中第一磁盘卷进行删除,所述第一磁盘卷为待还原覆盖的目标磁盘卷;

第一还原单元402,用于将镜像文件中备份的原文件系统的元数据还原到所述磁盘中;

卷处理单元403,用于在所述磁盘的与所述第一磁盘卷所对应的存储区域中,生成并挂载第二磁盘卷;

第二还原单元404,用于将所述镜像文件中的未还原数据块还原到所述第二磁盘卷,以使得还原到所述第二磁盘卷的数据块提供给应用程序进行访问。

驱动设置单元405,用于设置过滤驱动,并在所述过滤驱动上挂载所述第二磁盘卷,以使得所述镜像文件中没有还原到所述第二磁盘卷的数据块通过所述过滤驱动提供给所述应用程序进行访问。

由上述方案可知,本申请实施例二所提供的一种磁盘数据的还原装置,对于待还原的镜像文件,首先删除其在磁盘中对应的目标磁盘卷,之后,将镜像文件中的备份的原文件系统的元数据还原到磁盘中后在磁盘的与第一磁盘卷所对应的存储区域中生成并挂载新的磁盘卷,此时,对于应用程序来说,新的磁盘卷中的数据块已经处于能够进行访问的状态,由此,应用程序能够访问新磁盘卷中已经从镜像文件中还原的数据块。可见,本实施例中在对磁盘数据进行还原时,先对镜像文件中的元数据进行还原后生成并挂载新的磁盘卷,从而使得应用程序可以访问还原到新磁盘卷中的数据块,而元数据的数量通常都比较小,因此,应用程序等待访问的耗时明显较短,而且,应用程序也无需等待镜像文件中的全部数据块均还原到新磁盘卷,就可以对已经还原到新磁盘卷的数据块进行访问,进而避免现有技术中需要等待镜像文件全部还原到磁盘后才挂载新磁盘卷而导致应用程序长时间无法访问新磁盘卷的情况,因此,本实施例中能够减少新磁盘卷中数据块被访问的等待耗时,能够使得应用程序从镜像文件中的数据块开始向新磁盘卷还原就可以进行数据块访问,由此提高运行效率,从而达到本实施例目的。

而且,本实施例中在镜像文件中的数据块还没有全部还原到第二磁盘卷时就可以对这些没有还原的数据块进行访问,通过可以针对第二磁盘卷设置过滤驱动,并在该过滤驱动上挂载第二磁盘卷,以使得镜像文件中没有还原到第二磁盘卷的数据块能够通过过滤驱动提供给应用程序进行访问。

需要说明的是,本实施例的装置中各单元的具体实现方式可以参考前文中相应实现,此处不再详述。

参考图5,为本申请实施例三提供的一种电子设备的结构示意图,该电子设备可以为各种具有数据备份功能的计算机、服务器等设备,主要用以对设备中的磁盘数据进行还原,这里的磁盘数据区别于设备的操作系统数据,可见,本申请实施例针对磁盘中操作系统数据之外的可以被读写的数据进行还原。

具体的,本实施例中的电子设备中可以包括以下结构:

磁盘501,包括第一磁盘卷,所述第一磁盘卷为待还原覆盖的目标磁盘卷;

处理器502,用于对所述磁盘中的第一磁盘卷进行删除;将镜像文件中的备份的原文件系统的元数据还原到所述磁盘中;在所述磁盘的与所述第一磁盘卷所对应的存储区域中,生成并挂载第二磁盘卷;将所述镜像文件中的未还原数据块还原到所述第二磁盘卷,以使得还原到所述第二磁盘卷的数据块提供给应用程序进行访问。

具体的,处理器502与磁盘501之间可以通过通信总线503实现通信。

当然,本实施例中的电子设备中还可以包括有通信接口504、输入单元505和显示器506等部件。各部件之间通过通信总线503实现通信。

在本实施例中,该处理器502,可以为中央处理器(centralprocessingunit,cpu),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。

该处理器502可以调用磁盘501或其他存储器中存储的程序。具体的,处理器502可以执行以下磁盘数据的还原方法的程序,以实现对镜像文件在磁盘501中的目标磁盘卷中的数据还原。

磁盘501或其他存储器中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:

对磁盘中第一磁盘卷进行删除,所述第一磁盘卷为待还原覆盖的目标磁盘卷;

将镜像文件中的备份的原文件系统的元数据还原到所述磁盘中;

在所述磁盘的与所述第一磁盘卷所对应的存储区域中,生成并挂载第二磁盘卷;

将所述镜像文件中的未还原数据块还原到所述第二磁盘卷,以使得还原到所述第二磁盘卷的数据块提供给应用程序进行访问。

当然,图5所示的电子设备的结构并不构成对本申请实施例中电子设备的限定,在实际应用中电子设备可以包括比图5所示的更多或更少的部件,或者组合某些部件。

以下以服务器中对磁盘中的目标卷进行数据还原为例,对本实施例中的技术方案进行举例说明:

在本实施例中,可以在删除目标卷之后,从镜像文件中还原元数据,并按照目标卷的存储信息来修改元数据中的内容,之后,在安装卷过滤驱动后生成并在文件系统驱动和卷过滤驱动上挂载在新目标卷,此时,应用程序就可以正常访问该新目标卷的数据。

之后,即使在目标卷中的数据块没有全部还原,也可以通过卷过滤驱动将需要访问未还原的数据块的访问请求转向到镜像文件中,去读取相应的数据块,在此过程中,镜像文件中的数据块向新目标卷的还原仍在继续,直到所有的数据均还原完成,再停止卷过滤驱动的转向工作,实现磁盘数据的还原。

通过以上的改进,在挂载新目标卷之后,应用程序可以正常使用目标卷的数据了。可见,在有大量数据文件的文件系统中,文件系统的元文件数据量很小,在还原完元数据后,用户的所有要使用目标卷的业务都可以正常运行了。大大减少了用户等待还原的时间,减少了长时间还原数据带来的业务损失。

具体的,本实施例中可以在服务器中构建3个组件来实现以上功能,如:还原程序(mainapp)、后台还原程序(backapp)、卷过滤驱动(volfilter)。

其中,结合图6中所示的数据访问架构图,基于以上组件实现目标卷的还原流程如下;

1、mainapp删除目标卷,目标卷即为写入还原的磁盘卷;

2、mainapp计算备份的镜像文件中元文件(元数据)占用位图(bmpmeda)和数据文件(数据块)占用位图(bmpdata);

3、mainapp根据备份数据,计算镜像文件中的数据还原到目标卷的位置映射表(mapdst);

4、mainapp根据bmpmeda从镜像文件中还原文件系统中元文件相关的数据,并按目标卷的信息修改元文件中与数据文件存储相关的数据;

5、mainapp安装卷过滤驱动;

6、mainapp启动backapp,backapp获取bmpdata和mapdst;

7、mainapp生成目标卷,并挂载目标卷。其中,操作系统将运行volfilter,并挂载volfilter到新生成的目标卷;

8、volfilter向backapp获取bmpdata、mapdst和镜像文件的信息,完成初始化;

其中,操作系统在将生成的目标卷挂载到文件系统驱动上后,应用程序就可以正常访问还原在新目标卷上的文件系统上的数据了。

9、在镜像文件所有的数据还原到新目标卷之前,所有应用程序对生成的目标卷上的数据操作请求,都会通过volfilter。而volfilter根据bmpdata和mapdst判断数据是否已经还原,已还原的数据直接将请求发送给底层设备,如新目标卷对应的底层设备,没有还原的数据从镜像文件中读取,并将数据写到底层设备并清除数据对应的bmpdata中的数据位(占用位),将数据返回给上层请求,如图6中所示;

10、backapp根据bmpdata继续还原未还原的数据;

11、backapp将bmpdata标识的所有数据还原后停止过滤驱动的转向工作,然后backapp停止工作;

12、还原完成。

可见,本实施例主要通过将备份数据分阶段做还原,在第一阶段把元文件相关的数据还原到目标卷后,目标卷就可以正常被应用程序访问。第二阶段再还原剩余的数据,从而达到减少各种应用业务等待还原数据的时间。

另一方面,本申请实施例还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上任意一个实施例中的磁盘数据的还原方法。

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

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

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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