CN104364774A - 去重复虚拟机镜像转移器 - Google Patents

去重复虚拟机镜像转移器 Download PDF

Info

Publication number
CN104364774A
CN104364774A CN201280072728.4A CN201280072728A CN104364774A CN 104364774 A CN104364774 A CN 104364774A CN 201280072728 A CN201280072728 A CN 201280072728A CN 104364774 A CN104364774 A CN 104364774A
Authority
CN
China
Prior art keywords
block
virtual machine
machine image
temporary storage
storer
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
Application number
CN201280072728.4A
Other languages
English (en)
Other versions
CN104364774B (zh
Inventor
S·阿尔基斯瓦尼
M·里普鲁
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.)
University of British Columbia
Original Assignee
University of British Columbia
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 University of British Columbia filed Critical University of British Columbia
Publication of CN104364774A publication Critical patent/CN104364774A/zh
Application granted granted Critical
Publication of CN104364774B publication Critical patent/CN104364774B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/065Replication mechanisms
    • 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
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

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)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请总地描述了用于将虚拟机镜像从源存储器拷贝到目的地存储器的系统和方法的技术。处理器可以将与第一虚拟机镜像对应的第一区块从临时存储器拷贝到目的地存储器。临时存储器可以包括存在于第一和第二虚拟机镜像的去重复数据。处理器可以标识临时存储器中的与第二虚拟机镜像对应的第二区块并且将第二区块存储在缓冲器中。处理器可以标识临时存储器中的与第一虚拟机镜像对应的第三区块并且将所述第三区块从所述临时存储器拷贝到所述目的地存储器。

Description

去重复虚拟机镜像转移器
背景技术除非在此处进行说明,否则在该部分中所描述的材料不是本申请权利要求的现有技术并且不因包含在该部分中而承认是现有技术。
云计算系统可以包括与一个或多个存储器通信的一个或多个处理器。存储器可以存储计算环境的一个或多个镜像。这些镜像可以包括软件程序、库、操作系统等。为便于维护、备份或新应用部署,这些镜像可以从一个物理存储器转移到另一物理存储器。
发明概述
在示例中,总体描述了用于将第一虚拟机镜像和第二虚拟机镜像从源存储器拷贝到目的地存储器的方法。该方法可以包括:将与第一虚拟机镜像对应的第一区块从临时存储器拷贝到目的地存储器。临时存储器可以包括存在于第一虚拟机镜像和第二虚拟机镜像中的去重复数据。该方法还可以包括:标识临时存储器中的与第二虚拟机镜像对应的第二区块。该方法可以进一步包括:将第二区块存储在缓冲器中。该方法可以进一步包括:标识临时存储器中与第一虚拟机镜像对应的第三区块。该方法还可以包括:将第三区块从临时存储器拷贝到目的地存储器。
在示例中,总地描述了用于将第一虚拟机镜像和第二虚拟机镜像从源存储器拷贝到目的地存储器的系统。该系统还可以包括临时存储器和处理器。处理器可以配置为与临时存储器通信且配置为与源存储器和目的地存储器通信。处理器可用于将与第一虚拟机镜像对应的第一区块从临时存储器拷贝到目的地存储器。临时存储器可以包括存在于第一和第二虚拟机镜像中的去重复数据。处理器可用于标识临时存储器中的与第二虚拟机镜像对应的第二区块。处理器可用于将第二区块存储在缓冲器中。处理器可用于标识临时存储器中的与第一虚拟机镜像对应的第三区块。处理器可用于将第三区块从临时存储器拷贝到目的地存储器中。
在示例中,总地描述了将第一虚拟机镜像和第二虚拟机镜像从源存储器拷贝到目的地存储器的方法。该方法可以包括标识重复数据。重复数据可以存在于第一和第二虚拟机镜像中。该方法可以包括:将重复数据从源存储器拷贝到临时存储器以生成去重复数据和镜像区块映射。该方法可以包括:基于镜像区块映射来生成文件映射。文件映射可以标识临时存储器中的区块和与所述区块对应的虚拟机镜像。该方法可以包括:将与第一虚拟机镜像对应的第一区块从临时存储器拷贝到目的地存储器。该方法可以包括标识临时存储器中的与第二虚拟机镜像对应的第二区块。该方法可以包括:将第二区块存储在缓冲器中。该方法可以包括:标识临时存储器中的与第一虚拟机镜像对应的第三区块。该方法可以包括将第三区块从临时存储器拷贝到目的地存储器。文件映射可以包括与第一虚拟机镜像对应的第一文件。文件映射可以进一步包括与第二虚拟机镜像对应的第二文件。第一文件可以包括两个以上的区域。每个区域都可以包括与第一虚拟机镜像对应的去重复数据的连续区块的标识以及区块是否存储在源存储器、目的地存储器和/或缓冲器中的指示。文件映射还可以包括区域计数器。区域计数器可以用于指示存储在缓冲器中的第二区块的数量。
前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参考附图以及下面的详细说明,除了上文所描述的示例性的方案、实施例和特征之外,另外的方案、实施例和特征将变得清晰可见。
附图说明
通过结合附图,本公开的前述以及其它特征将下面的说明书和随附权利要求书中变得更加明显。应理解的是,这些附图仅描绘了依照本公开的数个实施例,因此不视为对其范围的限制,将通过使用附图以附加的特性和细节描述本公开,其中:
图1示出了能够用于实现去重复虚拟机镜像转移的一些示例系统;
图2示出了能够用于实现去重复虚拟机镜像转移的一些示例系统;
图3示出了能够用于实现去重复虚拟机镜像转移的一些示例系统;
图4是图示出包括实现去重复虚拟机镜像转移的系统的实验中的数据的吞吐量对信息块尺寸的图;
图5示出了用于实现去重复虚拟机镜像转移的示例过程的流程图;
图6示出了用于实现去重复虚拟机镜像转移的计算机程序产品;以及
图7是图示出布置成实现去重复虚拟机镜像转移的示例的计算设备的框图;
所有这些图都是依照本文中描述的至少一些实施例来布置的。
发明详述
在下面的详细说明中,将参考附图,附图构成了详细说明的一部分。在附图中,除非上下文指出,否则相似的符号通常表示相似的部件。在详细说明、附图和权利要求中所描述的示例性实施例不意在限制。可以使用其它实施例,并且可以做出其它改变,而不偏离本文呈现的主题的精神或范围。将易于理解的是,如本文大致描述且如图中所图示的,本公开的方案能够以各种不同配置来布置、替代、组合、分离和设计,所有这些都在本文中明确地构思出。
本公开总体尤其涉及与去重复虚拟机镜像转移有关的方法、装置、系统、设备和计算机程序产品。
简言之,总体描述了用于将虚拟机镜像从源存储器拷贝到目的地存储器的系统和方法的技术。处理器可以将与第一虚拟机镜像对应的第一区块从临时存储器拷贝到目的地存储器。临时存储器可以包括存在于第一和第二虚拟机镜像中的去重复数据。处理器可以标识临时存储器汇总的与第二虚拟机镜像对应的第二区块并且将第二区块存储在缓冲器中。处理器可以标识临时存储器中的与第一虚拟机镜像对应的第三区块并且将第三区块从临时存储器拷贝到目的地存储器。
图1示出了根据本文所描述的至少一些实施例布置的能够用于实现去重复虚拟机镜像转移的一些示例系统。在一些示例中,如下文更详细说明的,系统100可以包括位于源位置125处的源存储器102、位于目的地位置124处的目的地存储器104以及转移处理器110。存储器可以包括例如普通存储介质,诸如RAM、磁盘、固态驱动器等。转移处理器110可配置为与存储器112通信。存储器112可以包括去重复虚拟机转移算法114。处理器110可以适于方便将一个或多个虚拟机镜像140、142、144从源存储器102(如“s”所指示)例如通过网络108转移到目的地存储器104(如“d”所指示)。处理器110可以依照算法114来操作并且可以与源存储器102和目的地存储器124通信。处理器110可以物理地位于源位置102、目的地位置104处,或者既不在源位置,也不在目的地位置,例如通过网络108。
图2示出了根据本文所描述的至少一些实施例布置的能够用于实现去重复虚拟机镜像转移的一些示例系统。为清晰起见,将不再对图2中标记与图1的部件相同的那些部件进行说明。
目的地位置124还可以包括缓冲器122、存储器120和/或一个或多个附加的目的地存储器106,它们配置为彼此通信。处理器110可配置为与目的地位置124处的设备通信。虚拟机镜像140、142、144可以包括例如压缩了软件和相应的操作系统的对象。处理器110可适于方便将虚拟机镜像从源存储器102转移到目的地存储器104和/或目的地存储器106。转移可在诸如迁移、新应用部署、维护、存储、备份等的背景下使用。每个镜像可以包括相对较大量的数据,诸如3GB。这些镜像中的很多数据,可能多达95%,可以是在一个或多个镜像间重复的重复数据134。例如,镜像140和142可以包括相同的操作系统、库等。算法114可以控制处理器110以标识重复数据134。处理器110可以将重复数据134从镜像140、142、144之一拷贝到存储器118,作为去重复数据120。去重复数据120可以包括在两个以上镜像间重复的单一数据版本。在重复数据134作为去重复数据120拷贝到存储器118中之后,处理器110可配置为控制去重复数据120从存储器118到目的地存储器104的拷贝。这样,重复数据的一个副本可以拷贝到存储器118,然后按目的地存储器104所需的一样多的次数来拷贝。
算法114可以进一步提供用于方便去重复数据120到目的地存储器104的拷贝的指令。目的地存储器104可以为例如磁盘。算法114可以用于减少需要加载、自旋或存取磁盘/存储器104的次数。磁盘104的存取的这种减少可使得减少在将数据拷贝到目的地存储器104中的瓶颈。如下面更详细说明的,当处理器110生成去重复数据120时,处理器110还可以生成映射116。映射116可以指示去重复数据120中的数据的哪些区块对应于镜像140、142、144。映射116还可以指示镜像140、142、144中的区块的次序。区块可以为例如去重复数据120的4kb尺寸的部分。
处理器110可以分析映射116并且标识与特定虚拟机镜像对应的特定区块。一旦标识出那些特定的区块,处理器110可对于一个虚拟机镜像将特定区块从存储器118拷贝到目的地存储器104。由于处理器110从存储器118取回区块,与不同镜像有关,而与所拷贝的特定镜像无关的区块,可存储在缓冲器122中。通过持续地将数据写入一个虚拟机镜像,可以减轻拷贝到目的地磁盘的瓶颈。在目的地存储器104处的磁盘无需持续地加载和自旋,并且可以增强磁盘存取连续性。
图3示出了根据本文所描述的至少一些实施例布置的能够用于实现去重复虚拟机镜像转移的一些示例系统。为清晰起见,将不再对图3中标记与图1和图2中的部件相同的那些部件进行说明。
算法114可以控制处理器110从存储器118取回去重复数据120并且将去重复数据120写入目的地存储器104。处理器110可以将源虚拟机镜像140s作为虚拟机镜像140d写入位置146。处理器110可以将源虚拟机镜像142s作为虚拟机镜像142d写入位置148。处理器110可以将源虚拟机镜像144s作为虚拟机镜像144d写入位置150。
处理器110可以包括转移模块154和/或与转移模块154通信。转移模块154可以方便处理器110、缓冲器122、存储器118和/或源存储器102之间的通信和请求。在示例中,当处理器110生成去重复数据120时,处理器110可以生成镜像区块映射121。当镜像140、142、144被去重复时,可以生成镜像区块映射。算法114可以控制处理器110基于镜像区块映射来生成映射116。
映射116可以是包括两个以上文件154的数据结构。文件154可对应于虚拟机镜像。在图3所示的示例中,文件154对应于虚拟机镜像140。文件154可通过处理器110划分成相等尺寸的区域132、133。区域尺寸可以为例如4MB(例如,100个4KB尺寸的数据区块)。区域132、133可以包括区块标识符字段126、区域缓冲器计数字段128、区块尺寸字段131、存在字段130和/或区域数量字段135。区块标识符字段126可以包括去重复数据120中的对应于文件(虚拟机镜像)140的区域132的区块标识符。区域数量字段135可以指示与在区块标识符字段126中标识的对应区块相关联的区域数量。
在示例中,映射116可以划分成两个以上的文件154,每个文件对应于相应的虚拟机镜像140、142、144。在示例中,文件154可以划分成两个以上的区域132、133。每个区域可以指示对应的虚拟机镜像中的连续区块的数量以及虚拟机镜像中的区块的次序。在所示的示例中,区域132可以对应于虚拟机镜像140中的第一区域。区域132包括区块1、5、6和98,按该次序。如上所述,去重复数据120中的区块可以出现在多于一个的虚拟机镜像中。这意味着,区块、1、5、6和98中的一些区块可出现在诸如镜像142的其它虚拟机镜像中。
在图3所示的示例中,处理器110可以从存储器118中取回去重复数据的一个或多个区块。例如,处理器110可以取回完整区域。在另一示例中,处理器110可以分析当前区域并且取回丢失的数据区块。区域中的区块都不处于目的地,则处理器110可以取回完整区域(例如,待处理的第一区域)。处理器110可以将区块1、5、6和98写入与虚拟机镜像140d对应的位置146。在分析映射116之后,处理器110获知何种区块位于与虚拟机镜像140对应的文件154的区域132中。处理器110可以在写入其它文件(其它虚拟机镜像)的区块之前拷贝来自文件154(虚拟机镜像140)的存储器118的区块。一旦文件154中的第一区块写入虚拟机镜像140的存储器104,则目的地磁盘/存储器104自旋且位于位置146处。由于映射116标识虚拟机镜像140中的其它区块,所以处理器110可适于在写入其它虚拟机镜像的数据之前将虚拟机镜像140的更多区块写入位置146。通过在写入其它虚拟机镜像的区块之前写入虚拟机镜像140的其它区块,因为区块是顺序写入的,所以处理器110可以提高将数据写入磁盘104的效率。随着区块被写入,存在字段130可以更新以指示区块是否存储在源“s”存储器118、目的地“d”存储器104或缓冲器“b”122中。
在处理器110顺序地从存储器118取回区块以及将区块写入虚拟机镜像140d中,处理器110可以判定存储器118中的一些区块还对应于其它的虚拟机镜像。例如,区块“5”可以对应于位置146处的虚拟机镜像140d并且可以对应于位置148处的虚拟机镜像142d。在将区块“5”写入虚拟机镜像140d而不是使磁盘/存储器104自旋到位置148的同时,处理器110可适于将区块“5”拷贝到缓冲器122中。在示例中,区块“5”可存储在缓冲器122中以便处理器110稍后存取,同时处理器110处理区块6。处理器110因此可以避免在磁盘104中从位置146跳到位置148。
在示例中,缓冲器122可以具有大约200MB的尺寸。处理器110可以通过改变存在字段130指示“b”来更新映射116以指示区块“5”存储在缓冲器122中。处理器110可以进一步更新映射116以使区域计数器字段128增量。例如,镜像区块映射121可以标识区块以及对应的虚拟机镜像和相应的镜像内的相应位置。例如,可以标识镜像内的偏移。当缓冲区块时,如本文所论述的,镜像区块映射121可以指示与缓冲的区块对应的其它区域。利用虚拟机镜像文件名称和偏移,处理器110能够判定哪些区域对应于缓冲的区块。该判定可能是因为区域可能具有固定大小并且可能连续地存储在目的地存储器104中。区域计数器可以代表与存储在目的地存储器104中或缓冲器122中的区域对应的区块数量。区域计数器字段可以用于标识将其大多数数据存储在目的地存储器104中且需要来自源存储器102的较少区块来完成区域的特定区域。该特定区域可以首先迁移或者在其它区域之前迁移。
处理器110可以读取映射116并且标识待拷贝到存储器104的区域132、134。对于每个区域,处理器110可以判定与区域对应的区块是否存储在缓冲器122中。如果与区域对应的区块存储在缓冲器122中,则处理器110可以将那些区块从缓冲器122拷贝到存储器104。如果与区域对应的区块没有存储在缓冲器122中,则处理器110可以将那些区块从存储器118写入存储器104。如果所写的区块还对应于其它区域,则处理器110可以将区块写入缓冲器122中。
处理器110可以继续处理区域,直到缓冲器122达到充满的阈值水平。例如,阈值水平可以是充满90%。当缓冲器122达到阈值水平时,处理器110可以切换到释放缓冲器122中的空间的算法。处理器110可以分析映射116并且判定各区域所存储的区块数量。例如,处理器110可以分析区域计数字段128。处理器110可以标识具有存储在缓冲器122中的特定区域区块的阈值百分比的特定区域。处理器110随后可以处理该特定区域的区块。
当处理阈值数量的区块被缓冲的特定区域时,处理器110可以将特定区域中的区块从缓冲器122拷贝到包括区块的所有虚拟机镜像。通过将区块写入所有镜像,缓冲器122可以被释放。在另一示例中,处理器110可以将缓冲器122中用于特定区域的区块写入特定区域,而不是写入其它区域。处理器110可以通过处理阈值数量的区块被缓冲的区域来继续释放缓冲器122中的空间,直到达到缓冲器的某阈值,诸如缓冲器的一半充满。
缓冲器122可以包括计数器152。计数器152可以指示,对于每个区块,应写入相应区块的区域数量。计数器152可以用来自区域数量字段135的数据扩增。在区块从缓冲器122拷贝到存储器104时,计数器152可以减量。当计数器152达到0时,对应的区块可以从缓冲器122去除。处理器110可以将存储在缓冲器122中的区块写入每个对应的镜像140、142、144,直到相应区块的计数器152达到0。
在释放缓冲器之后,一些区域中可能存储了一些区块,但是区域不是完整的。写入来自缓冲器122的区块可以使得一些区域从存储器118部分地拷贝到存储器104。处理器110现在可以完成拷贝这些不完整的区域,然后继续拷贝其它区域。处理器110可以在拷贝模式和缓冲器释放模块之间前后循环,直到镜像140、142、144的全部迁移完成。
性能分析
该部分提供了可通过依照本公开的系统实现的可能的改进的解析性分析。表1提供了所使用的变量。
表1.在性能分析中所使用的变量
磁盘查找开销可能是性能降级的主要因素。下面是可用于汇编一组F个镜像的查找数量的评估。为了使解析性分析可跟踪且提供对影响性能的因素的洞察,下面假设最坏情况下的方案,其中相似率为100%,意味着所有的虚拟机镜像包括相同的数据区块(但是可能是按不同的次序)。因此,每个区块需要写入目的地处的F个镜像。所描述的系统性能会受到各文件中区域相似度的影响。这可通过模型中的参数c来建模。
由于每个数据区块是转移中的F个镜像的部分,所以将来自存储器118的每个区块写入包括该区块的每个虚拟镜像的可选方法,对于每个数据区块,将进行F次磁盘查找。这会导致在每个区域中总共有(b.F)次磁盘查找,而不论区块图案如何;即,不论参数c如何。因此,在每个区域内,总查找开销可以是(b.F.s(dc))。
相反,简化的迁移算法可以包括:
1.选择文件中的区域并且将该区域中的区块顺序地转移。由于该区域中的所有区块都是其它F个文件的部分,所以该区域中的所有区块可以保存在缓冲器中。
2.当数据缓冲器充满(即,具有缓冲的r个区域)时,算法将缓冲的区块写入它们所属的(F-1)个文件,而不产品任何新的区块。
简化的迁移算法的分析:
在简化算法的点1中,算法将使一个磁盘查找以开始写入一个区域,然后顺序地写入所有区域的区块。这使得在每个区域(或者每b个区块)中进行一次查找。
在写入r个区域之后,缓冲器充满。该算法将每个区块写入区块所属的(F-1)个文件。由于每个区域的各区块中的c个区块可以在每个文件中都是连续的,所以对于连续的c个区块,该算法将获取(F-1)次查找,对于每一个非连续区块,将获得(F-1)次查找。总体来说,该算法将在每个区域获取(F-1)+(b-c)(F-1)=(b-c+1)(F-1)次查找。总体来说,该算法耗费了(1+(b-c+1).(F-1)).s(da)的查找时间来转移一个区域,da表示利用简化算法在每次查找时所移动的平均距离。
与其它方法相比,简化方法在转移一个区域时的相对性能为:
(1+(b-c+1)(F-1)).s(da)/b.F.s(dc)
该分析表明,性能增益受如下因素影响:区域尺寸、区域相似度,以及查找距离。
恒定查找开销分析
为了理解区域尺寸b和区域相似度c对相对性能的影响,可以假设查找开销在两种方法之间是相等的;也即,da=dc。相对性能变成:
1+(b-c+1)(F-1)/b.F
该公式表明,在最坏的情况下(c=1,即,在各文件中没有两个区域出现在同一区域中多于一次),对于可选方法中的每次查找,简化的算法可以执行(F-1)/F次查找。换言之,简化的方法减少了查找次数1/F。在频谱的另一端,c=b,即,在简化算法中每次查找时,文件中的区域中的区块在文件中以相同的次序准确地出现。所描述的方法可以执行b次查找,达到b倍性能提高。该提高可能主要是因为该机制能够高效地使用缓冲器来达到改进的磁盘存取连续性。
查找距离影响分析
查找开销可以直接取决于磁盘需要旋转的距离。下面分析了查找距离:
在可选的方法中,每个区块需要写入每个文件。在最佳的情况下,可选的方法可以强加查找距离0(在当前区块是当前镜像中的最后一个区块且在下一镜像中是第一区块的情况下),而在最坏的情况下为查找距离2.S。查找距离遵循三角形概率分布,参数a=0,b=2.S,c=S,均值为S。因此,平均地讲,可选的方法强加了s(S)的平均查找开销。
简化算法中的平均查找距离:
简化的方法按次序将区块(总共b.r个区块)写入全部的区域(即,基于其偏移对区块分类)。因此,假设区块在文件和偏移之中是均匀随机分布,该机制强加了平均s(S.F/b.r)的查找开销。
该分析表明,所提议的机制实现了短F/b.r倍的查找距离。因为r.b>>F,所以这实现了显著的提高。实验评估(下面给出)表明,该提高对于转移率的影响是显著的。
结论
与其他方法相比,提议的方法实现了显著的性能增益。之所以这样,是因为所论述的算法减少了查找次数,而且显著地降低了查找开销。例如,为迁移5VM的镜像同时b设定成100个4KB的区块的合理值(而且假设查找开销相等),与其他方法相比,该机制能够实现高达100倍的性能改善,至少20%的性能改善。
而且,给定虚拟机镜像的本质,通常一组区块出现在各文件中的相同区域中(即,区域相似度高),因为这些区块通常属于虚拟机镜像中的同一文件(相同的OS内核、库或应用文件)。因此,性能增益会显著高于1/F的最小值。
实验评估
该部分给出了查找开销对较大的虚拟机镜像的写操作吞吐量的影响的评估。查找开销可以是磁盘从一个位置移动到另一位置的机械操作。评估利用不同的区块尺寸将10GB的文件写入磁盘。评估比较三种写模式:顺序的、随机的和‘规律的’写模式。对于随机模式,区块写次序是从可能的n!区块次序中随机选择的,其中n是区块的总数。利用概率分析,期望的查找距离可以是文件尺寸的1/3(在示例中等于存储3.3GB数据的磁盘距离)。规律的模式将文件划分成10,000个段并且以轮叫方式将一个区块写入每个段中。该模式的目标是测量查找距离对磁盘写吞吐量的影响。类似于随机模式,该模式可以使用用于每个区块写的查找,不同于随机模式,查找距离为文件尺寸的1/10,000,在评估中该文件尺寸等于用于存储1MB数据的磁盘距离。
随机模式可以表征其他虚拟机转移方法所生成的模式,而规律的模式表征在最坏情况下由所描述的机制生成的模式(在分析中c=1)。最后,顺序模式表征所描述系统中的最高可能的性能并且接近于最佳情况方案中的性能。
评估运行于带有Intel Xeon E53454核、2.33-GHz CPU、4-GB RAM和300-GB 7200-rpm SATA磁盘的机器上。每个实验重复10次。显示出了平均值和标准偏差(作为误差棒)。如下表。
图4是图示出在依照本公开的实施例布置的包括实现去重复虚拟机镜像转移的系统的实验中的数据的写吞吐量对块尺寸的表格。图4示出了在改变区块尺寸的同时三种模式的写吞吐量。结果得到了下面的观察结果:
具有较小区块尺寸的随机写(通常在虚拟机去重复中)实现了较低的性能(具有1KB区块的110KBps),达到比顺序写模式慢的三个量级。规律的写模式由于短得多的查找距离而表现比随机写更好(达到在较小区块中更佳的两个量级)。评估表明,依照本公开的系统不仅提高了磁盘存取连续性,而且使得查找距离最小化。
在其他可能的益处中,依照本公开的系统可以加速虚拟机镜像数据的转移。可以减少磁盘存取的瓶颈。该系统可以提高磁盘性能,并且减少多重磁盘存取以及不必要的磁盘旋转。可以提高磁盘存取连续性。可以减少硬盘使用,使得能量成本较低,磁盘磨损较低。
所公开的系统可以优化一组虚拟机镜像的存储和转移。当将一组虚拟机镜像从去重复虚拟机仓库转移到非去重复虚拟机仓库时,可以使用该系统。当跨过不使用相同的去重复技术和配置的去重复虚拟机仓库转移数组虚拟机镜像时,可以使用该系统。
图5描绘了依照本文所描述的至少一些实施例布置的用于实现去重复虚拟机镜像转移的示例过程的流程图。图5的过程可以利用例如上文所述的系统100来实现,系统100用来将第一虚拟机镜像和第二虚拟机镜像从源存储器拷贝到目的地存储器。示例的过程可以包括一个或多个操作、动作或功能,如区块S2、S4、S6、S8和/或S10中的一个或多个所图示的。虽然图示为离散的区块,各区块可划分成附加的区块,组合成较少的区块、或者消除,取决于期望的实现。
处理可开始于区块S2,“将与第一虚拟机镜像对应的第一区块从临时存储器拷贝到目的地存储器,临时存储器可以包括存在于第一虚拟机镜像和第二虚拟机镜像中的去重复数据”。在区块S2中,第一处理器可配置为分析临时存储器并且将区块从临时存储器拷贝到目的地存储器。临时存储器可以包括存在于第一和第二虚拟机镜像中的去重复数据。临时存储器可以包括与去重复数据有关的镜像区块映射。处理器可以进一步生成标识临时存储器中的区块的文件映射以及对应于区块的虚拟机镜像。文件映射可以包括与虚拟机镜像对应的文件。文件可以包括区域。区域可以包括区块标识符字段、区域缓冲器计数字段、区块尺寸字段、存在字段和/或区域数量字段。
处理可以从区块S2继续到区块S4,“标识临时存储器中与第二虚拟机镜像对应的第二区块”。在区块S4中,处理器可以分析临时存储器并且标识与第二虚拟机镜像对应的第二区块。
处理可以从区块S4继续到区块S6,“将第二区块存储在缓冲器中”。在区块S6中,处理器可以将第二区块存储在缓冲器中。
处理可以从区块S6继续到区块S8,“标识临时存储器中与第一虚拟机镜像对应的第三区块”。在区块S8中,处理器可以标识与第一虚拟机镜像对应的第三区块。
处理可以从区块S10继续,“将第三区块从临时存储器拷贝到目的地存储器”。在区块S10中,第一处理器可以将第三区块从临时存储器拷贝到目的地存储器。
图6示出了依照本文所描述的至少一些实施例布置的用于实现去重复虚拟机镜像转移的计算机程序产品300。程序产品300可以包括信号承载介质302。信号承载介质302可以包括一条或多条指令304,当通过例如处理器执行时,所述指令可以提供如上文参照图1-5所描述的功能。因此,例如,参照图100,处理器110可以响应于介质302传送到系统100的指令304而承担图6所示的一个或多个区块。
在一些实现中,信号承载介质302可以涵盖计算机可读介质306,诸如但不限于硬盘驱动器、紧凑磁盘(CD)、数字视频磁盘(DVD)、数字磁带、存储器等。在一些实现中,信号承载介质302可以涵盖可记录介质308、诸如但不限于存储器、读/写(R/W)CD、R/W DVD等。在一些实现中,信号承载介质302可以涵盖通信介质310,诸如但不限于数字和/或模拟通信介质(例如,光纤缆线、波导、有线通信链路、无线通信链路等)。因此,例如,程序产品300可通过RF信号承载介质302传送到系统100的一个或多个模块,其中信号承载介质302由无线通信介质310(例如,符合IEEE 802.11标准的无线通信介质)传送。
图7是图示出依照本文所描述的至少一些实施例布置的布置成实现去重复虚拟机镜像转移的示例性的计算设备400的框图。在极基本的配置402中,计算设备400典型地包括一个或多个处理器404和系统存储器406。为了在处理器404和系统存储器406之间通信,可以使用存储器总线408。
根据期望的配置,处理器404可以为任意类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)、或其任意组合。处理器404可以包括一级或多级高速缓存器412,诸如一级高速缓存410和二级高速缓存、处理器内核414、以及寄存器416。示例性的处理器内核414可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任意组合。示例性的存储器控制器418还可以用于处理器404,或者在一些实现中,存储器控制器418可以为处理器404的内部零件。
根据所期望的配置,系统存储器406还可以为任意类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)、或其任意组合。系统存储器406可以包括操作系统420、一个或多个应用422和程序数据424。
应用422可以包括布置成执行如本文所描述的包括之前参考图1-6所描述的那些功能的功能的镜像转移算法426。程序数据424可以包括镜像转移数据428,其可用于实现本文所描述的去重复虚拟机镜像转移。在一些实施例中,应用422可以布置成在操作系统420上以程序数据424操作,使得可以提供去重复虚拟机镜像转移。该描述的基本配置402通过内虚线内的那些部件图示在图7中。
计算设备400可以具有附加的特征或功能,以及便于基本配置402与任意所需的设备和接口之间的通信的附加接口。例如,总线/接口控制器430可用于方便基本配置402与一个或多个数据存储设备432之间经由存储接口总线434的通信。数据存储设备432可以是可移除存储设备436、非可移除存储设备438或其组合。可移除存储设备和非可移除存储设备的例子包括磁盘设备,诸如软盘驱动器和硬盘驱动器(HDD),光盘驱动器,诸如压缩盘(CD)驱动器或数字多功能盘(DVD)驱动器、固态驱动器(SSD)和磁带驱动器,仅列举了几个。示例的计算机存储介质可以包括以诸如计算机可读指令、数据结构、程序模块或其他数据的任意用于信息存储的方法或技术实现的易失性介质和非易失性介质、可移除介质和非可移除介质。
系统存储器406、可移除存储设备436和非可移除存储设备438是计算机存储介质的例子。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能磁盘(DVD)或其他光学存储设备、磁盒、磁带、磁盘存储或其他磁存储设备或可用于存储所需信息且可通过计算设备400存取的任何其他介质的任何其他介质。任何这样的计算机存储介质可以是计算设备400的部分。
计算设备400还可以包括用于方便从各接口设备(例如,输出设备442、外围设备接口444和通信设备446)经由总线/接口控制器430到基本配置402的通信的接口总线440。示例的输出设备442包括图形处理单元448和音频处理单元450,其可配置为经由一个或多个A/V端口452与诸如显示器或扬声器的各外部设备通信。示例的外围设备接口444包括串行接口控制器454或并行接口控制器456,其可配置为经由一个或多个I/O端口458与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如,打印机、扫描仪等)的外部设备通信。示例的通信设备446包括网络控制器460,其可布置成方便经由一个或多个通信端口464在网络通信链路上与一个或多个其他计算设备462的通信。
网络通信链路可以为通信介质的一个示例。通信介质通常可通过计算机可读指令、数据结构、程序模块或者其他诸如载波或其他传输机制的调制数据信号中的数据来具体化,并且可以包括任何信息输送介质。“调制数据信号”可以是使得其特性中的一个或多个以将信号中的信息编码的方式设定或改变的信号。通过举例而不是限制的方式,通信介质可以包括诸如有线网络或直接线连接的有线介质,以及诸如声波、射频(RF)、微波、红外(IR)和其它无线介质的无线介质。如本文所使用的术语计算机可读介质可以包括存储介质和通信介质两者。
计算设备400可实现为诸如蜂窝电话、个人数据助理(PDA)、个人媒体播放器设备、无线网关设备(wireless web-watch device)、个人头戴送受话器设备、专用设备或包括上述功能中的任一种的混合设备的小形状因数的便携式(或移动)电子设备的一部分。计算设备400还可实现为包括膝上型计算机和非膝上型计算机配置两者的个人计算机。
本公开不限于本申请中所描述的特定实施例,这些实施例意在各方案的示例。能够在不偏离其精神和范围的情况下做出多种改进和变型,这对于本领域技术人员而言是显而易见的。通过前面的说明,除了本文所列举的那些之外,在本公开的范围内的功能上等同的方法和装置对于本领域技术人员而言将是显而易见的。旨在使这些改进和变型落在所附权利要求书的范围内。本公开仅受所附权利要求书以及这些权利要求所给予权利的等同方案的整个范围所限制。应当理解的是,本公开不限于特定的方法、试剂、化合物组成或生物系统,当然这些会变化。还应理解的是,本文所使用的术语是仅仅是为了描述特定实施例的目的,而不意在限制。
关于本文中基本上任何复数和/或单数术语的使用,本领域技术人员能够根据上下文和/或应用适当地从复数变换成单数和/或从单数变换成复数。为了清晰的目的,本文中明确地阐明了各单数/复数的置换。
本领域技术人员将理解,一般地,本文所使用的术语,尤其是随附权利要求(例如,随附权利要求的主体)中所使用的术语,通常意在为“开放式”术语(例如,术语“包括”应当解释为“包括但不限于”,术语“具有”应解释为“至少具有”,术语“包括”应解释为“包括但不限于”,等等)。本领域技术人员还理解,如果意图表达引导性权利要求记述项的具体数量,该意图将明确地记述在权利要求中,并且在不存在这种记述的情况下,不存在这样的意图。例如,为辅助理解,下面的随附权利要求可能包含了引导性短语“至少一个”和“一个或多个”的使用以引导权利要求记述项。然而,这种短语的使用不应解释为暗指不定冠词“一”或“一个”引导权利要求记述项将包含该所引导的权利要求记述项的任何特定权利要求局限于仅包含一个该记述项的实施例,即使当同一权利要求包括了引导性短语“一个或多个”或“至少一个”以及诸如“一”或“一个”的不定冠词(例如,“一”和/或“一个”应当解释为表示“至少一个”或“一个或多个”);这同样适用于对于用于引导权利要求记述项的定冠词的使用。另外,即使明确地记述了被引导的权利要求记述项的具体数量,本领域技术人员将理解到这些记述项应当解释为至少表示所记述的数量(例如,没有其它修饰语的裸记述“两个记述项”表示至少两个记述项或两个以上的记述项)。此外,在使用类似于“A、B和C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。在使用类似于“A、B或C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B或C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。本领域技术人员将进一步理解,呈现两个以上可选项的几乎任何分离词和/或短语,无论是在说明书、权利要求或附图中,都应理解为设想包括一项、任一项或两项的可能性。例如,术语“A或B”将理解为包括“A”或“B”或“A和B”的可能性。
另外,在根据马库什组(Markush group)描述本公开的特征或方案的情况下,本领域技术人员将理解的是本公开也因此以马库什组的任何独立成员或成员的子组来描述。
本领域技术人员将理解的是,为了任何以及全部的目的,诸如在提供所撰写的说明书方面,本文所公开的全部范围也涵盖了任何和全部的可能的子范围及其子范围的组合。能够容易地认识到任何所列范围都充分地描述了同一范围并且使同一范围分解成至少均等的一半、三分之一、四分之一、五分之一、十分之一等等。作为非限制示例,本文所论述的每个范围能够容易地分解成下三分之一、中三分之一和上三分之一,等等。本领域技术人员还将理解的是,诸如“多达”、“至少”、“大于”、“小于”等所有的语言包括所记述的数量并且是指如上文所论述的随后能够分解成子范围的范围。最后,本领域技术人员将理解的是,范围包括每个独立的成员。因此,例如,具有1-3个单元的组是指具有1个、2个或3个单元的组。类似地,具有1-5个单元的组是指具有1个、2个、3个、4个、或5个单元的组,等等。
虽然本文公开了各个方案和实施例,但是其它的方案和实施例对于本领域技术人员而言将是显而易见的。因此,本文所公开的各个方案和实施例是为了示例的目的而不意在限制,真正的范围和精神是通过随附的权利要求表示的。

Claims (30)

1.一种将第一虚拟机镜像和第二虚拟机镜像从源存储器拷贝到目的地存储器的方法,所述方法包括:
将与所述第一虚拟机镜像对应的第一区块从临时存储器拷贝到所述目的地存储器,其中所述临时存储器包括存在于所述第一虚拟机镜像和所述第二虚拟机镜像的去重复数据;
标识所述临时存储器中与所述第二虚拟机镜像对应的第二区块;
将所述第二区块存储在缓冲器中;
标识所述临时存储器中与所述第一虚拟机镜像对应的第三区块;以及
将所述第三区块从所述临时存储器拷贝到所述目的地存储器。
2.如权利要求1所述的方法,还包括:
标识重复数据,其中所述重复数据存在于所述第一虚拟机镜像和第二虚拟机镜像中;以及
将所述重复数据从所述源存储器拷贝到所述临时存储器以生成去重复数据。
3.如权利要求2所述的方法,其中将所述重复数据从所述源存储器拷贝到所述临时存储器生成镜像区块映射。
4.如权利要求1所述的方法,还包括生成映射,其中所述映射标识所述临时存储器中的区块和与所述区块对应的虚拟机镜像。
5.如权利要求1所述的方法,还包括:
生成映射,其中所述映射标识所述临时存储器中的区块和与所述区块对应的虚拟机镜像;
并且其中所述映射包括
与所述第一虚拟机镜像对应的第一文件;以及
与所述第二虚拟机镜像对应的第二文件。
6.如权利要求1所述的方法,还包括:
生成映射,其中所述映射标识所述临时存储器中的区块和与所述区块对应的虚拟机镜像;
其中所述映射包括
与所述第一虚拟机镜像对应的第一文件;以及
与所述第二虚拟机镜像对应的第二文件;
其中所述第一文件和第二文件各自包括一个或多个区域;以及
每个区域都包括区块标识符字段、区域缓冲器计数字段、区块尺寸字段、存在字段和/或区域数量字段。
7.如权利要求1所述的方法,还包括:
生成映射,其中所述映射标识所述临时存储器中的区块和与所述区块对应的虚拟机镜像;
其中所述映射包括
与所述第一虚拟机镜像对应的第一文件;以及
与所述第二虚拟机镜像对应的第二文件;
其中所述第一文件包括两个以上区域,每个区域都包括与所述第一虚拟机镜像对应的去重复数据的连续区块的标识。
8.如权利要求1所述的方法,还包括
生成映射,其中所述映射标识所述临时存储器中的区块和与所述区块对应的虚拟机镜像;以及
其中所述映射指示区块是否存储在所述源存储器、目的地存储器和/或所述缓冲器中。
9.如权利要求1所述的方法,还包括
生成映射,其中所述映射标识所述临时存储器中的区块和与所述区块对应的虚拟机镜像;以及
其中所述映射包括区域计数字段,所述区域计数字段用于指示存储在所述缓冲器中的所述第二区块数量。
10.如权利要求1所述的方法,还包括:
将区块从所述临时存储器拷贝到所述目的地存储器中,直到所述缓冲器充满到第一阈值水平;
标识特定区域,其中所述特定区域的第二阈值百分比的区块存储在所述缓冲器中;以及
将与所述特定区域对应的一个或多个区块从所述临时存储器拷贝到所述目的地存储器。
11.如权利要求1所述的方法,还包括:
将区块从所述临时存储器拷贝到所述目的地存储器中,直到所述缓冲器充满到第一阈值水平;
标识特定区域,其中所述特定区域的第二阈值百分比的区块存储在所述缓冲器中;
将与所述特定区域对应的一个或多个区块从所述临时存储器拷贝到所述目的地存储器;以及
将与所述特定区域对应的区块从所述临时存储器拷贝到包括与所述特定区域对应的区块的其它虚拟机镜像中的其它区域。
12.如权利要求1所述的方法,还包括:
将区块从所述临时存储器拷贝到所述目的地存储器中,直到所述缓冲器充满到第一阈值水平;
响应于将所述第二区块存储在所述缓冲器中,使所述缓冲器中的计数器增量;以及
执行:
标识特定区域,其中所述特定区域的第二阈值百分比的区块存储在所述缓冲器中;
将与所述特定区域对应的一个或多个区块从所述临时存储器拷贝到所述目的地存储器中;
将与所述特定区域对应的区块从所述临时存储器拷贝到包括与所述特定区域对应的区块的其它虚拟机镜像中的其它区域;以及
当所述缓冲器中的区块被拷贝到所述目的地存储器时,将所述计数器减量;
直到所述缓冲器充满到第三阈值水平。
13.如权利要求1所述的方法,还包括:
将区块从所述临时存储器拷贝到所述目的地存储器,直到所述缓冲器充满到第一阈值水平;
标识特定区域,其中所述特定区域的第二阈值百分比的区块存储在所述缓冲器中;
将与所述特定区域对应的一个或多个区块从所述临时存储器拷贝到所述目的地存储器中;
将与所述特定区域对应的区块从所述临时存储器拷贝到包括与所述特定区域对应的区块的其它虚拟机镜像中的其它区域;
标识部分充满区域,所述部分充满区域包括从所述临时存储器拷贝到所述目的地存储器的一些区块;以及
将与所述部分充满区域对应的区块从所述临时存储器拷贝到所述目的地存储器。
14.如权利要求1所述的方法,还包括:
判定所述第一区块还对应于所述第二虚拟机镜像;
将所述第一区块存储在所述缓冲器中;
在将所述第一区块从所述缓冲器拷贝到所述目的地存储器中之前,将与所述第一虚拟机镜像对应的一个或多个区块从所述临时存储器拷贝到所述目的地存储器。
15.一种用于将第一虚拟机镜像和第二虚拟机镜像从源存储器拷贝到目的地存储器的系统,所述系统包括:
临时存储器;以及
处理器,其配置为与所述临时存储器通信且配置为与所述源存储器和所述目的地存储器通信,所述处理器用于:
将与所述第一虚拟机镜像对应的第一区块从所述临时存储器拷贝到所述目的地存储器,其中所述临时存储器包括存在于所述第一虚拟机镜像和所述第二虚拟机镜像中的去重复数据;
标识所述临时存储器中的与所述第二虚拟机镜像对应的第二区块;
将所述第二区块存储在缓冲器中;
标识所述临时存储器中的与所述第一虚拟机镜像对应的第三区块;以及
将所述第三区块从所述临时存储器拷贝到所述目的地存储器。
16.如权利要求15所述的系统,其中所述处理器进一步用于
标识重复数据,其中所述重复数据存在于所述第一虚拟机镜像和第二虚拟机镜像中;以及
将所述重复数据从所述源存储器拷贝到所述临时存储器以生成所述去重复数据。
17.如权利要求15所述的系统,其中所述处理器进一步用于生成映射,其中所述映射标识所述临时存储器中的区块和与所述区块对应的虚拟机镜像。
18.如权利要求15所述的系统,其中所述处理器进一步用于:
生成映射,其中所述映射标识所述临时存储器中的区块和与所述区块对应的虚拟机镜像;
并且其中所述映射包括
与所述第一虚拟机镜像对应的第一文件;以及
与所述第二虚拟机镜像对应的第二文件。
19.如权利要求15所述的系统,其中所述处理器进一步用于:
生成映射,其中所述映射标识所述临时存储器中的区块和与所述区块对应的虚拟机镜像;
其中所述映射包括
与所述第一虚拟机镜像对应的第一文件;以及
与所述第二虚拟机镜像对应的第二文件;
其中所述第一文件和第二文件各自包括一个或多个区域,并且
每个区域都包括区块标识符字段、区域缓冲器计数字段、区块尺寸字段、存在字段和/或区域数量字段。
20.如权利要求15所述的系统,其中所述处理器进一步用于:
生成映射,其中所述映射标识所述临时存储器中的区块和与所述区块对应的虚拟机镜像;
其中所述映射包括
与所述第一虚拟机镜像对应的第一文件;以及
与所述第二虚拟机镜像对应的第二文件;
其中所述第一文件包括两个以上区域,每个区域都包括与所述第一虚拟机镜像对应的所述去重复数据的连续区块的标识。
21.如权利要求15所述的系统,其中所述处理器进一步用于:
生成映射,其中所述映射标识所述临时存储器中的区块和与所述区块对应的虚拟机镜像;
其中所述映射指示区块是否存储在所述源存储器、目的地存储器和/或所述缓冲器中。
22.如权利要求15所述的系统,其中所述处理器进一步用于:
生成映射,其中所述映射标识所述临时存储器中的区块和与所述区块对应的虚拟机镜像;以及
其中所述映射包括区域计数字段、所述区域计数字段用于指示存储在所述缓冲器中的所述第二区块数量。
23.如权利要求15所述的系统,其中所述处理器进一步用于:
将区块从所述临时存储器拷贝到所述目的地存储器中,直到所述缓冲器充满到第一阈值水平;
标识特定区域,其中所述特定区域的第二阈值百分比的区块存储在所述缓冲器中;以及
将与所述特定区域对应的一个或多个区块从所述临时存储器拷贝到所述目的地存储器。
24.如权利要求15所述的系统,其中所述处理器进一步用于:
将区块从所述临时存储器拷贝到所述目的地存储器中,直到所述缓冲器充满到第一阈值水平;
标识特定区域,其中所述特定区域的第二阈值百分比的区块存储在所述缓冲器中;
将与所述特定区域对应的一个或多个区块从所述临时存储器拷贝到所述目的地存储器;以及
将与所述特定区域对应的所述区块从所述临时存储器拷贝到包括与所述特定区域对应的区块的其它虚拟机镜像中的其它区域中。
25.如权利要求15所述的系统,其中所述处理器进一步用于:
将区块从所述临时存储器拷贝到所述目的地存储器,直到所述缓冲器充满到第一阈值水平;
响应于将所述第二区块存储在所述缓冲器中,将所述缓冲器中的计数器增量;以及
执行
标识特定区域,其中所述特定区域的第二阈值百分比的区块存储在所述缓冲器中;
将与所述特定区域对应的一个或多个区块从所述临时存储器拷贝到所述目的地存储器中;
将与所述特定区域对应的区块从所述临时存储器拷贝到包括与所述特定区域对应的区块的其它虚拟机镜像中的其它区域;以及
当所述缓冲器中的区块拷贝到所述目的地存储器中时,使所述计数器减量;
直到所述缓冲器充满到第三阈值水平。
26.如权利要求15所述的系统,其中所述处理器进一步用于:
将区块从所述临时存储器拷贝到所述目的地存储器,直到所述缓冲器充满到第一阈值水平;
标识特定区域,其中所述特定区域的第二阈值百分比的区块存储在所述缓冲器中;
将与所述特定区域对应的一个或多个区块从所述临时存储器拷贝到所述目的地存储器中;
将与所述特定区域对应的区块从所述临时存储器拷贝到包括与所述特定区域对应的区块的其它虚拟机镜像中的其它区域;
标识部分充满区域,所述部分充满区域包括从所述临时存储器拷贝到所述目的地存储器的一些区块;以及
将与所述部分充满区域对应的区块从所述临时存储器拷贝到所述目的地存储器。
27.如权利要求15所述的系统,其中所述处理器进一步用于:
判定所述第一区块还对应于所述第二虚拟机镜像;
将所述第一区块存储在所述缓冲器中;
在所述第一区块从所述缓冲器拷贝到所述目的地存储器中之前,将与所述第一虚拟机镜像对应的一个或多个区块从所述临时存储器拷贝到所述目的地存储器。
28.一种用于将第一虚拟机镜像和第二虚拟机镜像从源存储器拷贝到目的地存储器的方法,所述方法包括:
标识重复数据,其中所述重复数据存在于所述第一虚拟机镜像和第二虚拟机镜像中;
将所述重复数据从所述源存储器拷贝到临时存储器以生成去重复数据和镜像区块映射;
基于所述镜像区块映射来生成文件映射,其中所述文件映射标识所述临时存储器中的区块以及与所述区块对应的虚拟机镜像;
将与所述第一虚拟机镜像对应的第一区块从所述临时存储器拷贝到所述目的地存储器;
标识所述临时存储器中与所述第二虚拟机镜像对应的第二区块;
将所述第二区块存储在缓冲器中;
标识所述临时存储器中与所述第一虚拟机镜像对应的第三区块;以及
将所述第三区块从所述临时存储器拷贝到所述目的地存储器;
其中所述文件映射包括
与所述第一虚拟机镜像对应的第一文件;
与所述第二虚拟机镜像对应的第二文件;
其中所述第一文件包括两个或两个以上区域,每个区域都包括与所述第一虚拟机镜像对应的所述去重复数据的连续区块的标识;
区块是否存储在所述源存储器、所述目的地存储器和/或所述缓冲器中的指示;以及
区域计数器,所述区域计数器用于指示存储在所述缓冲器中的所述第二区块的数量。
29.如权利要求28所述的方法,还包括:
将区块从所述临时存储器拷贝到所述目的地存储器中,直到所述缓冲器充满到第一阈值水平;
标识特定区域,其中所述特定区域的第二阈值百分比的区块存储在所述缓冲器中;
将与所述特定区域对应的一个或多个区块从所述临时存储器拷贝到所述目的地存储器;以及
将与所述特定区域对应的区块从所述临时存储器拷贝到包括与所述特定区域对应的区块的其它虚拟机镜像中的其它区域。
30.如权利要求28所述的方法,还包括:
将区块从所述临时存储器拷贝到所述目的地存储器中,直到所述缓冲器充满到第一阈值水平;
标识特定区域,其中所述特定区域的第二阈值百分比的区块存储在所述缓冲器中;
将与所述特定区域对应的一个或多个区块从所述临时存储器拷贝到所述目的地存储器;
将与所述特定区域对应的所述区块从所述临时存储器拷贝到包括与所述特定区域对应的区块的其它虚拟机镜像中的其它区域中;
标识部分充满区域,所述部分充满区域包括从所述临时存储器拷贝到所述目的地存储器的一些区块;以及
将与所述部分充满区域对应的区块从所述临时存储器拷贝到所述目的地存储器。
CN201280072728.4A 2012-04-27 2012-04-27 去重复虚拟机镜像转移器 Expired - Fee Related CN104364774B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2012/050267 WO2013159174A1 (en) 2012-04-27 2012-04-27 De-duplicated virtual machine image transfer

Publications (2)

Publication Number Publication Date
CN104364774A true CN104364774A (zh) 2015-02-18
CN104364774B CN104364774B (zh) 2017-10-20

Family

ID=49482049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280072728.4A Expired - Fee Related CN104364774B (zh) 2012-04-27 2012-04-27 去重复虚拟机镜像转移器

Country Status (4)

Country Link
US (2) US9886352B2 (zh)
KR (1) KR101782685B1 (zh)
CN (1) CN104364774B (zh)
WO (1) WO2013159174A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329798B (zh) * 2017-05-18 2021-02-23 华为技术有限公司 数据复制的方法、装置和虚拟化系统

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10091293B2 (en) * 2013-11-07 2018-10-02 Vmware, Inc. Rapid cloud-based image centralization
US9390095B2 (en) 2013-11-07 2016-07-12 Vmware, Inc. Rapid cloud-based image centralization
US9715346B2 (en) 2014-11-04 2017-07-25 Rubrik, Inc. Cluster-based network file server
KR101620219B1 (ko) 2014-11-18 2016-05-11 한양대학교 산학협력단 P2p 기반 중복제거를 이용한 가상머신 이미지 배포, 다운로드하는 방법 및 그 장치
US10491667B1 (en) * 2015-03-16 2019-11-26 Amazon Technologies, Inc. Customized memory modules in multi-tenant service provider systems
US10353803B2 (en) * 2017-08-21 2019-07-16 Facebook, Inc. Dynamic device clustering
US11221920B2 (en) 2017-10-10 2022-01-11 Rubrik, Inc. Incremental file system backup with adaptive fingerprinting
US11372729B2 (en) 2017-11-29 2022-06-28 Rubrik, Inc. In-place cloud instance restore
US10698722B2 (en) * 2018-11-27 2020-06-30 Sap Se Virtual machine migration across cloud computing providers
US11436036B2 (en) * 2020-06-23 2022-09-06 EMC IP Holding Company LLC Systems and methods to decrease the size of a compound virtual appliance file
US11599090B2 (en) * 2020-09-30 2023-03-07 Rockwell Automation Technologies, Inc. System and method of network synchronized time in safety applications

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100392580C (zh) * 2005-08-10 2008-06-04 国际商业机器公司 用于将数据写入镜像存储组件的装置和方法
CN101809559A (zh) * 2007-09-05 2010-08-18 伊姆西公司 在虚拟化服务器和虚拟化存储环境中的去重复
US20110066597A1 (en) * 2009-09-14 2011-03-17 Vmware, Inc. Method and System for Performing Live Migration of Persistent Data of a Virtual Machine

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8881282B1 (en) * 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US8584239B2 (en) * 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US8171553B2 (en) * 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US8375444B2 (en) * 2006-04-20 2013-02-12 Fireeye, Inc. Dynamic signature creation and enforcement
US7447854B1 (en) * 2005-12-30 2008-11-04 Vmware, Inc. Tracking and replicating changes to a virtual disk
JP5057366B2 (ja) * 2006-10-30 2012-10-24 株式会社日立製作所 情報システム及び情報システムのデータ転送方法
US7987469B2 (en) * 2006-12-14 2011-07-26 Intel Corporation RDMA (remote direct memory access) data transfer in a virtual environment
EP1962192A1 (en) * 2007-02-21 2008-08-27 Deutsche Telekom AG Method and system for the transparent migration of virtual machine storage
US8701106B2 (en) * 2008-11-30 2014-04-15 Red Hat Israel, Ltd. Hashing storage images of a virtual machine
US8161255B2 (en) 2009-01-06 2012-04-17 International Business Machines Corporation Optimized simultaneous storing of data into deduplicated and non-deduplicated storage pools
US9454368B2 (en) * 2009-01-21 2016-09-27 Vmware, Inc. Data mover permitting data transfer without transferring data between application and operating system
US8191065B2 (en) * 2009-04-06 2012-05-29 Red Hat Israel, Ltd. Managing virtual machine images
US8234468B1 (en) * 2009-04-29 2012-07-31 Netapp, Inc. System and method for providing variable length deduplication on a fixed block file system
US9582222B2 (en) * 2009-04-30 2017-02-28 Western Digital Technologies, Inc. Pre-cache similarity-based delta compression for use in a data storage system
JP5434705B2 (ja) * 2010-03-12 2014-03-05 富士通株式会社 ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
US20110264880A1 (en) * 2010-04-23 2011-10-27 Tatu Ylonen Oy Ltd Object copying with re-copying concurrently written objects
US8671238B2 (en) * 2010-07-13 2014-03-11 Vmware, Inc. Robust live migration using shared filesystem
US8706947B1 (en) * 2010-09-30 2014-04-22 Amazon Technologies, Inc. Virtual machine memory page sharing system
US8615588B2 (en) * 2011-01-20 2013-12-24 International Business Machines Corporation Accelerate copying of virtual machine images
US8712960B2 (en) * 2011-05-19 2014-04-29 Vmware, Inc. Method and system for parallelizing data copy in a distributed file system
US8819660B2 (en) * 2011-06-29 2014-08-26 Microsoft Corporation Virtual machine block substitution
US8996800B2 (en) * 2011-07-07 2015-03-31 Atlantis Computing, Inc. Deduplication of virtual machine files in a virtualized desktop environment
CN103782276B (zh) * 2011-09-13 2017-07-04 英派尔科技开发有限公司 从原始虚拟机到目的地虚拟机的操作转移
US9311375B1 (en) * 2012-02-07 2016-04-12 Dell Software Inc. Systems and methods for compacting a virtual machine file
US8897573B2 (en) * 2012-08-17 2014-11-25 International Business Machines Corporation Virtual machine image access de-duplication
US9250946B2 (en) * 2013-02-12 2016-02-02 Atlantis Computing, Inc. Efficient provisioning of cloned virtual machine images using deduplication metadata
US9471590B2 (en) * 2013-02-12 2016-10-18 Atlantis Computing, Inc. Method and apparatus for replicating virtual machine images using deduplication metadata

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100392580C (zh) * 2005-08-10 2008-06-04 国际商业机器公司 用于将数据写入镜像存储组件的装置和方法
CN101809559A (zh) * 2007-09-05 2010-08-18 伊姆西公司 在虚拟化服务器和虚拟化存储环境中的去重复
US20110066597A1 (en) * 2009-09-14 2011-03-17 Vmware, Inc. Method and System for Performing Live Migration of Persistent Data of a Virtual Machine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329798B (zh) * 2017-05-18 2021-02-23 华为技术有限公司 数据复制的方法、装置和虚拟化系统

Also Published As

Publication number Publication date
KR20140134323A (ko) 2014-11-21
US20180143878A1 (en) 2018-05-24
KR101782685B1 (ko) 2017-09-27
CN104364774B (zh) 2017-10-20
US9886352B2 (en) 2018-02-06
US20140188807A1 (en) 2014-07-03
WO2013159174A1 (en) 2013-10-31

Similar Documents

Publication Publication Date Title
CN104364774A (zh) 去重复虚拟机镜像转移器
CN102612685B (zh) 经由存储器高速缓存操纵的无阻碍数据传送
CN105190526B (zh) 对用于非易失性存储设备的存储器重新编址
US9251055B2 (en) Memory system and control method of memory system
US9053019B2 (en) Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices
US9195579B2 (en) Page replacement method and memory system using the same
US9697111B2 (en) Method of managing dynamic memory reallocation and device performing the method
US9880944B2 (en) Page replacement algorithms for use with solid-state drives
EP2478441A1 (en) Read and write aware cache
CN105493053A (zh) 多核处理器中的高速缓存划分
CN102859504B (zh) 复制数据的方法和系统以及获得数据副本的方法
US10366000B2 (en) Re-use of invalidated data in buffers
KR20200040544A (ko) 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 스토리지 장치, 및 상기 메모리 컨트롤러의 동작 방법
JP2015505623A (ja) ステージング・エリアを管理するためのコンピュータ実施プロセス、コンピュータ・プログラム製品、装置
US9703593B2 (en) Apparatus and method for memory overlay
CN105988875B (zh) 一种运行进程的方法及装置
KR102617154B1 (ko) 저장된 교체 정보를 갖는 스누프 필터, 이에 대한 방법 및 희생자 전용 캐시와 스누프 필터 공유 교체 정책을 포함하는 시스템
CN105765540A (zh) 管理用于非易失性存储器的传输缓冲器
US11461225B2 (en) Storage device, control method of storage device, and storage medium
US20100115529A1 (en) Memory management apparatus and method
US20160140034A1 (en) Devices and methods for linked list array hardware implementation
US20150026394A1 (en) Memory system and method of operating the same
KR102356704B1 (ko) 컴퓨팅 장치 및 컴퓨팅 장치에서 연산들을 처리하는 방법
KR20160015793A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN110119361A (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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171020

Termination date: 20200427

CF01 Termination of patent right due to non-payment of annual fee