[发明专利]一种收缩虚拟磁盘镜像文件的方法及装置有效
申请号: | 201110228838.2 | 申请日: | 2011-08-10 |
公开(公告)号: | CN102929884A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 宋振华;陈伟才;王倩;万佳 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F12/06 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 收缩 虚拟 磁盘 文件 方法 装置 | ||
技术领域
本申请涉及计算机文件处理技术,特别是涉及一种收缩虚拟磁盘镜像文件的方法及装置。
背景技术
镜像文件其实和ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,例如一个测试版的操作系统、游戏等。它最重要的特点是可以被特定的软件识别并可直接刻录到光盘上。其实通常意义上的镜像文件可以再扩展一下,在镜像文件中可以包含更多的信息。比如说系统文件、引导文件、分区表信息等,这样镜像文件就可以包含一个分区甚至是一块硬盘的所有信息。
VHD(Virtual Hard Disk)是一种虚拟磁盘的镜像文件格式。VHD格式的文件可以作为一种虚拟磁盘,进行文件系统格式化、存储虚拟机的数据。
VHD包括三种类型:固定(fixed)磁盘镜像、动态(dynamic)磁盘镜像、增量(differencing)磁盘镜像。固定磁盘镜像文件的大小在创建时就确定了下来,在它上面格式化文件系统、写入数据、删除数据都不会改变镜像文件的大小。动态磁盘镜像文件和增量磁盘镜像文件会随着写入数据的增加而增长,但当数据被删除后,镜像文件的大小不会减小。
例如,创建一个2GB的动态磁盘镜像文件,它的最初大小仅为十几KB,随着写入的数据不断增加,它的大小最多可以增长到约2GB,但删除数据并不会使它的大小减少。
基于这种特性,所述动态磁盘镜像文件和增量磁盘镜像文件一旦写入数据,其文件大小就会增长,即使以后删除数据也不会使文件减小,因此这部分删除的数据相当于仍在占用VHD的存储空间,造成了存储空间的浪费。
发明内容
本申请提供了一种收缩虚拟磁盘镜像文件的方法及装置,以解决目前的虚拟磁盘镜像文件即使删除数据也不会使文件减小,从而浪费存储空间的问题。
为了解决上述问题,本申请公开了一种收缩虚拟磁盘镜像文件的方法,其中:
所述文件包含数据块和用于记录每个数据块信息的块分配表;
所述方法包括:
查找文件中的垃圾数据块,并修改所述垃圾数据块在块分配表中的相应记录,其中所述垃圾数据块为不保存有效数据的数据块;
将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置,并修改迁移后的有效数据块在块分配表中的相应记录;
在完成数据块迁移后,将所述文件进行截短。
优选的,每个数据块包含扇区和用于记录每个扇区信息的扇区位图;所述查找文件中的垃圾数据块之前,还包括:查找文件数据块中的垃圾扇区,并修改所述垃圾扇区在扇区位图中的相应记录。
优选的,所述查找文件中的垃圾数据块,包括:查找文件数据块中的扇区位图,将扇区位图中对应所有扇区的记录都表示为垃圾扇区的数据块作为垃圾数据块。
优选的,所述查找文件数据块中的垃圾扇区,包括:查找文件数据块中的扇区位图,如果扇区位图中对应某个扇区的记录表示该扇区中存储着数据,则继续进行以下判断:如果所述文件是动态磁盘镜像文件,则判断该扇区中存储的数据是否全为0,如果是,则将该扇区作为垃圾扇区;如果所述文件是增量磁盘镜像文件,则判断该扇区中存储的数据是否与父镜像文件中相同扇区位置的数据一致,如果一致,则将该扇区作为垃圾扇区。
优选的,所述查找文件数据块中的垃圾扇区,包括:如果所述文件是动态磁盘镜像文件,则获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图;对比所述原始扇区位图和反演扇区位图的每一位:如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
优选的,所述查找文件数据块中的垃圾扇区,包括:如果所述文件是增量磁盘镜像文件,则获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图以及祖先镜像文件中相同数据块的扇区位图;对比所述原始扇区位图、反演扇区位图和祖先镜像扇区位图的每一位:如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在祖先镜像扇区位图中的相应记录表示该扇区中没有存储数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
优选的,在完成数据块迁移后,将所述文件进行截短,包括:在完成数据块迁移后,文件末尾形成一块等于所有垃圾数据块大小的无用区域,将所述无用区域截断,得到截短之后的文件。
本申请还提供了一种收缩虚拟磁盘镜像文件的装置,其中:
所述文件包含数据块和用于记录每个数据块信息的块分配表;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110228838.2/2.html,转载请声明来源钻瓜专利网。