CN115686932B - 备份集文件恢复方法、装置和计算机设备 - Google Patents
备份集文件恢复方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN115686932B CN115686932B CN202211088685.0A CN202211088685A CN115686932B CN 115686932 B CN115686932 B CN 115686932B CN 202211088685 A CN202211088685 A CN 202211088685A CN 115686932 B CN115686932 B CN 115686932B
- Authority
- CN
- China
- Prior art keywords
- backup set
- application program
- set file
- request
- block device
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种备份集文件恢复方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:通过应用程序响应于备份集文件满足恢复条件,发送块设备创建请求至设备驱动;通过设备驱动将系统内核生成的数据读取请求发送至应用程序;通过应用程序响应于数据读取请求,利用备份集文件的格式信息遍历备份集文件,得到虚拟磁盘数据,并将虚拟磁盘数据转发至系统内核中;通过系统内核根据虚拟磁盘数据,确定备份集文件的分区表信息,并根据分区表信息,在块设备中创建块设备分区;通过应用程序将已创建的块设备分区挂载至系统目录,以从系统目录中恢复备份集文件。采用本方法能够解决备份集文件恢复时过多占用硬盘存储空间的问题。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种备份集文件恢复方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,各种计算机文件备份技术层出不穷。当计算机中的系统文件损坏时,可以通过备份集文件进行文件恢复,避免了系统操作失误或系统故障导致的数据丢失问题。
目前,在一些备份集文件恢复方法中,技术人员往往需要分离出计算机系统备份集文件中的磁盘数据文件,再将磁盘数据文件挂载至系统,分离出的磁盘数据文件大小接近备份集文件大小,重复占用系统存储资源,可能导致存储空间不够而恢复失败。
因此,传统技术中存在备份集文件恢复时过多占用硬盘存储空间的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种备份集文件恢复方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
一种备份集文件恢复方法,其特征在于,应用于计算机设备,计算机设备包括系统内核、设备驱动和应用程序,方法包括:
通过应用程序响应于备份集文件满足恢复条件,发送块设备创建请求至设备驱动;块设备创建请求用于指示系统内核创建块设备;
通过设备驱动将系统内核生成的数据读取请求发送至应用程序;
通过应用程序响应于数据读取请求,利用备份集文件的格式信息遍历备份集文件,得到虚拟磁盘数据,并将虚拟磁盘数据转发至系统内核中;
通过系统内核根据虚拟磁盘数据,确定备份集文件的分区表信息,并根据分区表信息,在块设备中创建块设备分区;
通过应用程序将已创建的块设备分区挂载至系统目录,以从系统目录中恢复备份集文件。
在其中一个实施例中,通过应用程序响应于备份集文件满足恢复条件,发送块设备创建请求至设备驱动,包括:
通过应用程序响应于对备份集文件的文件恢复请求,解析备份集文件,得到备份集文件的格式信息;
通过应用程序根据备份集文件的格式信息,发送块设备创建请求至设备驱动。
在其中一个实施例中,通过设备驱动将系统内核生成的数据读取请求发送至应用程序,包括:
通过系统内核生成数据读取请求,并将数据读取请求发送至设备驱动;数据读取请求用于请求将备份集文件对应的虚拟磁盘数据缓存至块设备中;
通过设备驱动接收数据读取请求,并将数据读取请求进行封装,并发送封装后的数据读取请求至应用程序。
在其中一个实施例中,通过应用程序将已创建的块设备分区挂载至系统目录,包括:
通过应用程序检测块设备分区的创建状态;
在创建状态为块设备分区创建完成的情况下,通过应用程序将已创建的块设备与系统目录中的挂载点目录建立连接,以将已创建的块设备分区挂载至系统目录。
在其中一个实施例中,在通过应用程序将已创建的块设备分区挂载至系统目录的步骤之后,还包括:
通过应用程序执行目标系统调用;目标系统调用用于读取系统目录下的挂载点中的挂载数据;
通过系统内核确定目标系统调用所指示的在块设备中的数据读取位置,并根据数据读取位置,发送挂载数据读取请求至设备驱动;
通过设备驱动转发挂载数据读取请求至应用程序;
通过应用程序根据挂载数据读取请求,返回存储于块设备中的目标挂载数据至设备驱动;目标挂载数据为在块设备中与数据读取位置所对应的数据;
通过系统内核读取设备驱动中的目标挂载数据。
在其中一个实施例中,方法还包括:
设备驱动在预设的定时时长内未接收到挂载数据读取请求的情况下,通过设备驱动删除系统内核中的块设备,并发送块设备卸载请求至应用程序;
通过应用程序根据块设备卸载请求,卸载系统目录下块设备分区的挂载点。
一种备份集文件恢复装置,其特征在于,装置包括:
响应模块,用于通过应用程序响应于备份集文件满足恢复条件,发送块设备创建请求至设备驱动;块设备创建请求用于指示系统内核创建块设备;
发送模块,用于通过设备驱动将系统内核生成的数据读取请求发送至应用程序;
转发模块,用于通过应用程序响应于数据读取请求,利用备份集文件的格式信息遍历备份集文件,得到虚拟磁盘数据,并将虚拟磁盘数据转发至系统内核中;
创建模块,用于通过系统内核根据虚拟磁盘数据,确定备份集文件的分区表信息,并根据分区表信息,在块设备中创建块设备分区;
挂载模块,用于通过应用程序将已创建的块设备分区挂载至系统目录,以从系统目录中恢复备份集文件。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,其特征在于,处理器执行计算机程序时实现上述的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现上述的方法的步骤。
一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现上述的方法的步骤。
上述备份集文件恢复方法、装置、计算机设备、存储介质和计算机程序产品,通过应用程序响应于备份集文件满足恢复条件,发送块设备创建请求至设备驱动,以指示系统内核创建块设备;再通过设备驱动将系统内核生成的数据读取请求发送至应用程序;再通过应用程序响应于数据读取请求,利用备份集文件的格式信息遍历备份集文件,得到虚拟磁盘数据,并将虚拟磁盘数据转发至系统内核中;再通过系统内核根据虚拟磁盘数据,确定备份集文件的分区表信息,并根据分区表信息,在块设备中创建块设备分区;再通过应用程序将已创建的块设备分区挂载至系统目录,以从系统目录中恢复备份集文件;如此,可以通过应用程序,对备份集文件进行解析,获取备份集文件的格式信息(例如,备份集内部磁盘数据在备份集内的偏移、备份集内磁盘的大小信息),再发送设备初始化请求至设备驱动,然后,设备驱动处理设备初始化请求,在系统内核中初始化并创建块设备,块设备创建完成后,系统内核发送备份集文件的数据读取请求至设备驱动,设备驱动将数据读取请求封装并发送至应用程序,应用程序接收来自设备驱动的数据读取请求,将备份集文件的数据返回至设备驱动,设备驱动将返回的数据缓存至缓冲区中,数据缓存完成后,系统内核读取缓冲区中的数据,在块设备中创建块设备分区,块设备分区创建完成后,应用程序将块设备分区挂载于系统目录下,通过操作系统目录下的挂载点以实现备份集文件的恢复,无需对挂载点进行手动管理,避免了传统挂载方式繁杂的挂载点管理步骤,也无需将计算机系统备份集文件中的磁盘数据文件先分离出来,再将其挂在至系统目录,实现了直接从底层将备份集文件模拟成磁盘数据文件,能够避免重复占用存储空间。
附图说明
图1为一个实施例中一种备份集文件恢复方法的流程示意图;
图2为一个实施例中一种应用程序功能模块图;
图3为一个实施例中一种设备驱动功能模块图;
图4为一个实施例中一种备份集文件挂载的活动图;
图5为一个实施例中一种用户空间和内核空间的通信机制架构图;
图6为另一个实施例中一种备份集文件恢复方法的流程示意图;
图7为一个实施例中一种备份集文件恢复装置的结构框图;
图8为一个实施例中一种计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种备份集文件恢复方法,以该方法应用于计算机设备为例进行说明,包括以下步骤:
步骤S102,通过应用程序响应于备份集文件满足恢复条件,发送块设备创建请求至设备驱动;块设备创建请求用于指示系统内核创建块设备。
其中,应用程序用于解析备份集、挂载或卸载块设备分区、读取挂载点文件数据以及与内核驱动进行通信。例如,如图2所示,应用程序有备份集解析模块、设备管理模块、数据读取模块和Netlink通信(Linux提供的用于内核和用户态进程之间的通信方式)模块四个模块,备份集解析模块用于解析备份集格式(包括备份集内部磁盘数据在备份集内的偏移、备份集内磁盘的大小信息)、分区表、文件系统类型、读请求,设备管理模块用于挂载或卸载块设备分区,数据读取模块用于读取挂载点数据,Netlink通信模块用于收发与内核驱动之间的请求。
其中,备份集文件可以是操作系统和虚拟机的备份集内部的磁盘数据文件。
其中,恢复条件可以是备份集文件满足触发恢复请求需满足的条件。
其中,块设备创建请求可以是应用程序为响应备份集文件的恢复请求而向设备驱动发送的能够在系统内核创建块设备的请求。
其中,设备驱动用于创建并管理块设备,调度系统内核请求以及与应用程序进行通信。例如,如图3所示,设备驱动有Netlink通信模块、请求调度模块和块设备管理模块,Netlink通信模块用于收发与应用程序之间的请求,请求调度模块用于调度bio(Block I/O,是内核发出的对块设备的读写请求)请求的分发、更新bio请求定时器的状态以及处理来自应用程序的数据返回请求,块设备管理模块用于初始化块设备和移除块设备。
具体实现中,计算机设备获取到备份集文件的恢复请求,通过应用程序响应该恢复请求;然后,计算机设备通过应用程序发送块设备创建请求至设备驱动中;计算机设备通过设备驱动在系统内核中创建块设备。
步骤S104,通过设备驱动将系统内核生成的数据读取请求发送至应用程序。
其中,数据读取请求可以是系统内核创建块设备后,向设备驱动发起的读取备份集文件数据的请求。
具体实现中,计算机设备通过系统内核发送数据读取请求至设备驱动,以读取备份集文件的分区表信息,计算机设备再通过设备驱动将来自系统内核的数据读取请求发送到应用程序中。
例如,在备份集文件的挂载中,系统内核发送读取备份集文件中分区表信息的bio请求至设备驱动中,设备驱动拦截来自系统内核的bio请求后,将bio请求进行封装,设备驱动再将封装的bio请求发送至应用程序。
步骤S106,通过应用程序响应于数据读取请求,利用备份集文件的格式信息遍历备份集文件,得到虚拟磁盘数据,并将虚拟磁盘数据转发至系统内核中。
其中,格式信息可以是备份集文件内部磁盘数据在备份集文件内的偏移信息和备份集文件内部磁盘的大小信息。
其中,虚拟磁盘数据可以是备份集文件中的文件数据。
具体实现中,计算机设备通过应用程序响应从设备驱动发送而来的数据读取请求,对备份集文件进行解析,得到备份集文件的格式信息;计算机设备再通过应用程序,并根据备份集文件的格式信息,遍历备份集文件,得到备份集文件对应的虚拟磁盘数据;计算机设备再通过设备驱动,将虚拟磁盘数据转发至系统内核中。
例如,在备份集文件的挂载中,应用程序接收到从设备驱动发送而来的bio请求后,根据备份集文件的格式信息遍历备份集文件以将备份集文件中的虚拟磁盘数据读取并返回至设备驱动中的缓冲区中,设备驱动在接收到数据返回请求后,将数据写入对应的bio请求缓冲器,设备驱动转发该bio请求缓冲器中的数据至系统内核中。
步骤S108,通过系统内核根据设备驱动中已缓存的虚拟磁盘数据,确定备份集文件的分区表信息,并根据分区表信息,在块设备中创建块设备分区。
其中,分区表信息可以是备份集文件中关于虚拟磁盘数据的分区数量、分区类型和分区起始或结束地址信息。
其中,块设备分区可以是系统内核根据备份集文件的分区表信息对块设备进行存储空间划分的分区。
具体实现中,计算机设备先通过系统内核根据设备驱动中已缓存的备份集文件对应的虚拟磁盘数据,确定备份集文件对应的分区表信息;计算机设备再通过系统内核根据该分区表信息,在系统内核中的块设备中创建块设备分区。
步骤S110,通过应用程序将已创建的块设备分区挂载至系统目录,以从系统目录中恢复备份集文件。
其中,系统目录可以是计算机设备中操作系统的存放主要文件的目录。
具体实现中,计算机设备通过应用程序,将在系统内核已创建好的块设备分区挂载至系统目录中;计算机设备再通过操作系统目录的挂载点,从系统目录中恢复备份集文件。
例如,在进行备份集文件的挂载时,计算机设备中的应用程序和设备驱动利用Netlink Socket(一种用于在内核态和用户态进程之间进行数据传输的特殊的进程间通信)的通信机制进行通信,如图4所示,应用程序将内核空间中已创建的块设备分区一一挂载至系统目录下,建立了块设备分区与系统目录之间的连接,如果需要恢复备份集文件,则只需点击系统目录下的挂载点,便能获取到与挂载点对应的块设备分区中的备份集文件数据。
例如,在备份集文件的恢复过程中,为了便于本领域技术人员理解,图5示例性地提供了一种备份集文件的挂载活动图。
上述备份集文件恢复方法中,通过应用程序响应于备份集文件满足恢复条件,发送块设备创建请求至设备驱动,以指示系统内核创建块设备;再通过通过设备驱动将系统内核生成的数据读取请求发送至应用程序;再通过应用程序响应于数据读取请求,利用备份集文件的格式信息遍历备份集文件,得到虚拟磁盘数据,并将虚拟磁盘数据转发至系统内核中;再通过系统内核根据虚拟磁盘数据,确定备份集文件的分区表信息,并根据分区表信息,在块设备中创建块设备分区;再通过应用程序将已创建的块设备分区挂载至系统目录,以从系统目录中恢复备份集文件;如此,可以通过创建块设备,再根据备份集文件中的磁盘数据创建块设备分区,并将磁盘数据写入块设备分区,进行挂载,不仅提高了挂载效率,还无需占用过多系统资源。
在另一个实施例中,通过应用程序响应于备份集文件满足恢复条件,发送块设备创建请求至设备驱动,包括:通过应用程序响应于对备份集文件的文件恢复请求,解析备份集文件,得到备份集文件的格式信息;通过应用程序根据备份集文件的格式信息,发送块设备创建请求至设备驱动。
其中,文件恢复请求可以是应用程序接收到的对备份集文件进行备份的请求。
具体实现中,计算机设备通过应用程序接收到备份集文件的恢复请求,在备份集文件的恢复请求满足恢复条件的情况下,计算机设备通过应用程序解析备份集文件,并得到备份集文件的格式信息;计算机设备通过应用程序发送创建用于存储备份集文件的块设备创建请求至设备驱动,以请求系统内核创建可存储备份集文件的块设备。
本实施例的技术方案,通过应用程序响应于备份集文件的文件恢复请求,当备份集文件满足恢复条件时,应用程序解析备份集文件的格式信息,并向设备驱动发送块设备创建请求,以请求系统内核创建块设备以存储备份集文件,对于不同格式的备份集文件,只需修改应用程序中的备份集解析模块算法便可以挂载特定格式的备份集,不仅提高了备份集文件的挂载效率,还满足了多种备份集文件的恢复。
在另一个实施例中,通过设备驱动将系统内核生成的数据读取请求发送至应用程序,包括:通过系统内核生成数据读取请求,并将数据读取请求发送至设备驱动;数据读取请求用于请求将备份集文件对应的虚拟磁盘数据缓存至块设备中;通过设备驱动接收数据读取请求,并将数据读取请求进行封装,并发送封装后的数据读取请求至应用程序。
其中,封装后的数据读取请求可以是由系统内核发送、经设备驱动封装以发送至应用程序的读取备份集文件的虚拟磁盘数据的请求。
具体实现中,计算机设备通过系统内核创建块设备后,准备读取备份集文件中的分区表信息,计算机设备通过系统内核发送数据读取请求至设备驱动中;计算机设备再通过设备驱动将块设备的数据读取请求进行封装,并将封装后的数据读取请求转发至应用程序。
本实施例的技术方案,通过工作于用户空间的应用程序和系统内核中轻量级的设备驱动之间的工作通信,完成备份集文件的数据恢复工作,占用较少的计算机资源,且不依赖外部第三方库,有较高的可移植性。
在另一个实施例中,通过应用程序将已创建的块设备分区挂载至系统目录,包括:通过应用程序检测块设备分区的创建状态;在创建状态为块设备分区创建完成的情况下,通过应用程序将已创建的块设备与系统目录中的挂载点目录建立连接,以将已创建的块设备分区挂载至系统目录。
其中,块设备分区的创建状态可以是块设备分区创建完成或块设备分区上位未创建的状态。
其中,挂载点目录可以是在计算机设备操作系统中存放备份集文件的文件系统目录。
具体实现中,计算机设备通过应用程序检测块设备分区的创建状态,若块设备分区尚未创建完成,则等待,若块设备分区创建完成,则计算机设备通过应用程序将块设备与系统目录中的挂载点目录建立连接,将已创建的块设备分区挂载至系统目录中,完成挂载。
本实施例的技术方案,通过应用程序检查系统内核中块设备分区的创建状态,进而判定是否将块设备分区与系统目录中的挂载点建立连接,无需进行手动的挂载,提高了挂载效率。
在另一个实施例中,在通过应用程序将已创建的块设备分区挂载至系统目录的步骤之后,还包括:通过应用程序执行目标系统调用;目标系统调用用于读取系统目录下的挂载点中的挂载数据;通过系统内核确定目标系统调用所指示的在块设备中的数据读取位置,并根据数据读取位置,发送挂载数据读取请求至设备驱动;通过设备驱动转发挂载数据读取请求至应用程序;通过应用程序根据挂载数据读取请求,返回存储于块设备中的目标挂载数据至设备驱动;目标挂载数据为在块设备中与数据读取位置所对应的数据;通过系统内核读取设备驱动中的目标挂载数据。
其中,目标系统调用可以是应用程序用于读取系统目录下挂载点对应的文件数据的函数调用。
其中,挂载数据可以是系统目录下用户所点击的挂载点对应的文件数据。
其中,数据读取位置可以是挂载点对应的文件在块设备中的存储位置。
其中,挂载数据读取请求可以是由系统内核发出的对应于挂载点的文件数据读取请求。
其中,目标挂载数据可以是挂载点对应的文件数据。
具体实现中,计算机设备通过应用程序将块设备分区成功挂载至系统目录之后,继续通过应用程序检测是否有系统目录下的挂载点的数据的数据读取请求,当计算机设备通过应用程序接收到系统目录下的某个挂载点的挂载数据读取请求时,应用程序执行相应的函数以准备恢复对应的挂载点下的挂载数据;计算机设备通过系统内核确定该挂载点的对应挂载数据即目标挂载数据在块设备中的位置,发送对块设备中该位置的挂载数据读取请求至应用程序中;计算机设备再通过应用程序根据该位置的挂载数据读取请求,返回块设备中的对应位置的目标挂载数据至设备驱动中;计算机设备通过系统内核读取设备驱动中的文件数据。
例如,在备份集文件的挂载中,当完成块设备分区的挂载后,应用程序继续检测系统目录下是否有挂载点的数据读取请求,若应用程序检测到挂载点的数据读取请求,则调用读取函数,准备读取挂载点对应的挂载数据;此时,系统内核确定挂载点对应的数据在块设备中的位置,并发送读取块设备该位置数据的命令至应用程序,应用程序根据该命令返回存储在块设备中该位置的数据至设备驱动中;最后,系统内核读取设备驱动中的数据,成功恢复挂载点对应的备份集文件。
本实施例的技术方案,在有用户访问块设备分区挂载点、即应用程序接收到挂载数据获取请求时,系统内核产生挂载数据读取请求,并将该挂载点数据请求转发至应用程序,以保持系统目录下该挂载点对应的块设备分区的持续挂载,在此过程中,应用程序无需对挂载点进行管理,提高了挂载效率。
在另一个实施例中,方法还包括:设备驱动在预设的定时时长内未接收到挂载数据读取请求的情况下,通过设备驱动删除系统内核中的块设备,并发送块设备卸载请求至应用程序;通过应用程序根据块设备卸载请求,卸载系统目录下块设备分区的挂载点。
其中,预设的定时时长可以是在设备驱动中检查是否存在挂载数据读取请求的等待时长。
其中,块设备卸载请求可以是挂载点目录未接收到挂载数据读取请求时向系统内核发送的将系统内核中对应的块设备卸载的请求。
具体实现中,在块设备与系统目录建立连接后,计算机设备通过应用程序检测是否存在挂载点目录下的挂载点数据读取请求,若在规定的时长内无数据读取,则计算机设备通过设备驱动删除系统内核中的块设备,并且通过设备驱动发送终止请求、即块设备卸载请求至应用程序;计算机设备再根据接收到的终止请求、即块设备卸载请求,将系统目录下建立的块设备分区的挂载点进行卸载。
例如,在备份集文件的挂载过程中,当完成块设备分区的挂载、即块设备分区已与系统目录建立连接后,计算机设备通过应用程序继续检测系统目录下是否有挂载点的数据读取请求,当应用程序接收到挂载点的数据读取请求时,会通过系统内核发送bio读取请求至设备驱动中,而在设备驱动有预先安装的定时器装置,设备驱动可以通过该定时器装置判断是否有访问备份集文件数据的请求,若在定时器预先设置好的时长内内核驱动未接收到访问请求,则由内核驱动发送终止请求至应用程序,以使应用程序卸载块设备挂载点。
本实施例的技术方案,在完成块设备分区与系统目录之间的连接后,继续通过应用程序检测是否有新的数据读取请求,应用程序若接收到数据读取请求,则通过系统内核发送数据读取请求至设备驱动,若在设备驱动中的定时器的定时时长内接收到数据读取请求,则重新刷新定时器的定时时长;若未接收到数据读取请求,则结束定时,并自动卸载块设备,避免了传统挂载方式繁杂的挂载点管理步骤,提高了挂载效率。
在另一个实施例中,如图6所示,提供了一种备份集文件恢复方法,以该方法应用于计算机设备为例进行说明,包括以下步骤:
步骤S602,通过应用程序响应于备份集文件满足恢复条件,发送块设备创建请求至设备驱动;块设备创建请求用于指示系统内核创建块设备。
步骤S604,通过系统内核生成数据读取请求,并将数据读取请求发送至设备驱动;数据读取请求用于请求将备份集文件对应的虚拟磁盘数据缓存至块设备中;
步骤S606,通过设备驱动接收数据读取请求,并将数据读取请求进行封装,并发送封装后的数据读取请求至应用程序。
步骤S608,通过应用程序响应于数据读取请求,利用备份集文件的格式信息遍历备份集文件,得到虚拟磁盘数据,并将虚拟磁盘数据转发至系统内核中。
步骤S610,通过系统内核根据虚拟磁盘数据,确定备份集文件的分区表信息,并根据分区表信息,在块设备中创建块设备分区。
步骤S612,通过应用程序将已创建的块设备分区挂载至系统目录,以从系统目录中恢复备份集文件。
需要说明的是,上述步骤的具体限定可以参见上文对一种备份集文件恢复方法的具体限定,在此不再赘述。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的备份集文件恢复方法的备份集文件恢复装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个备份集文件恢复装置实施例中的具体限定可以参见上文中对于备份集文件恢复方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种备份集文件恢复装置,包括:
响应模块702,用于通过应用程序响应于备份集文件满足恢复条件,发送块设备创建请求至设备驱动;块设备创建请求用于指示系统内核创建块设备;
发送模块704,用于通过设备驱动将系统内核生成的数据读取请求发送至应用程序;
转发模块706,用于通过应用程序响应于数据读取请求,利用备份集文件的格式信息遍历备份集文件,得到虚拟磁盘数据,并将虚拟磁盘数据转发至系统内核中;
创建模块708,用于通过系统内核根据设备驱动中已缓存的虚拟磁盘数据,确定备份集文件的分区表信息,并根据分区表信息,在块设备中创建块设备分区;
挂载模块710,用于通过应用程序将已创建的块设备分区挂载至系统目录,以从系统目录中恢复备份集文件。
在其中一个实施例中,通过应用程序响应于备份集文件满足恢复条件,发送块设备创建请求至设备驱动,响应模块702,具体用于通过应用程序响应于对备份集文件的文件恢复请求,解析备份集文件,得到备份集文件的格式信息;通过应用程序根据备份集文件的格式信息,发送块设备创建请求至设备驱动。
在其中一个实施例中,通过设备驱动将系统内核生成的数据读取请求发送至至应用程序,发送模块704,具体用于通过系统内核生成数据读取请求,并将数据读取请求发送至设备驱动;数据读取请求用于请求将备份集文件对应的虚拟磁盘数据缓存至块设备中;通过设备驱动接收数据读取请求,并将数据读取请求进行封装,并发送封装后的数据读取请求至应用程序。
在其中一个实施例中,通过应用程序将已创建的块设备分区挂载至系统目录,挂载模块710,具体用于通过应用程序检测块设备分区的创建状态;在创建状态为块设备分区创建完成的情况下,通过应用程序将已创建的块设备与系统目录中的挂载点目录建立连接,以将已创建的块设备分区挂载至系统目录。
在其中一个实施例中,装置还包括:调用模块,用于通过应用程序执行目标系统调用;目标系统调用用于读取系统目录下的挂载点中的挂载数据;通过系统内核确定目标系统调用所指示的在块设备中的数据读取位置,并根据数据读取位置,发送挂载数据读取请求至设备驱动;通过设备驱动转发挂载数据读取请求至应用程序;通过应用程序根据挂载数据读取请求,返回存储于块设备中的目标挂载数据至设备驱动;目标挂载数据为在块设备中与数据读取位置所对应的数据;通过系统内核读取设备驱动中的目标挂载数据。
在其中一个实施例中,装置还包括:删除模块,用于设备驱动在预设的定时时长内未接收到挂载数据读取请求的情况下,通过设备驱动删除系统内核中的块设备,并发送块设备卸载请求至应用程序;卸载模块,通过应用程序根据块设备卸载请求,卸载系统目录下块设备分区的挂载点。
上述备份集文件恢复装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储备份集文件恢复数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种备份集文件恢复方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种备份集文件恢复方法的步骤。此处一种备份集文件恢复方法的步骤可以是上述各个实施例的一种备份集文件恢复方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种备份集文件恢复方法的步骤。此处一种备份集文件恢复方法的步骤可以是上述各个实施例的一种备份集文件恢复方法中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种备份集文件恢复方法的步骤。此处一种备份集文件恢复方法的步骤可以是上述各个实施例的一种备份集文件恢复方法中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (8)
1.一种备份集文件恢复方法,其特征在于,应用于计算机设备,所述计算机设备包括系统内核、设备驱动和应用程序,所述方法包括:
通过所述应用程序响应于备份集文件满足恢复条件,发送块设备创建请求至所述设备驱动;所述块设备创建请求用于指示所述系统内核创建块设备;具体包括:通过所述应用程序响应于对所述备份集文件的文件恢复请求,解析所述备份集文件,得到所述备份集文件的格式信息;通过所述应用程序根据所述备份集文件的格式信息,发送所述块设备创建请求至所述设备驱动;
通过所述设备驱动将所述系统内核生成的数据读取请求发送至所述应用程序;
通过所述应用程序响应于所述数据读取请求,利用所述备份集文件的格式信息遍历所述备份集文件,得到虚拟磁盘数据,并将所述虚拟磁盘数据转发至所述系统内核中;
通过所述系统内核根据所述虚拟磁盘数据,确定所述备份集文件的分区表信息,并根据所述分区表信息,在所述块设备中创建块设备分区;
通过所述应用程序将已创建的所述块设备分区挂载至系统目录,以从所述系统目录中恢复所述备份集文件。
2.根据权利要求1所述的方法,其特征在于,所述通过所述设备驱动将所述系统内核生成的数据读取请求发送至所述应用程序,包括:通过所述系统内核生成所述数据读取请求,并将所述数据读取请求发送至所述设备驱动;所述数据读取请求用于请求将所述备份集文件对应的虚拟磁盘数据缓存至所述块设备中;
通过所述设备驱动接收所述数据读取请求,并将所述数据读取请求进行封装,并发送封装后的所述数据读取请求至所述应用程序。
3.根据权利要求1所述的方法,其特征在于,所述通过所述应用程序将已创建的所述块设备分区挂载至系统目录,包括:
通过所述应用程序检测所述块设备分区的创建状态;
在所述创建状态为所述块设备分区创建完成的情况下,通过所述应用程序将已创建的所述块设备与所述系统目录中的挂载点目录建立连接,以将已创建的所述块设备分区挂载至所述系统目录。
4.根据权利要求1所述的方法,其特征在于,在所述通过所述应用程序将已创建的所述块设备分区挂载至系统目录的步骤之后,还包括:
通过所述应用程序执行目标系统调用;所述目标系统调用用于读取所述系统目录下的挂载点中的挂载数据;
通过所述系统内核确定所述目标系统调用所指示的在所述块设备中的数据读取位置,并根据所述数据读取位置,发送挂载数据读取请求至所述设备驱动;
通过所述设备驱动转发所述挂载数据读取请求至所述应用程序;
通过所述应用程序根据所述挂载数据读取请求,返回存储于所述块设备中的目标挂载数据至所述设备驱动;所述目标挂载数据为在所述块设备中与所述数据读取位置所对应的数据;
通过所述系统内核读取所述设备驱动中的所述目标挂载数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述设备驱动在预设的定时时长内未接收到所述挂载数据读取请求的情况下,通过所述设备驱动删除所述系统内核中的所述块设备,并发送块设备卸载请求至所述应用程序;
通过所述应用程序根据所述块设备卸载请求,卸载所述系统目录下所述块设备分区的挂载点。
6.一种备份集文件恢复装置,其特征在于,应用于计算机设备,所述计算机设备包括系统内核、设备驱动和应用程序,所述装置包括:
响应模块,用于通过所述应用程序响应于备份集文件满足恢复条件,发送块设备创建请求至所述设备驱动;所述块设备创建请求用于指示所述系统内核创建块设备;具体包括:通过所述应用程序响应于对所述备份集文件的文件恢复请求,解析所述备份集文件,得到所述备份集文件的格式信息;通过所述应用程序根据所述备份集文件的格式信息,发送所述块设备创建请求至所述设备驱动;
发送模块,用于通过所述设备驱动将所述系统内核生成的数据读取请求发送至所述应用程序;
转发模块,用于通过所述应用程序响应于所述数据读取请求,利用所述备份集文件的格式信息遍历所述备份集文件,得到虚拟磁盘数据,并将所述虚拟磁盘数据转发至所述系统内核中;
创建模块,用于通过所述系统内核根据所述虚拟磁盘数据,确定所述备份集文件的分区表信息,并根据所述分区表信息,在所述块设备中创建块设备分区;
挂载模块,用于通过所述应用程序将已创建的所述块设备分区挂载至系统目录,以从所述系统目录中恢复所述备份集文件。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211088685.0A CN115686932B (zh) | 2022-09-07 | 2022-09-07 | 备份集文件恢复方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211088685.0A CN115686932B (zh) | 2022-09-07 | 2022-09-07 | 备份集文件恢复方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115686932A CN115686932A (zh) | 2023-02-03 |
CN115686932B true CN115686932B (zh) | 2023-06-23 |
Family
ID=85060657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211088685.0A Active CN115686932B (zh) | 2022-09-07 | 2022-09-07 | 备份集文件恢复方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115686932B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215839B (zh) * | 2023-10-30 | 2024-03-12 | 广州鼎甲计算机科技有限公司 | 基于Web的系统还原方法、装置、设备、介质和程序产品 |
CN117724905B (zh) * | 2024-02-05 | 2024-04-19 | 成都云祺科技有限公司 | Linux下文件系统的实时复制方法、系统及恢复方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824572A (zh) * | 2015-01-05 | 2016-08-03 | 中兴通讯股份有限公司 | 一种磁盘存储空间管理方法、装置及存储设备 |
CN112965856A (zh) * | 2021-02-24 | 2021-06-15 | 上海英方软件股份有限公司 | 一种基于备份数据的快速细粒度恢复方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10114705B1 (en) * | 2015-04-14 | 2018-10-30 | EMC IP Holding Company LLC | Presenting virtual machine backup files for block and file level restore |
CN109445986A (zh) * | 2018-09-30 | 2019-03-08 | 南京壹进制信息技术股份有限公司 | 一种备份数据集挂载方法和备份数据集快速恢复、挂载系统 |
CN110941515B (zh) * | 2019-12-04 | 2022-05-24 | 深圳市科力锐科技有限公司 | 主机备份重建方法、装置、服务器及存储介质 |
CN111158957B (zh) * | 2019-12-31 | 2021-02-09 | 广州鼎甲计算机科技有限公司 | 一种虚拟机文件恢复方法、系统、装置及存储介质 |
-
2022
- 2022-09-07 CN CN202211088685.0A patent/CN115686932B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824572A (zh) * | 2015-01-05 | 2016-08-03 | 中兴通讯股份有限公司 | 一种磁盘存储空间管理方法、装置及存储设备 |
CN112965856A (zh) * | 2021-02-24 | 2021-06-15 | 上海英方软件股份有限公司 | 一种基于备份数据的快速细粒度恢复方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115686932A (zh) | 2023-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115686932B (zh) | 备份集文件恢复方法、装置和计算机设备 | |
US11656803B2 (en) | Tiering data strategy for a distributed storage system | |
US7788244B2 (en) | Method and system for copying a snapshot tree | |
US20060047926A1 (en) | Managing multiple snapshot copies of data | |
CN102158540A (zh) | 分布式数据库实现系统及方法 | |
CN111176549B (zh) | 基于云存储的数据存储方法、装置和存储介质 | |
US6792559B1 (en) | Performing operations in an environment recreated from system dump information | |
CN114564339A (zh) | 一种磁盘镜像文件跨平台迁移方法及系统 | |
US20080201525A1 (en) | RAID capacity expansion handling method and system with concurrent data access capability | |
US9933953B1 (en) | Managing copy sessions in a data storage system to control resource consumption | |
US8886900B2 (en) | Legacy data management | |
CN115576743B (zh) | 操作系统恢复方法、装置、计算机设备和存储介质 | |
CN115134238B (zh) | 业务系统发布方法、装置、计算机设备和存储介质 | |
CN107003880A (zh) | 内核更新方法和装置、计算机设备 | |
CN116048878A (zh) | 业务服务恢复方法、装置、计算机设备 | |
CN110781137A (zh) | 分布式系统的目录读取方法、装置、服务器和存储介质 | |
US11442637B1 (en) | Managing drive space among different data services environments within a storage system | |
US20220188291A1 (en) | Vblock metadata management | |
CN114416690A (zh) | 文件存储到对象存储的数据迁移装置、方法和存储介质 | |
CN112965783A (zh) | 一种使用存储快照备份虚拟机的系统及方法 | |
WO2024066904A1 (zh) | 一种容器创建方法、系统及节点 | |
CN114490544B (zh) | 一种新加入主机下载容器镜像的方法及装置 | |
US20220188189A1 (en) | Erasure coding of replicated data blocks | |
US20230134506A1 (en) | System and method for managing vm images for high-performance virtual desktop services | |
EP3591531B1 (en) | Instant restore and instant access of hyper-v vms and applications running inside vms using data domain boostfs |
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 |