CN102929884B - 一种收缩虚拟磁盘镜像文件的方法及装置 - Google Patents

一种收缩虚拟磁盘镜像文件的方法及装置 Download PDF

Info

Publication number
CN102929884B
CN102929884B CN201110228838.2A CN201110228838A CN102929884B CN 102929884 B CN102929884 B CN 102929884B CN 201110228838 A CN201110228838 A CN 201110228838A CN 102929884 B CN102929884 B CN 102929884B
Authority
CN
China
Prior art keywords
sector
data
file
bitmap
piece
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
Application number
CN201110228838.2A
Other languages
English (en)
Other versions
CN102929884A (zh
Inventor
宋振华
陈伟才
王倩
万佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201110228838.2A priority Critical patent/CN102929884B/zh
Priority to TW101102261A priority patent/TWI540432B/zh
Priority to EP12748349.3A priority patent/EP2742417A1/en
Priority to PCT/US2012/050296 priority patent/WO2013023133A1/en
Priority to JP2014525169A priority patent/JP6092868B2/ja
Priority to US13/571,773 priority patent/US9501225B2/en
Publication of CN102929884A publication Critical patent/CN102929884A/zh
Priority to HK13103842.9A priority patent/HK1176438A1/zh
Application granted granted Critical
Publication of CN102929884B publication Critical patent/CN102929884B/zh
Priority to US15/222,945 priority patent/US10331349B2/en
Priority to JP2017022345A priority patent/JP6360215B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1004Defragmentation

Abstract

本申请提供了一种收缩虚拟磁盘镜像文件的方法及装置,以解决目前的虚拟磁盘镜像文件即使删除数据也不会使文件减小,从而浪费存储空间的问题。所述方法包括:查找文件中的垃圾数据块,并修改所述垃圾数据块在块分配表中的相应记录,其中所述垃圾数据块为不保存有效数据的数据块;将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置,并修改迁移后的有效数据块在块分配表中的相应记录;在完成数据块迁移后,将所述文件进行截短。本申请使得虚拟磁盘镜像文件删除某些数据后,镜像文件的大小也可以减小,从而节省文件所需的存储空间。

Description

一种收缩虚拟磁盘镜像文件的方法及装置
技术领域
本申请涉及计算机文件处理技术,特别是涉及一种收缩虚拟磁盘镜像文件的方法及装置。
背景技术
镜像文件其实和ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,例如一个测试版的操作系统、游戏等。它最重要的特点是可以被特定的软件识别并可直接刻录到光盘上。其实通常意义上的镜像文件可以再扩展一下,在镜像文件中可以包含更多的信息。比如说系统文件、引导文件、分区表信息等,这样镜像文件就可以包含一个分区甚至是一块硬盘的所有信息。
VHD(VirtualHardDisk)是一种虚拟磁盘的镜像文件格式。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(BlockAllocationTable,块分配表)和datablock(数据块)。每部分的详细说明如下:
1)footer
footer中记录着header的起始扇区、文件大小、镜像类型(动态镜像或增量镜像)等等信息。footer位于文件的最后,每当有新的数据写入镜像文件时,都要随着向后移动,写到文件的最后。而且,由于footer是VHD文件最重要的信息,所以在VHD的最开始,保留了footer的一个备份拷贝。
2)header
header中记录着BAT的起始扇区、BAT中的项数(即最多可能有多少个datablock)、DataBlock的大小等信息。此外,如果是增量镜像文件,还记录着它的父盘(即父镜像文件)的位置信息。
3)BAT
BAT中的每一项记录了对应的datablock的起始扇区,如果某个表项并没有对应的datablock,则记录为0xFFFFFFFF(表示尚未分配的datablock)。
4)datablock
每个datablock由一个扇区位图(sectorbitmap)和其后的数据区(扇区)组成。
对于动态VHD,扇区位图中的某一位(bit)为0,表示对应的扇区(sector)中没有保存数据;如果某一位(bit)为1,表示对应的扇区(sector)中保存着数据,但是如果该扇区的数据被删除了,该位不会复位,仍然是1。换而言之,如果某个扇区中的数据从该datablock被分配给VHD文件后,没有被修改过,则对应的位图中的位为0;否则只要被修改过,就为1。
对于增量VHD,某一位为1,表示该增量盘自身的该扇区中保存着有效数据;如果为0,表示该增量盘自身的该扇区中没有保存有效数据,需要到它的父盘中对应的扇区中读取数据。如果父盘也是一个增量盘,则需要进一步检查是否需要到父盘的父盘中读取数据,直至回溯到一个非增量的(固定大小的或动态的)祖先盘。
同一个镜像文件中的所有datablock大小相同,并且记录在header中。
基于图1所示的镜像文件格式,当创建一个动态镜像文件或增量镜像文件时,新创建的镜像文件仅仅包含footer、header、BAT等部分,并没有分配datablock。当要写入数据时,才会为该数据分配若干个datablock,用于保存数据,并且更新BAT中对应项记录的datablock起始扇区。
当要读取保存在VHD镜像文件中的数据时,需要将要读取的逻辑扇区号(相对于保存数据的逻辑扇区号,而不是相对于VHD镜像文件的物理扇区号)换算成相对VHD镜像文件的物理扇区号。换算方法如下:
BlockNumber=LogicalSectorNumber/SectorsPerBlock
其中,符号“/”表示除取下整,如“5/3=1”;
SectorInBlock=LogicalSectorNumber%SectorsPerBlock
其中,符号“%”表示除取余数,如“5%3=2”;
PhysicalSectorLocation=BAT[BlockNumber]+BlockBitmapSectorCount+SectorInBlock
其中:
LogicalSectorNumber:逻辑扇区号;
BlockNumber:所在的datablock号;
SectorsPerBlock:每个datablock所包含的扇区数;
SectorInBlock:在所在的datablock中的扇区号;
PhysicalSectorLocation:相对VHD镜像文件的物理扇区号;
BlockBitmapSectorCount:扇区位图的扇区数。
需要说明的是,在虚拟机用户看来,VHD镜像文件就像一个磁盘分区一样,可以部署某个文件系统使用。当要写入数据时,根据不同的文件系统的数据写策略,可能会写到文件系统的不同物理区域,大部分情况下,不会从文件系统的起始位置依次向后(指从扇区号相对于起始位置较小的部分向较大的部分)写。所以对于VHD文件来说,各datablock的顺序与它们各自的起始扇区号的大小顺序通常都不同。
如图1中,假设每个datablock的大小为2MB,虚拟机用户如果一开始要在第3MB的地方写入几KB数据,则系统会先分配datablock1给VHD文件,而不会把datablock0分配给VHD文件。
再例如图2,是本申请实施例中BAT的示意图。
针对某个最多可以有16个datablock的VHD文件,某个时刻BAT中记录了这16个datablock的序号DB0~DB15,以及各个datablock的起始扇区号,所述起始扇区号即为各datablock在VHD文件中的相对位置。其中,起始扇区号为0xFFFFFFFF的datablock表示该datablock尚未分配。
从图2可以看出,BAT中各datablock的起始扇区号的大小并不是按照DB0~DB15的顺序递增。
基于上述内容,下面分析现有技术为什么删除数据也不会使VHD文件减小。
在现有技术中,当要写入的扇区对应的datablock尚未分配时(对应的BAT项中记录为0xFFFFFFFF),则新分配一个datablock(对应的BAT项中记录为新分配的datablock的起始扇区号),并且在所述新分配的datablock的扇区位图中将要写入的扇区对应的位修改为1。但是,如果删除了某些数据,即使某个datablock中的数据都不再有效,该datablock的扇区位图中的对应位也不会复位,仍是1,即表示该datablock仍处于被分配的状态,因此现有技术无法回收该datablock所占的存储空间来存储其他的数据,从而造成存储空间的浪费。
基于这种原因,要想节省VHD文件所占的空间,则要能够截短文件。在截短文件之前,先将原来在文件偏后位置处的数据,迁移到存放垃圾数据的位置,使得文件最后形成一块无用的区域,最后再将这部分无用的区域截断。
基于这种思路,本申请提出一种收缩虚拟磁盘镜像文件的方法,可以有效地清除文件中的垃圾数据,进而达到收缩文件的目的。
下面通过实施例对本申请的内容进行详细说明。
参照图3,是本申请实施例所述一种收缩虚拟磁盘镜像文件的方法流程图。
仍以VHD镜像文件的收缩为例,步骤如下:
步骤301,查找文件中的垃圾数据块,并修改所述垃圾数据块在块分配表中的相应记录,其中所述垃圾数据块为不保存有效数据的数据块;
文件中的datablock基本分为垃圾数据块和有效数据块,有效数据块是指存放了有效数据的datablock,所述垃圾数据块是指已经删除了块中全部数据的datablock,即该datablock中的数据都不再有效。
查找到垃圾datablock后,将该垃圾datablock在块分配表BAT中记录的起始扇区号值为0xFFFFFFFF,即表示该datablock对应的逻辑数据块不再保存数据。
步骤302,将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置,并修改迁移后的有效数据块在块分配表中的相应记录;
所述“后面”是指在文件的物理存储区域,将文件偏后位置的有效数据块迁移至垃圾数据块的位置,同时将块分配表BAT中对应该有效数据块的起始扇区号修改为原来所述垃圾数据块的起始扇区号。
所述“迁移”具体是指复制的过程,即将位于垃圾数据块后面的有效数据块中的数据复制到垃圾数据块的位置。
步骤303,在完成数据块迁移后,将所述文件进行截短。
上述迁移的目的是为了将有效数据块尽量向前移到文件的前部,从而使文件的最后形成一块无用的区域,最后将这部分无用区域进行截断,就可以使文件的长度减小。
为了使本领域技术人员更加了解图3所示实施例的内容,下面通过图4所示的另一优选实施例进行更加详细地说明。
参照图4,是本申请另一实施例所述一种收缩虚拟磁盘镜像文件的方法流程图。仍以VHD文件为例:
步骤401,查找文件数据块中的垃圾扇区;
具体的查找方法如下:
对于每一个datablock中的每一个扇区,查找datablock中的扇区位图,如果扇区位图中对应某个扇区的记录表示该扇区中存储着数据,例如扇区位图中的某个位为1,则表示对应的扇区中可能存储着有效数据,也可能已经删除了数据,所以需要继续进行以下判断:
1)如果所述文件是动态磁盘镜像文件,则判断该扇区中存储的数据是否全为0,如果是,则将该扇区作为垃圾扇区;
2)如果所述文件增量磁盘镜像文件,则判断该扇区中存储的数据是否与父镜像文件中相同扇区位置的数据一致,如果一致,则将该扇区作为垃圾扇区。
步骤402,修改所述垃圾扇区在扇区位图中的相应记录;
查找到垃圾扇区后,可以将将垃圾扇区在扇区位图中对应的位清0,即表示对应的扇区中没有保存数据。
步骤403,查找文件中的垃圾数据块;
具体的查找方法如下:
查找文件数据块中的扇区位图,将扇区位图中对应所有扇区的记录都表示为垃圾扇区的数据块作为垃圾数据块。
对于每一个datablock,如果一个datablock被使用(BAT中对应项记录的不为0xFFFFFFFF),但经过上面的两步之后,该datablock的扇区位图全为0,则该datablock可以认为是一个垃圾datablock,因为其中不再保存有效的数据。
但是,如果一个datablock的扇区位图中,有些扇区的对应位为0,有些扇区的对应位为1,则该datablock不是一个垃圾datablock,仍是有效数据块。
步骤404,修改所述垃圾数据块在块分配表中的相应记录;
在BAT中,将垃圾datablock对应的起始扇区记录置为0xFFFFFFFF。
例如,图2中起始扇区分别为12327、24639、28743的三个datablockDB5、DB13和DB14,经上述三步,发现为垃圾datablock,则将它们的BAT项置为0xFFFFFFFF,如图5所示。
步骤405,数据迁移;
将位于垃圾datablock(目标位置)后面的有效datablock(源位置),拷贝(包括扇区位图和数据)至该垃圾datablock处,并更新迁移后的有效datablock在BAT中的起始扇区。
例如,图5中,可以把起始扇区为36951(DB8)的有效datablock,迁移至起始扇区为12327的区域中,对应的BAT[8]的起始扇区改为12327;把起始扇区为32847(DB7)的有效datablock,迁移至起始扇区为24639的区域中,对应的BAT[7]的起始扇区改为24639,最后形成如图6所示的文件。这样,在文件的末尾处,起始扇区为28743的datablock仍为垃圾datablock,而起始扇区为32847和36951的datablock中的数据被复制到了起始扇区改为24639和12327的datablock中,所以起始扇区为32847和36951的datablock对VHD文件来说不必要保留,这三个数据块构成一块无用的区域。
当然,也可以有其他的迁移方法,但总的宗旨是:使文件末尾形成一块无用的区域,以便进行截断。
步骤406,截短文件。
在完成数据块迁移后,即步骤403中找到的垃圾datablock处都重新保存着有效数据、或者后面不再有有效的datablock可以拷贝过来,则文件末尾形成一块无用区域,将所述无用区域截断,即可得到截短之后的文件。截短的大小最多可以是找到的垃圾datablock的大小,如图7所示,即将文件末尾的三个数据块截断。
综上所述,经过以上步骤的处理,完成了垃圾数据的清除,使得VHD格式的动态磁盘镜像文件和增量磁盘镜像文件删除某些数据后,镜像文件的大小也可以减小,从而节省文件所需的存储空间。
此外,在上述查找垃圾扇区的过程中,除了采用上述方法分别从本盘(动态)或父盘(增量)中依次读取扇区位图进行比对、进而判断是否为垃圾扇区外,本申请还提出一种快速计算垃圾扇区的方法,可以更加快速地识别出数据块中哪些扇区是垃圾扇区,进而将所有扇区都是垃圾扇区的数据块作为垃圾数据块。
仍以VHD镜像文件为例,下面详细说明所述的快速识别方法。
1.对于增量磁盘镜像文件而言:
首先,对于每个datablock,得到三个sectorbitmap(扇区位图),分别是:
1)sourcebitmap,简写为src_bmp,原始扇区位图:该VHD中该datablock的sectorbitmap;
2)parentbitmap,简写为prt_bmp,祖先镜像扇区位图:读取父镜像中该datablock的sectorbitmap,如果某位为1,则为1;否则,继续回溯父镜像的父镜像,直至祖先镜像,当读到祖先镜像时该位为0,则为0。
3)blockbitmap,简写为blk_bmp,反演扇区位图:根据虚拟机用户在该VHD镜像文件上建立的文件系统,反演得到的sectorbitmap,表示在该位上的sector是否真正存储着有效信息。
通常的文件系统,都通过某种方式记录着数据的位图信息,标记着哪些扇区保存着有效信息,哪些扇区没有保存有效信息。比如Linux中常用的ext2/3/4,通过每个块组中的bitmap块,记录着哪些块中保存着有效数据;再比如Windows中常用的NTFS,通过$Bitmap文件记录块的位图信息。其中一个块包含若干个扇区。
获得文件系统中的扇区位图信息后,通过前面介绍的逻辑扇区号与物理扇区号间的换算方法,就可以得到在VHD文件中哪些扇区中保存着有效信息,从而得到blk_bmp。
然后,比对这三个bitmap,生成一个最终的目标位图dst_bmp,作为该VHD中该datablock在将垃圾扇区在bitmap中对应的位清0后(即上述步骤402之后)的sectorbitmap。对于每一位:
ifsrc_bmp=0,thendst_bmp=0;
ifsrc_bmp=1,then
ifprt_bmp=0andblk_bmp=1,thendst_bmp=1;
/*表示相对于父盘来说,新写了数据*/
ifprt_bmp=1andblk_bmp=0,thendst_bmp=1;
/*表示相对于父盘来说,删除了数据*/
ifprt_bmp=0andblk_bmp=0,thendst_bmp=0;
/*表示相对于父盘来说,新写了数据,但最后又删除了这部分新写的数据*/
ifprt_bmp=1andblk_bmp=1表示相对于父盘来说,发生了修改,这时分别从本镜像与父镜像中读取数据并比较,如果一致则置dst_bmp为0,不一致则置dst_bmp为1。
由上可知,上述第三种判断:如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据(src_bmp=1),并且该扇区在祖先镜像扇区位图中的相应记录表示该扇区中没有存储数据(prt_bmp=0),并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据(blk_bmp=0),则将该扇区作为垃圾扇区。
还有一种情况也可以判为垃圾扇区,即上述最后一种判断,如果src_bmp=1,并且prt_bmp=1andblk_bmp=1,这时分别从本镜像与父镜像中读取数据并比较,如果一致则置dst_bmp为0,此时也可以将该扇区作为垃圾扇区。
2.对于动态磁盘镜像文件而言,则相对简单,如下:
首先,对于每个datablock,获取sourcebitmap和blockbitmap,不需要获取parentbitmap。
然后,比对这两个bitmap,生成一个最终的目标位图dst_bmp,作为上述步骤402之后的sectorbitmap。对于每一位:
ifsrc_bmp=0,thendst_bmp=0;
ifsrc_bmp=1,then
ifblk_bmp=1,thendst_bmp=1;
/*表示新写了数据*/
ifblk_bmp=0,thendst_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 (12)

1.一种收缩虚拟磁盘镜像文件的方法,其特征在于:
所述文件包含数据块和用于记录每个数据块信息的块分配表;
所述方法包括:
查找文件中的垃圾数据块,并修改所述垃圾数据块在块分配表中的相应记录,其中所述垃圾数据块为不保存有效数据的数据块,所述垃圾数据块中全部数据已删除;
将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置,并修改迁移后的有效数据块在块分配表中的相应记录,其中将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置包括将位于垃圾数据块后面的有效数据块中的数据复制到垃圾数据块的位置;
在完成数据块迁移后,将所述文件进行截短;
其中,在完成数据块迁移后,将所述文件进行截短,包括:在完成数据块迁移后,文件末尾形成一块等于所有垃圾数据块大小的无用区域,将所述无用区域截断,得到截短之后的文件。
2.根据权利要求1所述的方法,其特征在于:
每个数据块包含扇区和用于记录每个扇区信息的扇区位图;
所述查找文件中的垃圾数据块之前,还包括:
查找文件数据块中的垃圾扇区,并修改所述垃圾扇区在扇区位图中的相应记录。
3.根据权利要求2所述的方法,其特征在于,所述查找文件中的垃圾数据块,包括:
查找文件数据块中的扇区位图,将扇区位图中对应所有扇区的记录都表示为垃圾扇区的数据块作为垃圾数据块。
4.根据权利要求2所述的方法,其特征在于,所述查找文件数据块中的垃圾扇区,包括:
查找文件数据块中的扇区位图,如果扇区位图中对应某个扇区的记录表示该扇区中存储着数据,则继续进行以下判断:
如果所述文件是动态磁盘镜像文件,则判断该扇区中存储的数据是否全为0,如果是,则将该扇区作为垃圾扇区;
如果所述文件是增量磁盘镜像文件,则判断该扇区中存储的数据是否与父镜像文件中相同扇区位置的数据一致,如果一致,则将该扇区作为垃圾扇区。
5.根据权利要求2所述的方法,其特征在于,所述查找文件数据块中的垃圾扇区,包括:
如果所述文件是动态磁盘镜像文件,则获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图;
对比所述原始扇区位图和反演扇区位图的每一位:
如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
6.根据权利要求2所述的方法,其特征在于,所述查找文件数据块中的垃圾扇区,包括:
如果所述文件是增量磁盘镜像文件,则获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图以及祖先镜像文件中相同数据块的扇区位图;
对比所述原始扇区位图、反演扇区位图和祖先镜像扇区位图的每一位:
如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在祖先镜像扇区位图中的相应记录表示该扇区中没有存储数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
7.一种收缩虚拟磁盘镜像文件的装置,其特征在于:
所述文件包含数据块和用于记录每个数据块信息的块分配表;
所述装置包括:
垃圾数据块查找模块,用于查找文件中的垃圾数据块,并修改所述垃圾数据块在块分配表中的相应记录,其中所述垃圾数据块为不保存有效数据的数据块,所述垃圾数据块中全部数据已删除;
数据迁移模块,用于将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置,并修改迁移后的有效数据块在块分配表中的相应记录,其中将位于垃圾数据块后面的有效数据块迁移至垃圾数据块的位置包括将位于垃圾数据块后面的有效数据块中的数据复制到垃圾数据块的位置;
文件截短模块,用于在完成数据块迁移后,文件末尾形成一块等于所有垃圾数据块大小的无用区域,将所述无用区域截断,得到截短之后的文件。
8.根据权利要求7所述的装置,其特征在于:
每个数据块包含扇区和用于记录每个扇区信息的扇区位图;
所述装置还包括:
垃圾扇区查找模块,用于查找文件数据块中的垃圾扇区,并修改所述垃圾扇区在扇区位图中的相应记录。
9.根据权利要求8所述的装置,其特征在于:
所述垃圾数据块查找模块通过查找文件数据块中的扇区位图,将扇区位图中对应所有扇区的记录都表示为垃圾扇区的数据块作为垃圾数据块。
10.根据权利要求8所述的装置,其特征在于,所述垃圾扇区查找模块包括:
扇区位图查找子模块,用于查找文件数据块中的扇区位图,如果扇区位图中对应某个扇区的记录表示该扇区中存储着数据,则触发判断子模块;
判断子模块,用于进行以下判断:
如果所述文件是动态磁盘镜像文件,则判断该扇区中存储的数据是否全为0,如果是,则将该扇区作为垃圾扇区;
如果所述文件是增量磁盘镜像文件,则判断该扇区中存储的数据是否与父镜像文件中相同扇区位置的数据一致,如果一致,则将该扇区作为垃圾扇区。
11.根据权利要求8所述的装置,其特征在于,如果所述文件是动态磁盘镜像文件,则所述垃圾扇区查找模块包括:
第一获取子模块,用于获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图;
第一对比子模块,用于对比所述原始扇区位图和反演扇区位图的每一位:
如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
12.根据权利要求8所述的装置,其特征在于,如果所述文件是增量磁盘镜像文件,则所述垃圾扇区查找模块包括:
第二获取子模块,用于获取文件数据块的原始扇区位图和表示对应扇区是否存储有效数据的反演扇区位图以及祖先镜像文件中相同数据块的扇区位图;
第二对比子模块,对比所述原始扇区位图、反演扇区位图和祖先镜像扇区位图的每一位:
如果原始扇区位图中对应某个扇区的记录表示该扇区中存储着数据,并且该扇区在祖先镜像扇区位图中的相应记录表示该扇区中没有存储数据,并且该扇区在反演扇区位图中的相应记录表示该扇区中没有存储数据,则将该扇区作为垃圾扇区。
CN201110228838.2A 2011-08-10 2011-08-10 一种收缩虚拟磁盘镜像文件的方法及装置 Active CN102929884B (zh)

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
PCT/US2012/050296 WO2013023133A1 (en) 2011-08-10 2012-08-10 Shrinking virtual hard disk image
JP2014525169A JP6092868B2 (ja) 2011-08-10 2012-08-10 仮想ハードディスクイメージを圧縮する方法
EP12748349.3A EP2742417A1 (en) 2011-08-10 2012-08-10 Shrinking virtual hard disk image
US13/571,773 US9501225B2 (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 CN102929884A (zh) 2013-02-13
CN102929884B true 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)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102081167B1 (ko) * 2012-11-13 2020-02-26 삼성전자주식회사 메모리 장치를 이용하는 방법 및 그 장치
US9959070B2 (en) 2013-03-06 2018-05-01 Ab Initio Technology Llc Managing operations on stored data units
US10133500B2 (en) 2013-03-06 2018-11-20 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
CN103389946B (zh) * 2013-07-16 2016-08-10 中国科学院计算技术研究所 去碎片化方法及系统
EP3049941A1 (en) * 2013-09-27 2016-08-03 Hewlett-Packard Development Company, L.P. Excluding file system objects from raw image backups
CN104156175B (zh) * 2014-08-06 2017-05-24 厦门天锐科技股份有限公司 一种虚拟磁盘容量平滑拓展方法
CN105630401A (zh) * 2014-11-04 2016-06-01 中兴通讯股份有限公司 数据的保存方法、装置及读取方法、装置
US10067945B2 (en) * 2015-02-24 2018-09-04 Quest Software Inc. File and move data to shrink datafiles
CN106708831B (zh) * 2015-07-31 2020-12-01 炬芯科技股份有限公司 一种fat镜像文件处理的方法及装置
US10108631B2 (en) * 2016-01-06 2018-10-23 Acronis International Gmbh System and method of removing unused regions of a data file
CN107918521A (zh) * 2016-10-09 2018-04-17 深圳市深信服电子科技有限公司 虚拟磁盘的缩减方法及装置
WO2018107361A1 (zh) * 2016-12-13 2018-06-21 华为技术有限公司 镜像处理方法以及计算设备
CN106598503B (zh) * 2016-12-23 2019-09-24 郑州云海信息技术有限公司 一种云平台下优化虚拟磁盘占用存储空间的方法和装置
CN107391544B (zh) * 2017-05-24 2020-06-30 阿里巴巴集团控股有限公司 列式存储数据的处理方法、装置、设备及计算机储存介质
JP6696052B2 (ja) * 2017-06-20 2020-05-20 株式会社日立製作所 ストレージ装置及び記憶領域管理方法
CN107332904A (zh) * 2017-06-29 2017-11-07 郑州云海信息技术有限公司 一种跨存储系统的数据迁移方法、装置及系统
CN108021630B (zh) * 2017-11-21 2021-03-30 深圳市雷鸟网络传媒有限公司 垃圾文件清理方法、智能终端及计算机可读存储介质
CN109597571B (zh) * 2018-11-15 2022-02-15 金蝶软件(中国)有限公司 数据存储方法、数据读取方法、装置和计算机设备
CN112988077B (zh) * 2021-04-27 2021-07-23 云宏信息科技股份有限公司 一种虚拟磁盘复制方法和计算机可读存储介质
CN115509624B (zh) * 2022-10-25 2023-04-28 中南大学 面向流式加载的镜像融合方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
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 北京握奇数据系统有限公司 智能卡存储系统及该系统中文件创建管理的方法

Family Cites Families (36)

* Cited by examiner, † Cited by third party
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
EP2137629A4 (en) * 2007-03-20 2010-12-29 Sanggyu Lee MOBILE 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 キヤノン株式会社 パターン認識方法、パターン認識装置及びプログラム
CN102037444B (zh) * 2008-05-20 2014-07-30 思杰系统有限公司 用于修补从通用基础磁盘映像获取的多个磁盘映像的方法和系统
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
US8805788B2 (en) * 2009-05-04 2014-08-12 Moka5, Inc. Transactional virtual disk with differential snapshots
US20100325351A1 (en) * 2009-06-12 2010-12-23 Bennett Jon C R 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
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
JP5427011B2 (ja) * 2009-12-17 2014-02-26 株式会社日立製作所 仮想ハードディスクの管理サーバおよび管理方法、管理プログラム
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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 北京中星微电子有限公司 一种利用文件分配表进行文件寻道的方法及系统架构

Also Published As

Publication number Publication date
US20160335018A1 (en) 2016-11-17
EP2742417A1 (en) 2014-06-18
WO2013023133A1 (en) 2013-02-14
TWI540432B (zh) 2016-07-01
JP2014527231A (ja) 2014-10-09
US9501225B2 (en) 2016-11-22
CN102929884A (zh) 2013-02-13
JP6092868B2 (ja) 2017-03-08
JP6360215B2 (ja) 2018-07-18
US20130041927A1 (en) 2013-02-14
US10331349B2 (en) 2019-06-25
TW201308083A (zh) 2013-02-16
JP2017091583A (ja) 2017-05-25
HK1176438A1 (zh) 2013-07-26
WO2013023133A8 (en) 2013-12-19

Similar Documents

Publication Publication Date Title
CN102929884B (zh) 一种收缩虚拟磁盘镜像文件的方法及装置
CN102667703B (zh) 用于虚拟磁带库系统中的优化回收处理的系统和方法
CN102779180B (zh) 数据存储系统的操作处理方法,数据存储系统
US8224874B2 (en) Systems and methods for removing unreferenced data segments from deduplicated data systems
JP5466634B2 (ja) 順次メディアのリクラメーション・システム、方法、及びコンピュータ・プログラム
US8904125B1 (en) Systems and methods for creating reference-based synthetic backups
CN103729262B (zh) 操作系统热备份方法、装置及文件系统重构方法
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
CN104765794A (zh) 一种数据库分区方法及装置
CN107391774A (zh) 基于重复数据删除的日志文件系统的垃圾回收方法
KR20000022716A (ko) 로그 구조화 목표 저장장치를 사전에 구성하여 볼륨을 효율적으로 복사하는 방법 및 장치
CN111007990A (zh) 一种对快照系统中数据块引用进行快速定位的定位方法
US8738571B1 (en) Extended recycle bin
CN109325005B (zh) 一种数据处理方法和电子设备
KR100987320B1 (ko) 고속 파일 복구가 가능한 fat 파일시스템을 사용한데이터 처리장치 및 데이터 처리방법
CN113127376B (zh) 固态驱动器的控制方法、装置及设备
CN108984343B (zh) 一种基于内容分析的虚拟机备份及存储管理方法
US10152492B1 (en) Extended recycle bin for versioning
US7836030B2 (en) Data library optimization
CN113821476B (zh) 数据处理方法及装置
CN117149724B (zh) 一种云环境系统重复数据删除的方法及系统
CN112860486B (zh) 创建数据副本的方法及装置
Lee et al. Comments on the Linux FAT32 allocator and file creation order reconstruction [Digit Investig 11 (4), 224–233]
CN115129254A (zh) 一种对象存储方法及装置
CN117742584A (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