一种快速拆分虚拟化磁盘镜像的系统及方法与流程

文档序号:12465992阅读:256来源:国知局
一种快速拆分虚拟化磁盘镜像的系统及方法与流程

本发明涉及计算机技术领域,更具体地涉及一种快速拆分虚拟化磁盘镜像的系统及方法。



背景技术:

当需要从虚拟化镜像中提取文件时,目前通过操作系统,将虚拟机镜像映射为磁盘,并进行文件拷贝,该操作在不需要保留虚拟机镜像时完全没有必要。在从镜像中提取少量文件时,效率尚可忍耐,但需要提取大量文件时,特别是需要提取全部文件时,拆解方法主要依赖虚拟层挂载镜像,并挂载文件系统,在拆解虚拟机磁盘镜像时时间消耗很长而且需要双倍的空间,并需要拷贝全部数据文件内容,且需要不断的随机寻道,效率较低。



技术实现要素:

为了解决上述技术问题,提供了根据本发明的一种快速拆分虚拟化磁盘镜像的系统及方法。

根据本发明的第一方面,提供了一种快速拆分虚拟化磁盘镜像的系统。该系统包括:分区表解析模块,用于解析目标分区、虚拟化磁盘文件的物理地址;磁盘解析模块,用于基于物理地址判断所述虚拟化磁盘文件是否在所述目标分区范围内,若不在,则报错退出,若在,则对所述虚拟化磁盘文件进行解析,获取文件分区表和文件分配表;文件分配表提取模块,用于基于所述文件分配表判断所述文件分区表中的文件是否按照原样保存在虚拟化磁盘上,并记录可以被直接提取的文件的文件分配记录;分区解析模块,用于对所述目标分区进行解析,获取所述目标分区的文件分配表位置;冲突解决模块,用于比对所述文件分配记录和所述目标分区中的文件名,若有文件名相同,则对所述文件分配记录的文件名进行修改;文件分配表写入模块,用于基于所述目标分区的文件分配表,将所述文件分配记录写入所述目标分区,并删除虚拟化磁盘上的原文件。

在一些实施例中,系统包括:信息修正模块,用于修正所述目标分区的信息。

在一些实施例中,所述文件分配记录包括文件名、文件开始点、结束点、分配区块物理地址。

在一些实施例中,所述对所述文件分配记录的文件名进行修改包括给出新的文件名、在文件名后加一些随机字符。

在一些实施例中,所述用于修正所述目标分区的信息包括空余区块记录、大小记录、日志信息。

根据本发明的第二方面,提供一种快速拆分虚拟化磁盘镜像的方法,方法包括:解析目标分区、虚拟化磁盘文件的物理地址;基于物理地址判断所述虚拟化磁盘文件是否在所述目标分区范围内,若不在,则报错退出,若在,则对所述虚拟化磁盘文件进行解析,获取文件分区表和文件分配表;基于所述文件分配表判断所述文件分区表中的文件是否按照原样保存在虚拟化磁盘上,并记录可以被直接提取的文件的文件分配记录;对所述目标分区进行解析,获取所述目标分区的文件分配表位置;比对所述文件分配记录和所述目标分区中的文件名,若有文件名相同,则对所述文件分配记录的文件名进行修改;基于所述目标分区的文件分配表,将所述文件分配记录写入所述目标分区,并删除虚拟化磁盘上的原文件。

在一些实施例中,方法包括:修正所述目标分区的信息。

在一些实施例中,所述文件分配记录包括文件名、文件开始点、结束点、分配区块物理地址。

在一些实施例中,所述对所述文件分配记录的文件名进行修改包括给出新的文件名、在文件名后加一些随机字符。

在一些实施例中,所述修正所述目标分区的信息包括空余区块记录、大小记录、日志信息。

本发明所提供的技术方案,直接解析虚拟化磁盘的内容,并获取虚拟化磁盘中,按照原样保存(未压缩,未加密的)每个文件的物理位置。然后在虚拟化磁盘所在分区的文件分配表中新增项,写入虚拟化磁盘的全部文件的文件名等信息,及其对应的根据物理位置计算出的逻辑位置。然后从虚拟化磁盘所在分区中移除该文件,并修正空闲分区块等数据。本发明只需批量扫描磁盘文件分配记录,并批量添加磁盘文件分配记录,无需移动原始文件内容,由于文件分配记录的聚集性,可以批量获取写入,极大的减少IO次数,提高速度。

附图说明

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

图1为根据本发明实施例的一种快速拆分虚拟化磁盘镜像的系统的框图;

图2为根据本发明实施例的一种快速拆分虚拟化磁盘镜像的方法的流程图。

具体实施方式

下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。虽然附图中显示了示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本发明的范围完整的传达给本领域的技术人员。

本发明提供的方法是当在同一个逻辑分区下,且虚拟机磁盘内存放的文件均按照原始比特存放在物理机磁盘上,即磁盘镜像存放目标文件的部分未经压缩或加密时,直接解析虚拟机磁盘镜像内的磁盘文件分配表和该磁盘文件所在的区块,计算该区块在物理磁盘上的位置,并在物理磁盘上新增磁盘文件分配表项指向该区块。移除虚拟机磁盘镜像文件的磁盘分配表记录,并将原始虚拟机磁盘镜像未能拆解的部分作为空白块处理,修改区块分配记录和日志系统等内容,使其与系统一致。

图1为根据本发明实施例的一种快速拆分虚拟化磁盘镜像的系统的框图。如图1所述,系统可以包括:分区表解析模块110、磁盘解析模块120、文件分配表提取模块130、分区解析模块140、冲突解决模块150、文件分配表写入模块160、信息修正模块170。

分区表解析模块110,用于解析目标分区、虚拟化磁盘文件的物理地址。

磁盘解析模块120,用于基于物理地址判断所述虚拟化磁盘文件是否在所述目标分区范围内,若不在,则报错退出,若在,则对所述虚拟化磁盘文件进行解析,获取文件分区表和文件分配表。

磁盘解析模块120有各种开源实现,本质上是强依赖于镜像格式的,可参考的开源实现包括qemu-img、guestfish等工具。

文件分配表提取模块130,用于基于所述文件分配表判断所述文件分区表中的文件是否按照原样保存在虚拟化磁盘上,并记录可以被直接提取的文件的文件分配记录。

文件分配记录包括文件名、文件开始点、结束点、分配区块物理地址。

分区解析模块140,用于对所述目标分区进行解析,获取所述目标分区的文件分配表位置。

分区表解析模块110和分区解析模块140可使用fdisk、sfdisk等开源工具,其本质为对磁盘分区表的解析和修改。

冲突解决模块150,用于比对所述文件分配记录和所述目标分区中的文件名,若有文件名相同,则对所述文件分配记录的文件名进行修改。

对所述文件分配记录的文件名进行修改包括给出新的文件名、在文件名后加一些随机字符。

文件分配表写入模块160,用于基于所述目标分区的文件分配表,将所述文件分配记录写入所述目标分区,并删除虚拟化磁盘上的原文件。

文件分配表提取模块130和文件分配表写入模块160可参考linux kernel和相关磁盘开源代码中对对应文件系统的目录、文件读取和写入相关信息。

一些实施例中,系统还包括:

信息修正模块170,用于修正所述目标分区的信息。

用于修正所述目标分区的信息包括空余区块记录、大小记录、日志信息。

具体的,首先,使用分区表解析模块110解析出目标分区、虚拟化磁盘文件的物理地址范围,并判断虚拟化磁盘文件是否在目标分区范围内,若不在范围内,则报错退出。若在,使用磁盘提取模块120对虚拟化磁盘文件进行解析,获取虚拟化磁盘文件中的分区表和文件分配表,使用文件分配表提取模块130,依次判断文件分区表中的文件是否按照原样保存在磁盘上,并记录那些可以被直接提取的文件的文件分配记录,文件分配记录的文件开始点、结束点、分配区块物理位置等信息。

其次,使用分区解析模块140对目标分区进行解析,得到目标分区的文件分配表位置,然后使用文件分配表写入模块160,将原样保存,能直接被提取的文件的文件分配记录写入目标分区。若有文件名的冲突,则使用冲突解决模块150进行解决,并将解决后的内容写入目标分区。

最后,删除虚拟化磁盘文件。同时使用信息修正模块170,修正目标分区的空余区块记录、大小记录、日志信息等内容。

图2示出了根据本发明实施例的一种快速拆分虚拟化磁盘镜像的方法的流程图。如图2所示,方法包括如下步骤:

S210,解析目标分区、虚拟化磁盘文件的物理地址。

S220,基于物理地址判断虚拟化磁盘文件是否在目标分区范围内,若不在,则报错退出。

S230,若在,则对虚拟化磁盘文件进行解析,获取文件分区表和文件分配表。

S240,基于文件分配表判断文件分区表中的文件是否按照原样保存在虚拟化磁盘上,并记录可以被直接提取的文件的文件分配记录。

文件分配记录包括文件名、文件开始点、结束点、分配区块物理地址。

S250,对目标分区进行解析,获取目标分区的文件分配表位置。

S260,比对文件分配记录和所述目标分区中的文件名,若有文件名相同,则对所述文件分配记录的文件名进行修改。

对文件分配记录中的文件名进行修改包括给出新的文件名、在文件名后加一些随机字符等方式。

S270,基于目标分区的文件分配表,将文件分配记录写入所述目标分区,并删除虚拟化磁盘上的原文件。

将原样保存,能直接被提取的文件的文件分配记录写入目标分区,删除虚拟化磁盘文件分。

一些实施例中,还包括下面的步骤:

S280,修正目标分区的信息。

修正所述目标分区的信息包括空余区块记录、大小记录、日志信息。

至此已经结合优选实施例对本发明进行了描述。应该理解,本领域技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不局限于上述特定实施例,而应由所附权利要求所限定。

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