CN102929884A - 一种收缩虚拟磁盘镜像文件的方法及装置 - Google Patents
一种收缩虚拟磁盘镜像文件的方法及装置 Download PDFInfo
- Publication number
- CN102929884A CN102929884A CN2011102288382A CN201110228838A CN102929884A CN 102929884 A CN102929884 A CN 102929884A CN 2011102288382 A CN2011102288382 A CN 2011102288382A CN 201110228838 A CN201110228838 A CN 201110228838A CN 102929884 A CN102929884 A CN 102929884A
- Authority
- CN
- China
- Prior art keywords
- sector
- data
- file
- bitmap
- data block
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1004—Defragmentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本申请提供了一种收缩虚拟磁盘镜像文件的方法及装置,以解决目前的虚拟磁盘镜像文件即使删除数据也不会使文件减小,从而浪费存储空间的问题。所述方法包括:查找文件中的垃圾数据块,并修改所述垃圾数据块在块分配表中的相应记录,其中所述垃圾数据块为不保存有效数据的数据块;将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置,并修改迁移后的有效数据块在块分配表中的相应记录;在完成数据块迁移后,将所述文件进行截短。本申请使得虚拟磁盘镜像文件删除某些数据后,镜像文件的大小也可以减小,从而节省文件所需的存储空间。
Description
技术领域
本申请涉及计算机文件处理技术,特别是涉及一种收缩虚拟磁盘镜像文件的方法及装置。
背景技术
镜像文件其实和ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,例如一个测试版的操作系统、游戏等。它最重要的特点是可以被特定的软件识别并可直接刻录到光盘上。其实通常意义上的镜像文件可以再扩展一下,在镜像文件中可以包含更多的信息。比如说系统文件、引导文件、分区表信息等,这样镜像文件就可以包含一个分区甚至是一块硬盘的所有信息。
VHD(Virtual Hard Disk)是一种虚拟磁盘的镜像文件格式。VHD格式的文件可以作为一种虚拟磁盘,进行文件系统格式化、存储虚拟机的数据。
VHD包括三种类型:固定(fixed)磁盘镜像、动态(dynamic)磁盘镜像、增量(differencing)磁盘镜像。固定磁盘镜像文件的大小在创建时就确定了下来,在它上面格式化文件系统、写入数据、删除数据都不会改变镜像文件的大小。动态磁盘镜像文件和增量磁盘镜像文件会随着写入数据的增加而增长,但当数据被删除后,镜像文件的大小不会减小。
例如,创建一个2GB的动态磁盘镜像文件,它的最初大小仅为十几KB,随着写入的数据不断增加,它的大小最多可以增长到约2GB,但删除数据并不会使它的大小减少。
基于这种特性,所述动态磁盘镜像文件和增量磁盘镜像文件一旦写入数据,其文件大小就会增长,即使以后删除数据也不会使文件减小,因此这部分删除的数据相当于仍在占用VHD的存储空间,造成了存储空间的浪费。
发明内容
本申请提供了一种收缩虚拟磁盘镜像文件的方法及装置,以解决目前的虚拟磁盘镜像文件即使删除数据也不会使文件减小,从而浪费存储空间的问题。
为了解决上述问题,本申请公开了一种收缩虚拟磁盘镜像文件的方法,其中:
所述文件包含数据块和用于记录每个数据块信息的块分配表;
所述方法包括:
查找文件中的垃圾数据块,并修改所述垃圾数据块在块分配表中的相应记录,其中所述垃圾数据块为不保存有效数据的数据块;
将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置,并修改迁移后的有效数据块在块分配表中的相应记录;
在完成数据块迁移后,将所述文件进行截短。
优选的,每个数据块包含扇区和用于记录每个扇区信息的扇区位图;所述查找文件中的垃圾数据块之前,还包括:查找文件数据块中的垃圾扇区,并修改所述垃圾扇区在扇区位图中的相应记录。
优选的,所述查找文件中的垃圾数据块,包括:查找文件数据块中的扇区位图,将扇区位图中对应所有扇区的记录都表示为垃圾扇区的数据块作为垃圾数据块。
优选的,所述查找文件数据块中的垃圾扇区,包括:查找文件数据块中的扇区位图,如果扇区位图中对应某个扇区的记录表示该扇区中存储着数据,则继续进行以下判断:如果所述文件是动态磁盘镜像文件,则判断该扇区中存储的数据是否全为0,如果是,则将该扇区作为垃圾扇区;如果所述文件是增量磁盘镜像文件,则判断该扇区中存储的数据是否与父镜像文件中相同扇区位置的数据一致,如果一致,则将该扇区作为垃圾扇区。
优选的,所述查找文件数据块中的垃圾扇区,包括:如果所述文件是动态磁盘镜像文件,则获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图;对比所述原始扇区位图和反演扇区位图的每一位:如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
优选的,所述查找文件数据块中的垃圾扇区,包括:如果所述文件是增量磁盘镜像文件,则获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图以及祖先镜像文件中相同数据块的扇区位图;对比所述原始扇区位图、反演扇区位图和祖先镜像扇区位图的每一位:如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在祖先镜像扇区位图中的相应记录表示该扇区中没有存储数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
优选的,在完成数据块迁移后,将所述文件进行截短,包括:在完成数据块迁移后,文件末尾形成一块等于所有垃圾数据块大小的无用区域,将所述无用区域截断,得到截短之后的文件。
本申请还提供了一种收缩虚拟磁盘镜像文件的装置,其中:
所述文件包含数据块和用于记录每个数据块信息的块分配表;
所述装置包括:
垃圾数据块查找模块,用于查找文件中的垃圾数据块,并修改所述垃圾数据块在块分配表中的相应记录,其中所述垃圾数据块为不保存有效数据的数据块;
数据迁移模块,用于将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置,并修改迁移后的有效数据块在块分配表中的相应记录;
文件截短模块,用于在完成数据块迁移后,将所述文件进行截短。
优选的,每个数据块包含扇区和用于记录每个扇区信息的扇区位图;所述装置还包括:垃圾扇区查找模块,用于查找文件数据块中的垃圾扇区,并修改所述垃圾扇区在扇区位图中的相应记录。
优选的,所述垃圾数据块查找模块通过查找文件数据块中的扇区位图,将扇区位图中对应所有扇区的记录都表示为垃圾扇区的数据块作为垃圾数据块。
优选的,所述垃圾扇区查找模块包括:
扇区位图查找子模块,用于查找文件数据块中的扇区位图,如果扇区位图中对应某个扇区的记录表示该扇区中存储着数据,则触发判断子模块;
判断子模块,用于进行以下判断:
如果所述文件是动态磁盘镜像文件,则判断该扇区中存储的数据是否全为0,如果是,则将该扇区作为垃圾扇区;
如果所述文件是增量磁盘镜像文件,则判断该扇区中存储的数据是否与父镜像文件中相同扇区位置的数据一致,如果一致,则将该扇区作为垃圾扇区。
优选的,如果所述文件是动态磁盘镜像文件,则所述垃圾扇区查找模块包括:
第一获取子模块,用于获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图;
第一对比子模块,用于对比所述原始扇区位图和反演扇区位图的每一位:如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
优选的,如果所述文件是增量磁盘镜像文件,则所述垃圾扇区查找模块包括:
第二获取子模块,用于获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图以及祖先镜像文件中相同数据块的扇区位图;
第二对比子模块,对比所述原始扇区位图、反演扇区位图和祖先镜像扇区位图的每一位:如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在祖先镜像扇区位图中的相应记录表示该扇区中没有存储数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
与现有技术相比,本申请包括以下优点:
首先,本申请通过查找虚拟磁盘镜像文件中的垃圾数据块,并将垃圾数据块后面的有效数据块迁移至垃圾数据块的位置,使文件末尾形成一块无用的区域,最后再将这部分无用的区域截断,就可以清除文件中的垃圾数据块,进而收缩文件的大小。本申请使得VHD格式的动态磁盘镜像文件和增量磁盘镜像文件删除某些数据后,镜像文件的大小也可以减小,从而节省文件所需的存储空间。
其次,本申请在查找垃圾数据块的过程中,提出一种快速计算垃圾扇区的方法,可以更加快速地识别出数据块中哪些扇区是垃圾扇区,进而将所有扇区都是垃圾扇区的数据块作为垃圾数据块。
当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。
附图说明
图1是本申请实施例中VHD镜像文件的格式的示意图;
图2是本申请实施例中BAT的示意图;
图3是本申请实施例所述一种收缩虚拟磁盘镜像文件的方法流程图;
图4是本申请另一实施例所述一种收缩虚拟磁盘镜像文件的方法流程图;
图5是本申请图2所示实施例中经过垃圾数据块查找后的BAT示意图;
图6是本申请图5所示实施例中经过数据迁移后的BAT示意图;
图7是本申请图6所示实施例中经过文件截短后的BAT示意图;
图8是本申请实施例所述一种收缩虚拟磁盘镜像文件的装置结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请提出一种清除虚拟磁盘镜像文件中的垃圾数据、进而收缩文件的方法,使得镜像文件中删除某些数据后,应用该方法,镜像文件的大小也可以减小,从而节省文件所需的存储空间。
其中,所述垃圾数据是指在虚拟机运行过程中产生的,后来又删除的不再需要的,但仍存在于虚拟磁盘镜像文件中的数据。
下面以VHD格式的镜像文件为例对本申请所述方法的实现流程进行详细说明。
首先介绍VHD镜像文件的格式。
参照图1,是本申请实施例中VHD镜像文件的格式的示意图。一个VHD镜像文件通常包括以下几部分:footer(底部信息)、header(头信息)、BAT(Block Allocation Table,块分配表)和data block(数据块)。每部分的详细说明如下:
1)footer
footer中记录着header的起始扇区、文件大小、镜像类型(动态镜像或增量镜像)等等信息。footer位于文件的最后,每当有新的数据写入镜像文件时,都要随着向后移动,写到文件的最后。而且,由于footer是VHD文件最重要的信息,所以在VHD的最开始,保留了footer的一个备份拷贝。
2)header
header中记录着BAT的起始扇区、BAT中的项数(即最多可能有多少个data block)、Data Block的大小等信息。此外,如果是增量镜像文件,还记录着它的父盘(即父镜像文件)的位置信息。
3)BAT
BAT中的每一项记录了对应的data block的起始扇区,如果某个表项并没有对应的data block,则记录为0xFFFFFFFF(表示尚未分配的data block)。
4)data block
每个data block由一个扇区位图(sector bitmap)和其后的数据区(扇区)组成。
对于动态VHD,扇区位图中的某一位(bit)为0,表示对应的扇区(sector)中没有保存数据;如果某一位(bit)为1,表示对应的扇区(sector)中保存着数据,但是如果该扇区的数据被删除了,该位不会复位,仍然是1。换而言之,如果某个扇区中的数据从该data block被分配给VHD文件后,没有被修改过,则对应的位图中的位为0;否则只要被修改过,就为1。
对于增量VHD,某一位为1,表示该增量盘自身的该扇区中保存着有效数据;如果为0,表示该增量盘自身的该扇区中没有保存有效数据,需要到它的父盘中对应的扇区中读取数据。如果父盘也是一个增量盘,则需要进一步检查是否需要到父盘的父盘中读取数据,直至回溯到一个非增量的(固定大小的或动态的)祖先盘。
同一个镜像文件中的所有data block大小相同,并且记录在header中。
基于图1所示的镜像文件格式,当创建一个动态镜像文件或增量镜像文件时,新创建的镜像文件仅仅包含footer、header、BAT等部分,并没有分配data block。当要写入数据时,才会为该数据分配若干个data block,用于保存数据,并且更新BAT中对应项记录的data block起始扇区。
当要读取保存在VHD镜像文件中的数据时,需要将要读取的逻辑扇区号(相对于保存数据的逻辑扇区号,而不是相对于VHD镜像文件的物理扇区号)换算成相对VHD镜像文件的物理扇区号。换算方法如下:
BlockNumber=LogicalSectorNumber/SectorsPerBlock
其中,符号“/”表示除取下整,如“5/3=1”;
SectorInBlock=LogicalSectorNumber%SectorsPerBlock
其中,符号“%”表示除取余数,如“5%3=2”;
PhysicalSectorLocation=BAT[BlockNumber]+BlockBitmapSectorCount+SectorInBlock
其中:
LogicalSectorNumber: 逻辑扇区号;
BlockNumber: 所在的data block号;
SectorsPerBlock: 每个data block所包含的扇区数;
SectorInBlock: 在所在的data block中的扇区号;
PhysicalSectorLocation: 相对VHD镜像文件的物理扇区号;
BlockBitmapSectorCount:扇区位图的扇区数。
需要说明的是,在虚拟机用户看来,VHD镜像文件就像一个磁盘分区一样,可以部署某个文件系统使用。当要写入数据时,根据不同的文件系统的数据写策略,可能会写到文件系统的不同物理区域,大部分情况下,不会从文件系统的起始位置依次向后(指从扇区号相对于起始位置较小的部分向较大的部分)写。所以对于VHD文件来说,各data block的顺序与它们各自的起始扇区号的大小顺序通常都不同。
如图1中,假设每个data block的大小为2MB,虚拟机用户如果一开始要在第3MB的地方写入几KB数据,则系统会先分配data block 1给VHD文件,而不会把data block 0分配给VHD文件。
再例如图2,是本申请实施例中BAT的示意图。
针对某个最多可以有16个data block的VHD文件,某个时刻BAT中记录了这16个data block的序号DB0~DB15,以及各个data block的起始扇区号,所述起始扇区号即为各data block在VHD文件中的相对位置。其中,起始扇区号为0xFFFFFFFF的data block表示该data block尚未分配。
从图2可以看出,BAT中各data block的起始扇区号的大小并不是按照DB0~DB15的顺序递增。
基于上述内容,下面分析现有技术为什么删除数据也不会使VHD文件减小。
在现有技术中,当要写入的扇区对应的data block尚未分配时(对应的BAT项中记录为0xFFFFFFFF),则新分配一个data block(对应的BAT项中记录为新分配的data block的起始扇区号),并且在所述新分配的data block的扇区位图中将要写入的扇区对应的位修改为1。但是,如果删除了某些数据,即使某个data block中的数据都不再有效,该data block的扇区位图中的对应位也不会复位,仍是1,即表示该data block仍处于被分配的状态,因此现有技术无法回收该data block所占的存储空间来存储其他的数据,从而造成存储空间的浪费。
基于这种原因,要想节省VHD文件所占的空间,则要能够截短文件。在截短文件之前,先将原来在文件偏后位置处的数据,迁移到存放垃圾数据的位置,使得文件最后形成一块无用的区域,最后再将这部分无用的区域截断。
基于这种思路,本申请提出一种收缩虚拟磁盘镜像文件的方法,可以有效地清除文件中的垃圾数据,进而达到收缩文件的目的。
下面通过实施例对本申请的内容进行详细说明。
参照图3,是本申请实施例所述一种收缩虚拟磁盘镜像文件的方法流程图。
仍以VHD镜像文件的收缩为例,步骤如下:
步骤301,查找文件中的垃圾数据块,并修改所述垃圾数据块在块分配表中的相应记录,其中所述垃圾数据块为不保存有效数据的数据块;
文件中的data block基本分为垃圾数据块和有效数据块,有效数据块是指存放了有效数据的data block,所述垃圾数据块是指已经删除了块中全部数据的data block,即该data block中的数据都不再有效。
查找到垃圾data block后,将该垃圾data block在块分配表BAT中记录的起始扇区号值为0xFFFFFFFF,即表示该data block对应的逻辑数据块不再保存数据。
步骤302,将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置,并修改迁移后的有效数据块在块分配表中的相应记录;
所述“后面”是指在文件的物理存储区域,将文件偏后位置的有效数据块迁移至垃圾数据块的位置,同时将块分配表BAT中对应该有效数据块的起始扇区号修改为原来所述垃圾数据块的起始扇区号。
所述“迁移”具体是指复制的过程,即将位于垃圾数据块后面的有效数据块中的数据复制到垃圾数据块的位置。
步骤303,在完成数据块迁移后,将所述文件进行截短。
上述迁移的目的是为了将有效数据块尽量向前移到文件的前部,从而使文件的最后形成一块无用的区域,最后将这部分无用区域进行截断,就可以使文件的长度减小。
为了使本领域技术人员更加了解图3所示实施例的内容,下面通过图4所示的另一优选实施例进行更加详细地说明。
参照图4,是本申请另一实施例所述一种收缩虚拟磁盘镜像文件的方法流程图。仍以VHD文件为例:
步骤401,查找文件数据块中的垃圾扇区;
具体的查找方法如下:
对于每一个data block中的每一个扇区,查找data block中的扇区位图,如果扇区位图中对应某个扇区的记录表示该扇区中存储着数据,例如扇区位图中的某个位为1,则表示对应的扇区中可能存储着有效数据,也可能已经删除了数据,所以需要继续进行以下判断:
1)如果所述文件是动态磁盘镜像文件,则判断该扇区中存储的数据是否全为0,如果是,则将该扇区作为垃圾扇区;
2)如果所述文件增量磁盘镜像文件,则判断该扇区中存储的数据是否与父镜像文件中相同扇区位置的数据一致,如果一致,则将该扇区作为垃圾扇区。
步骤402,修改所述垃圾扇区在扇区位图中的相应记录;
查找到垃圾扇区后,可以将将垃圾扇区在扇区位图中对应的位清0,即表示对应的扇区中没有保存数据。
步骤403,查找文件中的垃圾数据块;
具体的查找方法如下:
查找文件数据块中的扇区位图,将扇区位图中对应所有扇区的记录都表示为垃圾扇区的数据块作为垃圾数据块。
对于每一个data block,如果一个data block被使用(BAT中对应项记录的不为0xFFFFFFFF),但经过上面的两步之后,该data block的扇区位图全为0,则该data block可以认为是一个垃圾data block,因为其中不再保存有效的数据。
但是,如果一个data block的扇区位图中,有些扇区的对应位为0,有些扇区的对应位为1,则该data block不是一个垃圾data block,仍是有效数据块。
步骤404,修改所述垃圾数据块在块分配表中的相应记录;
在BAT中,将垃圾data block对应的起始扇区记录置为0xFFFFFFFF。
例如,图2中起始扇区分别为12327、24639、28743的三个data blockDB5、DB13和DB14,经上述三步,发现为垃圾data block,则将它们的BAT项置为0xFFFFFFFF,如图5所示。
步骤405,数据迁移;
将位于垃圾data block(目标位置)后面的有效data block(源位置),拷贝(包括扇区位图和数据)至该垃圾data block处,并更新迁移后的有效datablock在BAT中的起始扇区。
例如,图5中,可以把起始扇区为36951(DB8)的有效data block,迁移至起始扇区为12327的区域中,对应的BAT[8]的起始扇区改为12327;把起始扇区为32847(DB7)的有效data block,迁移至起始扇区为24639的区域中,对应的BAT[7]的起始扇区改为24639,最后形成如图6所示的文件。这样,在文件的末尾处,起始扇区为28743的data block仍为垃圾data block,而起始扇区为32847和36951的data block中的数据被复制到了起始扇区改为24639和12327的data block中,所以起始扇区为32847和36951的datablock对VHD文件来说不必要保留,这三个数据块构成一块无用的区域。
当然,也可以有其他的迁移方法,但总的宗旨是:使文件末尾形成一块无用的区域,以便进行截断。
步骤406,截短文件。
在完成数据块迁移后,即步骤403中找到的垃圾data block处都重新保存着有效数据、或者后面不再有有效的data block可以拷贝过来,则文件末尾形成一块无用区域,将所述无用区域截断,即可得到截短之后的文件。截短的大小最多可以是找到的垃圾data block的大小,如图7所示,即将文件末尾的三个数据块截断。
综上所述,经过以上步骤的处理,完成了垃圾数据的清除,使得VHD格式的动态磁盘镜像文件和增量磁盘镜像文件删除某些数据后,镜像文件的大小也可以减小,从而节省文件所需的存储空间。
此外,在上述查找垃圾扇区的过程中,除了采用上述方法分别从本盘(动态)或父盘(增量)中依次读取扇区位图进行比对、进而判断是否为垃圾扇区外,本申请还提出一种快速计算垃圾扇区的方法,可以更加快速地识别出数据块中哪些扇区是垃圾扇区,进而将所有扇区都是垃圾扇区的数据块作为垃圾数据块。
仍以VHD镜像文件为例,下面详细说明所述的快速识别方法。
1.对于增量磁盘镜像文件而言:
首先,对于每个data block,得到三个sector bitmap(扇区位图),分别是:
1)source bitmap,简写为src_bmp,原始扇区位图:该VHD中该datablock的sector bitmap;
2)parent bitmap,简写为prt_bmp,祖先镜像扇区位图:读取父镜像中该data block的sector bitmap,如果某位为1,则为1;否则,继续回溯父镜像的父镜像,直至祖先镜像,当读到祖先镜像时该位为0,则为0。
3)block bitmap,简写为blk_bmp,反演扇区位图:根据虚拟机用户在该VHD镜像文件上建立的文件系统,反演得到的sector bitmap,表示在该位上的sector是否真正存储着有效信息。
通常的文件系统,都通过某种方式记录着数据的位图信息,标记着哪些扇区保存着有效信息,哪些扇区没有保存有效信息。比如Linux中常用的ext2/3/4,通过每个块组中的bitmap块,记录着哪些块中保存着有效数据;再比如Windows中常用的NTFS,通过$Bitmap文件记录块的位图信息。其中一个块包含若干个扇区。
获得文件系统中的扇区位图信息后,通过前面介绍的逻辑扇区号与物理扇区号间的换算方法,就可以得到在VHD文件中哪些扇区中保存着有效信息,从而得到blk_bmp。
然后,比对这三个bitmap,生成一个最终的目标位图dst_bmp,作为该VHD中该data block在将垃圾扇区在bitmap中对应的位清0后(即上述步骤402之后)的sector bitmap。对于每一位:
if src_bmp=0,then dst_bmp=0;
if src_bmp=1,then
if prt_bmp=0 and blk_bmp=1,then dst_bmp=1;
/*表示相对于父盘来说,新写了数据*/
if prt_bmp=1 and blk_bmp=0,then dst_bmp=1;
/*表示相对于父盘来说,删除了数据*/
if prt_bmp=0 and blk_bmp=0,then dst_bmp=0;
/*表示相对于父盘来说,新写了数据,但最后又删除了这部分新写的数据*/
if prt_bmp=1 and blk_bmp=1表示相对于父盘来说,发生了修改,这时分别从本镜像与父镜像中读取数据并比较,如果一致则置dst_bmp为0,不一致则置dst_bmp为1。
由上可知,上述第三种判断:如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据(src_bmp=1),并且该扇区在祖先镜像扇区位图中的相应记录表示该扇区中没有存储数据(prt_bmp=0),并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据(blk_bmp=0),则将该扇区作为垃圾扇区。
还有一种情况也可以判为垃圾扇区,即上述最后一种判断,如果src_bmp=1,并且prt_bmp=1 and blk_bmp=1,这时分别从本镜像与父镜像中读取数据并比较,如果一致则置dst_bmp为0,此时也可以将该扇区作为垃圾扇区。
2.对于动态磁盘镜像文件而言,则相对简单,如下:
首先,对于每个data block,获取source bitmap和block bitmap,不需要获取parent bitmap。
然后,比对这两个bitmap,生成一个最终的目标位图dst_bmp,作为上述步骤402之后的sector bitmap。对于每一位:
if src_bmp=0,then dst_bmp=0;
if src_bmp=1,then
if blk_bmp=1,then dst_bmp=1;
/*表示新写了数据*/
if blk_bmp=0,then dst_bmp=0;
/*表示新写了数据,但最后又删除了这部分新写的数据*/
由上可知,如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据(src_bmp=1),并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据(blk_bmp=0),则将该扇区作为垃圾扇区。
上述实施例是以VHD格式的镜像文件为例进行说明,但具体应用中也可以应用到其他格式的虚拟磁盘镜像文件中,其实施原理与上述实施例相似,故不再赘述。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必须的。
基于上述方法实施例的说明,本申请还提供了相应的收缩虚拟磁盘镜像文件的装置实施例,来实现上述方法实施例所述的内容。
参照图8,是本申请实施例所述一种收缩虚拟磁盘镜像文件的装置结构图。
所述收缩虚拟磁盘镜像文件的装置可以包括垃圾数据块查找模块81、数据迁移模块82和文件截短模块83,其中,
垃圾数据块查找模块81,用于查找文件中的垃圾数据块,并修改所述垃圾数据块在块分配表中的相应记录,其中所述垃圾数据块为不保存有效数据的数据块;
数据迁移模块82,用于将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置,并修改迁移后的有效数据块在块分配表中的相应记录;其中,所述迁移是指复制操作;
文件截短模块83,用于在完成数据块迁移后,将所述文件进行截短。
优选的,由于每个数据块包含扇区和用于记录每个扇区信息的扇区位图,因此所述装置还可以包括以下模块:
垃圾扇区查找模块84,用于查找文件数据块中的垃圾扇区,并修改所述垃圾扇区在扇区位图中的相应记录。
进一步优选的,基于所述垃圾扇区查找模块84,所述垃圾数据块查找模块81通过查找文件数据块中的扇区位图,可以将扇区位图中对应所有扇区的记录都表示为垃圾扇区的数据块作为垃圾数据块。
对于所述垃圾扇区查找模块84,可通过两种方法进行垃圾扇区的查找。对于第一种查找方法,即从本盘(动态)或父盘(增量)中依次读取扇区位图进行比对、进而判断是否为垃圾扇区,相应的所述垃圾扇区查找模块84具体可以包括以下子模块:
扇区位图查找子模块,用于查找文件数据块中的扇区位图,如果扇区位图中对应某个扇区的记录表示该扇区中存储着数据,则触发判断子模块;
判断子模块,用于进行以下判断:
如果所述文件是动态磁盘镜像文件,则判断该扇区中存储的数据是否全为0,如果是,则将该扇区作为垃圾扇区;
如果所述文件是增量磁盘镜像文件,则判断该扇区中存储的数据是否与父镜像文件中相同扇区位置的数据一致,如果一致,则将该扇区作为垃圾扇区。
对于第二种快速查找的方法,相应的所述垃圾扇区查找模块84具体又可以包括以下子模块:
1)如果所述文件是动态磁盘镜像文件,则所述垃圾扇区查找模块84具体可以包括:
第一获取子模块,用于获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图;
第一对比子模块,用于对比所述原始扇区位图和反演扇区位图的每一位:
如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
2)如果所述文件是增量磁盘镜像文件,则所述垃圾扇区查找模块84具体可以包括:
第二获取子模块,用于获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图以及祖先镜像文件中相同数据块的扇区位图;
第二对比子模块,对比所述原始扇区位图、反演扇区位图和祖先镜像扇区位图的每一位:
如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在祖先镜像扇区位图中的相应记录表示该扇区中没有存储数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
综上所述,上述实施例所述的收缩虚拟磁盘镜像文件的装置可使VHD格式的动态磁盘镜像文件和增量磁盘镜像文件删除某些数据后,镜像文件的大小也可以减小,从而节省文件所需的存储空间。
对于上述收缩虚拟磁盘镜像文件的装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图1至图7所示方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本申请所提供的一种收缩虚拟磁盘镜像文件的方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种收缩虚拟磁盘镜像文件的方法,其特征在于:
所述文件包含数据块和用于记录每个数据块信息的块分配表;
所述方法包括:
查找文件中的垃圾数据块,并修改所述垃圾数据块在块分配表中的相应记录,其中所述垃圾数据块为不保存有效数据的数据块;
将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置,并修改迁移后的有效数据块在块分配表中的相应记录;
在完成数据块迁移后,将所述文件进行截短。
2.根据权利要求1所述的方法,其特征在于:
每个数据块包含扇区和用于记录每个扇区信息的扇区位图;
所述查找文件中的垃圾数据块之前,还包括:
查找文件数据块中的垃圾扇区,并修改所述垃圾扇区在扇区位图中的相应记录。
3.根据权利要求2所述的方法,其特征在于,所述查找文件中的垃圾数据块,包括:
查找文件数据块中的扇区位图,将扇区位图中对应所有扇区的记录都表示为垃圾扇区的数据块作为垃圾数据块。
4.根据权利要求2所述的方法,其特征在于,所述查找文件数据块中的垃圾扇区,包括:
查找文件数据块中的扇区位图,如果扇区位图中对应某个扇区的记录表示该扇区中存储着数据,则继续进行以下判断:
如果所述文件是动态磁盘镜像文件,则判断该扇区中存储的数据是否全为0,如果是,则将该扇区作为垃圾扇区;
如果所述文件是增量磁盘镜像文件,则判断该扇区中存储的数据是否与父镜像文件中相同扇区位置的数据一致,如果一致,则将该扇区作为垃圾扇区。
5.根据权利要求2所述的方法,其特征在于,所述查找文件数据块中的垃圾扇区,包括:
如果所述文件是动态磁盘镜像文件,则获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图;
对比所述原始扇区位图和反演扇区位图的每一位:
如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
6.根据权利要求2所述的方法,其特征在于,所述查找文件数据块中的垃圾扇区,包括:
如果所述文件是增量磁盘镜像文件,则获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图以及祖先镜像文件中相同数据块的扇区位图;
对比所述原始扇区位图、反演扇区位图和祖先镜像扇区位图的每一位:
如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在祖先镜像扇区位图中的相应记录表示该扇区中没有存储数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
7.根据权利要求1所述的方法,其特征在于,在完成数据块迁移后,将所述文件进行截短,包括:
在完成数据块迁移后,文件末尾形成一块等于所有垃圾数据块大小的无用区域,将所述无用区域截断,得到截短之后的文件。
8.一种收缩虚拟磁盘镜像文件的装置,其特征在于:
所述文件包含数据块和用于记录每个数据块信息的块分配表;
所述装置包括:
垃圾数据块查找模块,用于查找文件中的垃圾数据块,并修改所述垃圾数据块在块分配表中的相应记录,其中所述垃圾数据块为不保存有效数据的数据块;
数据迁移模块,用于将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置,并修改迁移后的有效数据块在块分配表中的相应记录;
文件截短模块,用于在完成数据块迁移后,将所述文件进行截短。
9.根据权利要求8所述的装置,其特征在于:
每个数据块包含扇区和用于记录每个扇区信息的扇区位图;
所述装置还包括:
垃圾扇区查找模块,用于查找文件数据块中的垃圾扇区,并修改所述垃圾扇区在扇区位图中的相应记录。
10.根据权利要求9所述的装置,其特征在于:
所述垃圾数据块查找模块通过查找文件数据块中的扇区位图,将扇区位图中对应所有扇区的记录都表示为垃圾扇区的数据块作为垃圾数据块。
11.根据权利要求9所述的装置,其特征在于,所述垃圾扇区查找模块包括:
扇区位图查找子模块,用于查找文件数据块中的扇区位图,如果扇区位图中对应某个扇区的记录表示该扇区中存储着数据,则触发判断子模块;
判断子模块,用于进行以下判断:
如果所述文件是动态磁盘镜像文件,则判断该扇区中存储的数据是否全为0,如果是,则将该扇区作为垃圾扇区;
如果所述文件是增量磁盘镜像文件,则判断该扇区中存储的数据是否与父镜像文件中相同扇区位置的数据一致,如果一致,则将该扇区作为垃圾扇区。
12.根据权利要求9所述的装置,其特征在于,如果所述文件是动态磁盘镜像文件,则所述垃圾扇区查找模块包括:
第一获取子模块,用于获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图;
第一对比子模块,用于对比所述原始扇区位图和反演扇区位图的每一位:
如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
13.根据权利要求9所述的装置,其特征在于,如果所述文件是增量磁盘镜像文件,则所述垃圾扇区查找模块包括:
第二获取子模块,用于获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图以及祖先镜像文件中相同数据块的扇区位图;
第二对比子模块,对比所述原始扇区位图、反演扇区位图和祖先镜像扇区位图的每一位:
如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在祖先镜像扇区位图中的相应记录表示该扇区中没有存储数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110228838.2A CN102929884B (zh) | 2011-08-10 | 2011-08-10 | 一种收缩虚拟磁盘镜像文件的方法及装置 |
TW101102261A TWI540432B (zh) | 2011-08-10 | 2012-01-19 | Method and apparatus for collapsing virtual disk mirrors |
JP2014525169A JP6092868B2 (ja) | 2011-08-10 | 2012-08-10 | 仮想ハードディスクイメージを圧縮する方法 |
US13/571,773 US9501225B2 (en) | 2011-08-10 | 2012-08-10 | Shrinking virtual hard disk image |
PCT/US2012/050296 WO2013023133A1 (en) | 2011-08-10 | 2012-08-10 | Shrinking virtual hard disk image |
EP12748349.3A EP2742417A1 (en) | 2011-08-10 | 2012-08-10 | Shrinking virtual hard disk image |
HK13103842.9A HK1176438A1 (zh) | 2011-08-10 | 2013-03-27 | 種收縮虛擬磁盤鏡像文件的方法及裝置 |
US15/222,945 US10331349B2 (en) | 2011-08-10 | 2016-07-29 | Shrinking virtual hard disk image |
JP2017022345A JP6360215B2 (ja) | 2011-08-10 | 2017-02-09 | 仮想ハードディスクイメージを圧縮する方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110228838.2A CN102929884B (zh) | 2011-08-10 | 2011-08-10 | 一种收缩虚拟磁盘镜像文件的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102929884A true CN102929884A (zh) | 2013-02-13 |
CN102929884B CN102929884B (zh) | 2016-05-04 |
Family
ID=46690746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110228838.2A Active CN102929884B (zh) | 2011-08-10 | 2011-08-10 | 一种收缩虚拟磁盘镜像文件的方法及装置 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9501225B2 (zh) |
EP (1) | EP2742417A1 (zh) |
JP (2) | JP6092868B2 (zh) |
CN (1) | CN102929884B (zh) |
HK (1) | HK1176438A1 (zh) |
TW (1) | TWI540432B (zh) |
WO (1) | WO2013023133A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103389946A (zh) * | 2013-07-16 | 2013-11-13 | 中国科学院计算技术研究所 | 去碎片化方法及系统 |
WO2016070641A1 (zh) * | 2014-11-04 | 2016-05-12 | 中兴通讯股份有限公司 | 数据的保存方法、装置及读取方法、装置 |
CN105593829A (zh) * | 2013-09-27 | 2016-05-18 | 慧与发展有限责任合伙企业 | 从原始映像备份中排除文件系统对象 |
CN106598503A (zh) * | 2016-12-23 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种云平台下优化虚拟磁盘占用存储空间的方法和装置 |
CN106708831A (zh) * | 2015-07-31 | 2017-05-24 | 炬芯(珠海)科技有限公司 | 一种fat镜像文件处理的方法及装置 |
CN107332904A (zh) * | 2017-06-29 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种跨存储系统的数据迁移方法、装置及系统 |
CN107391544A (zh) * | 2017-05-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 列式存储数据的处理方法、装置、设备及计算机储存介质 |
CN107918521A (zh) * | 2016-10-09 | 2018-04-17 | 深圳市深信服电子科技有限公司 | 虚拟磁盘的缩减方法及装置 |
CN108604231A (zh) * | 2016-12-13 | 2018-09-28 | 华为技术有限公司 | 镜像处理方法以及计算设备 |
CN110199265A (zh) * | 2017-06-20 | 2019-09-03 | 株式会社日立制作所 | 存储装置和存储区域管理方法 |
CN112988077A (zh) * | 2021-04-27 | 2021-06-18 | 云宏信息科技股份有限公司 | 一种虚拟磁盘复制方法和计算机可读存储介质 |
CN115509624A (zh) * | 2022-10-25 | 2022-12-23 | 中南大学 | 面向流式加载的镜像融合方法及系统 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102081167B1 (ko) * | 2012-11-13 | 2020-02-26 | 삼성전자주식회사 | 메모리 장치를 이용하는 방법 및 그 장치 |
US10133500B2 (en) | 2013-03-06 | 2018-11-20 | Ab Initio Technology Llc | Managing operations on stored data units |
US9959070B2 (en) | 2013-03-06 | 2018-05-01 | Ab Initio Technology Llc | Managing operations on stored data units |
US9875054B2 (en) * | 2013-03-06 | 2018-01-23 | Ab Initio Technology Llc | Managing operations on stored data units |
US9633027B1 (en) * | 2013-03-14 | 2017-04-25 | EMC IP Holding Company LLC | High speed backup |
CN104156175B (zh) * | 2014-08-06 | 2017-05-24 | 厦门天锐科技股份有限公司 | 一种虚拟磁盘容量平滑拓展方法 |
US10067945B2 (en) * | 2015-02-24 | 2018-09-04 | Quest Software Inc. | File and move data to shrink datafiles |
US10108631B2 (en) * | 2016-01-06 | 2018-10-23 | Acronis International Gmbh | System and method of removing unused regions of a data file |
CN108021630B (zh) * | 2017-11-21 | 2021-03-30 | 深圳市雷鸟网络传媒有限公司 | 垃圾文件清理方法、智能终端及计算机可读存储介质 |
CN109597571B (zh) * | 2018-11-15 | 2022-02-15 | 金蝶软件(中国)有限公司 | 数据存储方法、数据读取方法、装置和计算机设备 |
JP2021131772A (ja) * | 2020-02-20 | 2021-09-09 | 富士通株式会社 | 情報処理装置及びディスクイメージ管理プログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632765A (zh) * | 2004-12-31 | 2005-06-29 | 大唐微电子技术有限公司 | 一种闪存文件系统管理方法 |
CN101034416A (zh) * | 2007-04-25 | 2007-09-12 | 北京中星微电子有限公司 | 一种利用文件分配表进行文件寻道的方法及系统架构 |
CN101042696A (zh) * | 2006-03-23 | 2007-09-26 | 北京握奇数据系统有限公司 | 智能卡存储系统及该系统中文件创建管理的方法 |
US20100280996A1 (en) * | 2009-05-04 | 2010-11-04 | Moka5, Inc. | Transactional virtual disk with differential snapshots |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4280055B2 (ja) | 2001-11-28 | 2009-06-17 | 株式会社Access | メモリ制御方法および装置 |
JP4438457B2 (ja) * | 2003-05-28 | 2010-03-24 | 株式会社日立製作所 | 記憶領域割当方法、システム及び仮想化装置 |
US20050027938A1 (en) | 2003-07-29 | 2005-02-03 | Xiotech Corporation | Method, apparatus and program storage device for dynamically resizing mirrored virtual disks in a RAID storage system |
US7284109B1 (en) | 2003-11-21 | 2007-10-16 | Symantec Corporation | Partition creation |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US7296180B1 (en) * | 2004-06-30 | 2007-11-13 | Sun Microsystems, Inc. | Method for recovery of data |
US7873782B2 (en) * | 2004-11-05 | 2011-01-18 | Data Robotics, Inc. | Filesystem-aware block storage system, apparatus, and method |
US7647468B2 (en) * | 2005-12-09 | 2010-01-12 | Microsoft Corporation | Compaction, de-fragmentation, and merging of virtual storage device of virtual machine |
US7409523B2 (en) * | 2005-12-16 | 2008-08-05 | Microsoft Corporation | Online storage volume shrink |
US7779056B2 (en) * | 2006-09-15 | 2010-08-17 | Sandisk Corporation | Managing a pool of update memory blocks based on each block's activity and data order |
WO2008115012A1 (en) * | 2007-03-20 | 2008-09-25 | Sanggyu Lee | Movable virtual machine image |
US8195866B2 (en) * | 2007-04-26 | 2012-06-05 | Vmware, Inc. | Adjusting available persistent storage during execution in a virtual computer system |
JP4995024B2 (ja) * | 2007-10-02 | 2012-08-08 | キヤノン株式会社 | パターン認識方法、パターン認識装置及びプログラム |
US8464241B2 (en) * | 2008-05-20 | 2013-06-11 | Citrix Systems, Inc. | Methods and systems for patching multiple disk images derived from a common base disk image |
US8812809B2 (en) * | 2008-06-10 | 2014-08-19 | Oracle America, Inc. | Method and apparatus for allocating memory for immutable data on a computing device |
JP4508279B2 (ja) * | 2008-07-17 | 2010-07-21 | ソニー株式会社 | 画像処理装置、画像処理方法、及び、プログラム |
US8495316B2 (en) | 2008-08-25 | 2013-07-23 | Symantec Operating Corporation | Efficient management of archival images of virtual machines having incremental snapshots |
CN101661486B (zh) * | 2008-08-28 | 2012-11-07 | 国际商业机器公司 | 对包含虚拟机的宿主机硬盘进行碎片整理的方法和系统 |
US8171201B1 (en) | 2008-10-07 | 2012-05-01 | Vizioncore, Inc. | Systems and methods for improving virtual machine performance |
US8452930B2 (en) * | 2009-03-27 | 2013-05-28 | Hitachi, Ltd. | Methods and apparatus for backup and restore of thin provisioning volume |
US8176294B2 (en) | 2009-04-06 | 2012-05-08 | Red Hat Israel, Ltd. | Reducing storage expansion of a virtual machine operating system |
EP2441004B8 (en) * | 2009-06-12 | 2020-02-19 | Violin Systems LLC | Memory system having persistent garbage collection |
US8402218B2 (en) * | 2009-12-15 | 2013-03-19 | Microsoft Corporation | Efficient garbage collection and exception handling in a hardware accelerated transactional memory system |
JP5427011B2 (ja) * | 2009-12-17 | 2014-02-26 | 株式会社日立製作所 | 仮想ハードディスクの管理サーバおよび管理方法、管理プログラム |
US9372712B2 (en) * | 2009-12-17 | 2016-06-21 | International Business Machines Corporation | Optimizing virtual storage size in a virtual computer system based on information related to virtual machines, user inputs and/or configuration parameters |
US8627000B2 (en) * | 2010-02-08 | 2014-01-07 | Microsoft Corporation | Virtual disk manipulation operations |
US20120005677A1 (en) * | 2010-06-30 | 2012-01-05 | Yuji Fujiwara | Computing Machine and Method for Controlling Computing Machine |
US20120054743A1 (en) * | 2010-08-31 | 2012-03-01 | Yuji Fujiwara | Information Processing Apparatus and Client Management Method |
US8417912B2 (en) | 2010-09-03 | 2013-04-09 | International Business Machines Corporation | Management of low-paging space conditions in an operating system |
US8874859B2 (en) | 2010-12-22 | 2014-10-28 | Vmware, Inc. | Guest file system introspection and defragmentable virtual disk format for space efficiency |
US8904136B2 (en) * | 2011-03-15 | 2014-12-02 | Symantec Corporation | Optimized shrinking of virtual disks |
US8819383B1 (en) * | 2012-02-17 | 2014-08-26 | Netapp, Inc. | Non-disruptive realignment of virtual data |
US8856078B2 (en) * | 2012-02-21 | 2014-10-07 | Citrix Systems, Inc. | Dynamic time reversal of a tree of images of a virtual hard disk |
US20130219069A1 (en) * | 2012-02-22 | 2013-08-22 | Computer Associates Think, Inc. | System and method for managing virtual hard disks in cloud environments |
US20140033188A1 (en) * | 2012-07-26 | 2014-01-30 | Microsoft Corporation | System updates from cloud blob storage using vhd differentials |
-
2011
- 2011-08-10 CN CN201110228838.2A patent/CN102929884B/zh active Active
-
2012
- 2012-01-19 TW TW101102261A patent/TWI540432B/zh not_active IP Right Cessation
- 2012-08-10 US US13/571,773 patent/US9501225B2/en active Active
- 2012-08-10 EP EP12748349.3A patent/EP2742417A1/en not_active Withdrawn
- 2012-08-10 WO PCT/US2012/050296 patent/WO2013023133A1/en unknown
- 2012-08-10 JP JP2014525169A patent/JP6092868B2/ja active Active
-
2013
- 2013-03-27 HK HK13103842.9A patent/HK1176438A1/zh unknown
-
2016
- 2016-07-29 US US15/222,945 patent/US10331349B2/en active Active
-
2017
- 2017-02-09 JP JP2017022345A patent/JP6360215B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632765A (zh) * | 2004-12-31 | 2005-06-29 | 大唐微电子技术有限公司 | 一种闪存文件系统管理方法 |
CN101042696A (zh) * | 2006-03-23 | 2007-09-26 | 北京握奇数据系统有限公司 | 智能卡存储系统及该系统中文件创建管理的方法 |
CN101034416A (zh) * | 2007-04-25 | 2007-09-12 | 北京中星微电子有限公司 | 一种利用文件分配表进行文件寻道的方法及系统架构 |
US20100280996A1 (en) * | 2009-05-04 | 2010-11-04 | Moka5, Inc. | Transactional virtual disk with differential snapshots |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103389946B (zh) * | 2013-07-16 | 2016-08-10 | 中国科学院计算技术研究所 | 去碎片化方法及系统 |
CN103389946A (zh) * | 2013-07-16 | 2013-11-13 | 中国科学院计算技术研究所 | 去碎片化方法及系统 |
CN105593829A (zh) * | 2013-09-27 | 2016-05-18 | 慧与发展有限责任合伙企业 | 从原始映像备份中排除文件系统对象 |
WO2016070641A1 (zh) * | 2014-11-04 | 2016-05-12 | 中兴通讯股份有限公司 | 数据的保存方法、装置及读取方法、装置 |
CN105630401A (zh) * | 2014-11-04 | 2016-06-01 | 中兴通讯股份有限公司 | 数据的保存方法、装置及读取方法、装置 |
CN106708831A (zh) * | 2015-07-31 | 2017-05-24 | 炬芯(珠海)科技有限公司 | 一种fat镜像文件处理的方法及装置 |
CN107918521A (zh) * | 2016-10-09 | 2018-04-17 | 深圳市深信服电子科技有限公司 | 虚拟磁盘的缩减方法及装置 |
CN108604231A (zh) * | 2016-12-13 | 2018-09-28 | 华为技术有限公司 | 镜像处理方法以及计算设备 |
CN106598503B (zh) * | 2016-12-23 | 2019-09-24 | 郑州云海信息技术有限公司 | 一种云平台下优化虚拟磁盘占用存储空间的方法和装置 |
CN106598503A (zh) * | 2016-12-23 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种云平台下优化虚拟磁盘占用存储空间的方法和装置 |
CN107391544A (zh) * | 2017-05-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 列式存储数据的处理方法、装置、设备及计算机储存介质 |
CN110199265A (zh) * | 2017-06-20 | 2019-09-03 | 株式会社日立制作所 | 存储装置和存储区域管理方法 |
CN110199265B (zh) * | 2017-06-20 | 2022-11-01 | 株式会社日立制作所 | 存储装置和存储区域管理方法 |
CN107332904A (zh) * | 2017-06-29 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种跨存储系统的数据迁移方法、装置及系统 |
CN112988077A (zh) * | 2021-04-27 | 2021-06-18 | 云宏信息科技股份有限公司 | 一种虚拟磁盘复制方法和计算机可读存储介质 |
CN112988077B (zh) * | 2021-04-27 | 2021-07-23 | 云宏信息科技股份有限公司 | 一种虚拟磁盘复制方法和计算机可读存储介质 |
CN115509624A (zh) * | 2022-10-25 | 2022-12-23 | 中南大学 | 面向流式加载的镜像融合方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2013023133A1 (en) | 2013-02-14 |
JP6360215B2 (ja) | 2018-07-18 |
US20160335018A1 (en) | 2016-11-17 |
US20130041927A1 (en) | 2013-02-14 |
HK1176438A1 (zh) | 2013-07-26 |
JP2014527231A (ja) | 2014-10-09 |
US10331349B2 (en) | 2019-06-25 |
CN102929884B (zh) | 2016-05-04 |
WO2013023133A8 (en) | 2013-12-19 |
TW201308083A (zh) | 2013-02-16 |
US9501225B2 (en) | 2016-11-22 |
EP2742417A1 (en) | 2014-06-18 |
TWI540432B (zh) | 2016-07-01 |
JP6092868B2 (ja) | 2017-03-08 |
JP2017091583A (ja) | 2017-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102929884A (zh) | 一种收缩虚拟磁盘镜像文件的方法及装置 | |
JP5466634B2 (ja) | 順次メディアのリクラメーション・システム、方法、及びコンピュータ・プログラム | |
CN102779180B (zh) | 数据存储系统的操作处理方法,数据存储系统 | |
CN1760875B (zh) | 基于文件存取特性在各种类型的存储卷之间透明迁移文件 | |
KR100962055B1 (ko) | 컴퓨터 시스템들간의 객체 공유 | |
CN110399310B (zh) | 一种存储空间的回收方法及装置 | |
CN103729262B (zh) | 操作系统热备份方法、装置及文件系统重构方法 | |
CN104978151A (zh) | 基于应用感知的重复数据删除存储系统中的数据重构方法 | |
JP4304194B2 (ja) | ファイルシステム管理装置及び方法 | |
CN107391774A (zh) | 基于重复数据删除的日志文件系统的垃圾回收方法 | |
CN104765794A (zh) | 一种数据库分区方法及装置 | |
JPH04186447A (ja) | 情報処理装置 | |
JP2004302505A (ja) | データ移行支援システム、プログラム、装置および取外し可能な記憶装置またはデータ移行が完了した記憶媒体の識別方法 | |
CN105493080B (zh) | 基于上下文感知的重复数据删除的方法和装置 | |
CN111007990B (zh) | 一种对快照系统中数据块引用进行快速定位的定位方法 | |
CN100405310C (zh) | 一种快照系统及方法 | |
CN105787037A (zh) | 一种重复数据的删除方法及装置 | |
CN111158858B (zh) | 一种虚拟机的克隆方法和装置,及计算机可读存储介质 | |
CN108984343B (zh) | 一种基于内容分析的虚拟机备份及存储管理方法 | |
CN113821476B (zh) | 数据处理方法及装置 | |
JP2005316708A (ja) | 階層記憶装置、その復旧方法、及び復旧プログラム | |
CN113127376B (zh) | 固态驱动器的控制方法、装置及设备 | |
CN110874182B (zh) | 一种条带索引的处理方法、装置及设备 | |
CN112860486B (zh) | 创建数据副本的方法及装置 | |
CN114442941B (zh) | 一种数据迁移方法、系统、存储介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1176438 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1176438 Country of ref document: HK |