CN106445643A - 克隆、升级虚拟机的方法及设备 - Google Patents

克隆、升级虚拟机的方法及设备 Download PDF

Info

Publication number
CN106445643A
CN106445643A CN201611032352.0A CN201611032352A CN106445643A CN 106445643 A CN106445643 A CN 106445643A CN 201611032352 A CN201611032352 A CN 201611032352A CN 106445643 A CN106445643 A CN 106445643A
Authority
CN
China
Prior art keywords
virtual machine
file
storage device
main storage
delta file
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
CN201611032352.0A
Other languages
English (en)
Other versions
CN106445643B (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.)
Shanghai Axis Mdt Infotech Ltd
Original Assignee
Shanghai Axis Mdt Infotech 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 Shanghai Axis Mdt Infotech Ltd filed Critical Shanghai Axis Mdt Infotech Ltd
Priority to CN201611032352.0A priority Critical patent/CN106445643B/zh
Publication of CN106445643A publication Critical patent/CN106445643A/zh
Application granted granted Critical
Publication of CN106445643B publication Critical patent/CN106445643B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请的目的是提供一种克隆、升级虚拟机的方案,该方案该方案会对镜像服务器上的镜像文件进行去重的校验,仅从第一主存储设备复制虚拟机的第一增量文件,根据根据所述第一增量文件和其索引关系,可以确定所述虚拟机的完整镜像文件;然后在向第二主存储设备传输镜像文件时,也会根据所述完整镜像文件以及第二主存储设备中关于所述虚拟机的已有镜像文件,确定所述虚拟机的第二增量文件,仅将所述虚拟机的第二增量文件发送至所述第二主存储设备,由于整个克隆过程中仅需要传输变化的部分,大大降低了存储资源和网络资源的开销,能够缩短整个克隆过程的处理时间,使得本方案可以支持多个虚拟机同时克隆的场景。

Description

克隆、升级虚拟机的方法及设备
技术领域
本申请涉及信息技术领域,尤其涉及一种克隆、升级虚拟机的方法及设备。
背景技术
云计算作为一种新兴的资源供应模式,近年来得到了快速的发展。云计算旨在低成本地为用户按需提供高质量的弹性云服务。云计算提供的虚拟机服务有利于降低用户的IT成本,提高云供应商的资源利用率和管理能力,这种方式也存在资源滥用问题。由于虚拟机的创建成本较低,用户往往为不同的任务创建不同的虚拟机,由虚拟机产生的镜像文件是用户使用环境的备份文件。当虚拟机出现异常状况时,镜像文件可以为用户恢复备份时的使用场景。
在云计算领域,只有少数IaaS(Infrastructure as a Service,基础设施即服务)产品支持虚拟机克隆技术。目前,实现虚拟机克隆的一个传统方法是利用虚拟机已有的静态克隆功能,即挂起/恢复虚拟机,通过在一台主存储设备上挂起正在运行的虚拟机,然后把保存的镜像文件拷贝到另一主存储设备中,然后恢复虚拟机的运行。因此,现有技术中,虚拟机的克隆操作只能一个一个对虚拟机进行,效率交底,同时,全盘克隆会占用更多的存储资源,存储的过程和逐个处理的操作都会导致克隆过程消耗的时间较长。
申请内容
本申请的一个目的是提供一种克隆、升级虚拟机的方法及设备,用以解决现有技术中在克隆、升级虚拟机的过程中资源开销较大、消耗时间长的问题。
为实现上述目的,本申请提供了一种在镜像服务器端辅助克隆虚拟机的方法,该方法包括:
从第一主存储设备获取虚拟机的第一增量文件;
根据所述第一增量文件和其索引关系,确定所述虚拟机的完整镜像文件;
根据所述完整镜像文件以及第二主存储设备中关于所述虚拟机的已有镜像文件,确定所述虚拟机的第二增量文件;
将所述虚拟机的第二增量文件发送至所述第二主存储设备,以使所述第二主存储设备根据第二增量文件和已有镜像文件创建所述虚拟机,并对所述虚拟机进行配置。
相应地,本申请还提供一种在第二主存储设备端克隆虚拟机的方法,该方法包括:
从镜像服务器获取虚拟机的第二增量文件;
根据第二增量文件和已有镜像文件创建所述虚拟机,并对所述虚拟机进行配置,其中,所述虚拟机的完整镜像文件包括所述第二增量文件和所述已有镜像文件。
进一步地,该方法还包括:
为创建的所述虚拟机添加标签,其中,属于同一克隆组的虚拟机的标签相同。
此外,本申请还提供一种在镜像服务器端辅助升级虚拟机的方法,该方法包括:
从第一主存储设备获取已升级虚拟机的第一增量文件;
根据所述第一增量文件和其索引关系,确定所述已升级虚拟机的完整镜像文件;
根据所述完整镜像文件以及第二主存储设备中关于待升级虚拟机的已有镜像文件,确定待升级虚拟机的第二增量文件,其中,所述待升级虚拟机和已升级虚拟机属于统一克隆组;
将所述待升级虚拟机的第二增量文件发送至所述第二主存储设备,以使所述第二主存储设备根据第二增量文件和已有镜像文件更新所述待升级虚拟机。
相应地,本申请还提供一种在第二主存储设备端升级虚拟机的方法,该方法包括:
从镜像服务器获取待升级虚拟机的第二增量文件;
根据第二增量文件和已有镜像文件更新所述待升级虚拟机,其中,所述待升级虚拟机的完整镜像文件包括所述第二增量文件和所述已有镜像文件。
基于本申请的另一方面,还提供了一种镜像服务器,该镜像服务器包括:
接收装置,用于从第一主存储设备获取虚拟机的第一增量文件;
镜像组织装置,用于根据所述第一增量文件和其索引关系,确定所述虚拟机的完整镜像文件;
去重检测装置,用于根据所述完整镜像文件以及第二主存储设备中关于所述虚拟机的已有镜像文件,确定所述虚拟机的第二增量文件;
发送装置,用于将所述虚拟机的第二增量文件发送至所述第二主存储设备,以使所述第二主存储设备根据第二增量文件和已有镜像文件创建所述虚拟机,并对所述虚拟机进行配置。
本申请还提供了一种第二主存储设备,该设备包括:
接收装置,用于从镜像服务器获取虚拟机的第二增量文件;
创建装置,用于根据第二增量文件和已有镜像文件创建所述虚拟机,并对所述虚拟机进行配置,其中,所述虚拟机的完整镜像文件包括所述第二增量文件和所述已有镜像文件。
进一步地,该设备还包括:
创建装置,还用于为创建的所述虚拟机添加标签,其中,属于同一克隆组的虚拟机的标签相同。
此外,本申请还提供了另一种镜像服务器,其中,该镜像服务器包括:
接收装置,用于从第一主存储设备获取已升级虚拟机的第一增量文件;
镜像组织装置,用于根据所述第一增量文件和其索引关系,确定所述已升级虚拟机的完整镜像文件;
去重检测装置,用于根据所述完整镜像文件以及第二主存储设备中关于待升级虚拟机的已有镜像文件,确定待升级虚拟机的第二增量文件,其中,所述待升级虚拟机和已升级虚拟机属于统一克隆组;
发送装置,用于将所述待升级虚拟机的第二增量文件发送至所述第二主存储设备,以使所述第二主存储设备根据第二增量文件和已有镜像文件更新所述待升级虚拟机。
相应地,本申请还提供了另一种第二主存储设备,其中,该设备包括:
接收装置,用于从镜像服务器获取待升级虚拟机的第二增量文件;
创建装置,用于根据第二增量文件和已有镜像文件更新所述待升级虚拟机,其中,所述待升级虚拟机的完整镜像文件包括所述第二增量文件和所述已有镜像文件。:
与现有技术相比,本申请提供了克隆虚拟机的方案,该方案会对镜像服务器上的镜像文件进行去重的校验,仅从第一主存储设备复制虚拟机的第一增量文件,根据根据所述第一增量文件和其索引关系,可以确定所述虚拟机的完整镜像文件;然后在向第二主存储设备传输镜像文件时,也会根据所述完整镜像文件以及第二主存储设备中关于所述虚拟机的已有镜像文件,确定所述虚拟机的第二增量文件,仅将所述虚拟机的第二增量文件发送至所述第二主存储设备,由于整个克隆过程中仅需要传输变化的部分,大大降低了存储资源和网络资源的开销,能够缩短整个克隆过程的处理时间,使得本方案可以支持多个虚拟机同时克隆的场景。
进一步地,在克隆过程中可以为每个启动的虚拟机添加一个可选的标签,对于虚拟机进行分组,使得同一个克隆组的虚拟机具有相同的标签。由此,在对这些虚拟机进行升级时,可以基于克隆组的标签进行批量操作,保留原虚拟机的配置信息,无需重新进行配置,由此可以便捷地对一组虚拟机进行版本控制,避免额外的存储资源和网络资源的开销。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为采用本申请实施例提供的虚拟机克隆、升级方案的系统的拓扑结构图;
图2为本申请实施例所提供的系统中第一主存储设备、第二主存储设备以及镜像服务器之间在进行虚拟机克隆时的交互示意图;
图3为主存储设备中虚拟机运行时的组成示意图;
图4为第一主存储设备、第二主存储设备以及镜像服务器进行交互时的原理图;
图5为本申请实施例中镜像服务器确定虚拟机的完整镜像文件的处理流程图;
图6为本申请实施例中镜像服务器确定虚拟机的完整镜像文件的切片文件时进行校验的处理流程图;
图7为本申请实施例所提供的系统中第一主存储设备、第二主存储设备以及镜像服务器之间在进行虚拟机升级时的交互示意图;
图8示为本申请实施例所提供的系统中第一主存储设备、第二主存储设备以及镜像服务器的结构示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例提供了一种克隆虚拟机的方案,该方案适用于如图1所示的系统,该系统包括第一主存储设备110、第二主存储设备120以及镜像服务器130。其中,所述第一主存储设备110是指运行需要被克隆的虚拟机的设备,所述第二主存储设备120是指用于创建克隆的虚拟机的设备,所述第一主存储设备110和第二主存储设备120的具体实现方式可以是:提供计算资源的物理机以及为该物理机提供存储资源的主存储。所述镜像服务器用于存储虚拟机的镜像文件,其具体实现可以包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
在克隆过程中,所述第一主存储设备110、第二主存储设备120以及镜像服务器130之间的交互过程如图2所示,具体包括:
步骤S101,第一主存储设备会基于当前所运行的虚拟机生成第一增量文件。在实际场景下,正在运行过程的虚拟机可以理解为由两部分组成,如图3所示,包括用于镜像(image)和根卷文件(rootvolume),其中,所述image可以理解为初始镜像文件(base)以及快照文件(snapshot)的组合。base是指第一主存储设备的首次创建该虚拟机时所使用的镜像,snapshot是指用户在每次创建虚拟机的备份时所进行的更改的部分,snapshot可能没有,也可能有一个或者多个。rootvolume是指虚拟机在运行过程中不断变化的部分,当进行克隆操作时,会锁定(freeze)当前的rootvolume,使其变为只读(readonly)状态,例如图4中所示的rootvolume0。其中,rootvolume0结合image0,即为第一主存储设备中所运行的虚拟机的完整镜像文件,而此时虚拟机可以基于最上层的rootvolume继续运行,不影响虚拟机正常提供服务。
由于虚拟机的完整镜像文件的数据量一般都较大,达到几十甚至几百GB(GigaByte,千兆字节),若将整个完整的镜像文件直接发送至镜像服务器,将会消耗较大的存储资源和网络资源。由此,第一主存储设备会根据当前运行的虚拟机的完整镜像文件和镜像服务器中保存的该虚拟机已经创建的镜像文件进行去重校验,去重后确定的结果即为第一增量文件。所述第一增量文件即为一个snapshot。
步骤S102,第一主存储设备向镜像服务器发送所述虚拟机的第一增量文件。
步骤S103,镜像服务器从第一主存储设备获取虚拟机的第一增量文件。
步骤S104,镜像服务器根据所述第一增量文件和其索引关系,确定所述虚拟机的完整镜像文件。其中,所述第一增量文件是指相较于当前的镜像服务器、第一主存储设备上虚拟机新生成的文件(例如可以是一个或者多个快照文件snapshot,即快照文件的集合)。在实施例中的一个场景下,由于镜像服务器中已经保存有该虚拟机已经创建的镜像文件,假设该虚拟机已经备份过两次,则已经创建的镜像文件包括:用于首次创建该虚拟机的初始镜像文件base0,以及后续两次备份虚拟机时创建的增量文件snapshot1、snapshot2,此时,第一增量文件即为snapshot3。一个完整的镜像文件可以由初始镜像文件以及依次生成的至少一个增量文件恢复组成,所述第一增量文件snapshot3的索引关系能够指向其父级文件(即前一次备份时所创建的镜像文件)snapshot2,同理,基于snapshot2的索引关系可以确定其父级文件为snapshot1,进而进一步确定snapshot1的父级文件base0,而base0本身没有父级文件。由此可知,第一主存储设备中当前运行的虚拟机的完整镜像文件image包括:base0+snapshot1+snapshot2+snapshot3。在另一可能的场景下,若第一主存储设备上虚拟机在进行克隆时,已经生成过两次快照文件,则所述第一增量文件可以是多个快照文件,即snapshot3和snapshot4的集合。
在实际场景中,镜像服务器确定虚拟机的完整镜像文件的处理流程如图5所示,具体包括:
步骤S501,基于所述第一增量文件和索引关系确定所述第一增量文件的父级文件。即上例中,第一增量文件为snapshot3,基于snapshot3以及索引关系可以确定其父级文件为snapshot2。
步骤S502,检测所述父级文件是否为所述目标镜像文件的初始镜像文件。即检测snapshot2是否为初始镜像文件,在实际场景中,可以通过检测snapshot2是否存在父级文件的方式来确定,若snapshot2也存在父级文件,则可以确定其并非初始镜像文件,此时检测结果为否。若此步骤中检测的是父级文件为base0,由于没有指向其他文件的索引关系,则可以确定其不存在父级文件,此时检测结果为是。
步骤S503,在检测结果为是时,根据所述第一增量文件作和初始镜像文件确定完整镜像文件。例如,假设snapshot3的父级文件为base0,则可以确定所有的增量文件仅有一个,即snapshot3,其父级文件即为初始镜像文件base0。
步骤S504,在检测结果为否时,将所述父级文件作为中间增量文件。对于包含多个增量文件的完整镜像文件中,除第一增量文件之外的其他任意一个增量文件,均可以算作中间增量文件。例如,对于本实施例中的第一增量文件snapshot3而言,其父级文件snapshot2以及snapshot2的父级文件snapshot1均记作中间增量文件,以进行后续的迭代处理。
步骤S505,基于所述中间增量文件和索引关系确定所述中间增量文件的父级文件,并采用迭代的方式检测所述父级文件是否为所述目标镜像文件的初始镜像文件,直至检测结果为是。对所述中间增量文件如步骤S501、S502的迭代处理,以逐层查找到索引关系所指向的其他中间增量文件以及最终的初始镜像文件base0。
步骤S506,根据第一增量文件、中间增量文件和初始镜像文件确定所述虚拟机的完整镜像文件。基于上述步骤的处理过程可以基于第一增量文件及其索引关系逐级确定父级文件,父级文件可能是中间增量文件,也有可能是初始镜像文件,最终可以确定第一主存储设备当前正在运行的虚拟机的完整镜像文件image包含:base0+snapshot1+snapshot2+snapshot3。
步骤S104,在确定完整镜像文件之后,镜像服务器根据所述完整镜像文件以及第二主存储设备中关于所述虚拟机的已有镜像文件,确定所述虚拟机的第二增量文件。由于第二主存储设备中有可能已经存在启动所述虚拟机所需要的部分镜像文件,例如已经存储有base0和snapshot1,若此时镜像服务器仍然向第二主存储设备发送包含base0+snapshot1+snapshot2+snapshot3的image,将会造成网络资源和存储资源的浪费。因此,在向第二主存储设备发送之前,镜像服务器仍会进行一次去重的检测,以节约网络和存储资源。通过去重检测,确定第二主存储设备中关于所述虚拟机的已有镜像文件为base0和snapshot1,则此时所述虚拟机的第二增量文件即为snapshot2和snapshot3。
步骤S105,镜像服务器将所述虚拟机的第二增量文件发送至所述第二主存储设备。
步骤S106,第二主存储设备从镜像服务器获取虚拟机的第二增量文件。
步骤S107,第二主存储设备根据第二增量文件和已有镜像文件创建所述虚拟机,并对所述虚拟机进行配置。在此,所述第二增量文件是指相较于镜像服务器中最新的虚拟机镜像文件,第二主存储设备上的已有镜像文件所缺少的部分,与所述第一增量文件类似,第二增量文件同样可以是是一个或者多个快照文件snapshot,即快照文件的集合。在本实施例中,所述第二增量文件为snapshot2和snapshot3,已有镜像文件为base0和snapshot1,由此可以确定所述虚拟机的完整镜像文件image。在实际场景中,虚拟机的配置信息记录于数据库中,第二主存储设备在基于完整镜像文件创建所述虚拟机之后,可以从数据库中读取虚拟机的配置信息,基于配置信息对创建的虚拟机进行配置。所述配置信息用于记录所述虚拟机的相关配置信息,例如计算规格、CPU、内存等信息,以便于第二主存储设备能够启动完全相同的虚拟机。由此,使得新启动的虚拟机与原虚拟机的配置信息完全一致,从而完成整个克隆过程。
进一步地,在所述镜像服务器中的镜像文件(包括初始镜像文件和作为增量文件的快照文件)均采用切片文件(chunk)的形式保存,如图4中所示,每个切片文件的数据量大小相对于整个镜像文件或者增量文件来说,相对较小,例如可以设置为4MB。同时,与第一主存储设备和第二主存储设备之间传输的第一增量文件和第二增量文件也同样可以采用切片文件的形式进行并行传输,以提高传输的效率。由此可知,在实际场景中,所述第一增量文件和第二增量文件均可以理解为切片文件的集合,包含一个或多个切片文件。
由于第一增量文件、中间增量文件和初始镜像文件的是由较多的切片文件组成,因此在查找到之后,对其进行校验,能够保证每个增量文件以及初始镜像文件的完整性,以避免出现查找到的切片文件缺失、错误等情况。因此,在确定每个增量文件或者初始镜像文件的切片文件时,可以采用如下的方式:
首先,基于所述第一增量文件和索引关系查询所述目标镜像文件所有的增量文件对应的切片文件、以及初始镜像文件对应的切片文件。
然后,对每个增量文件或初始镜像文件的切片文件进行校验。
最终,将校验成功的所述切片文件确定为所述增量文件或初始镜像文件对应的切片文件。以此来保证增量文件和初始镜像文件对应的切片文件的正确性。
为了保证校验的准确性,可以采用如图6所示的校验方式,具体包括以下步骤:
步骤S601,获取每个增量文件或初始镜像文件的切片文件的摘要(digest)。该摘要可以是由第一主存储设备在生成切片文件时,根据每个切片文件的内容生成。
步骤S602,根据所述摘要生成第一汇总摘要,其中,所述第一汇总摘要与所述初始镜像文件或每个增量文件的切片文件的摘要对应,且映射关系唯一。具体地,生成第一汇总摘要的具体方式为将所有的摘要进行hash计算,得到一个hash值,即作为第一汇总摘要。
步骤S603,将生成的第一汇总摘要与所述增量文件或初始镜像文件的汇总摘要第二汇总摘要进行比较,若相同,则校验成功。其中,所述第一汇总摘要和第二汇总摘要均是由切片文件(chunk)的摘要(digest)通过hash计算生成的汇总摘要(blobsum),两者区别在于是在不同的处理阶段基于对应的chunk所生成的。所述第二汇总摘要是指在第一主存储设备在生成这些切片文件及其摘要进行hash计算得到的hash值,因此该第二汇总摘要是基于正确的切片文件的摘要得到的标准值。而所述第一汇总摘要是在导出虚拟机镜像时,由查找的到某一初始镜像文件或增量文件的chunk所生成。为了验证导出时所查找到的chunk是否正确,需要将查找到的chunk的digest进行hash计算,得到该第一汇总摘要,然后与创建镜像时基于所有正确的chunk的digest所生成的第二汇总摘要比较,若两者相同,则表示导出时所查找到的chunk是正确、完整的,由此完整校验过程。
在实际场景中,所述索引关系可以采用描述文件的形式来保存。本申请实施例中,所述描述文件可以采用JSON(JavaScript Object Notation,JavaScript对象表示法)文件,其用于描述一个增量文件或者初始镜像文件的信息,以某一增量文件的描述文件为例,如下示出了该描述文件的一种可行的定义方式,:
{
"id":"snapshot-id1",
"parents":["snapshot-id2"]
"blobsum":"5f3b8cd435fa",
"created":"2016-03-28T21:19:18.674353812Z",
"author":"Alyssa P.Hacker",
"architecture":"amd64",
"size":271828,
"name":"ubuntu",
"desc":"An ubuntu base snapshot",
}
其中,id表示该增量文件的标识信息;
parents表示该增量文件的父级文件信息;
blobsum表示该增量文件的汇总摘要第二汇总摘要;
created表示该增量文件的创建时间信息;
autho表示该增量文件的创建者信息;
architecture表示该增量文件的对应的虚拟机的操作系统信息;
size表示该增量文件的数据量;
name表示该增量文件对应的虚拟机镜像文件的名称;
desc表示该增量文件的其它描述信息。
进一步地,对于其中的blobsum项,可以进一步定义该blobsum的json文件,用于每个chunk查找和校验
chunks的内容为该bolbsum对应的所有chunk的digest。//blobsum=sha256(chunks[0],chunks[1],...,chunks[n]),表示基于这些chunk的digest进行hash计算得到256位长度的blobsum。
由于该方案会对镜像服务器上的镜像文件进行去重的校验,仅从第一主存储设备复制虚拟机的第一增量文件,根据根据所述第一增量文件和其索引关系,可以确定所述虚拟机的完整镜像文件;然后在向第二主存储设备传输镜像文件时,也会根据所述完整镜像文件以及第二主存储设备中关于所述虚拟机的已有镜像文件,确定所述虚拟机的第二增量文件,仅将所述虚拟机的第二增量文件发送至所述第二主存储设备,由于整个克隆过程中仅需要传输变化的部分,大大降低了存储资源和网络资源的开销,能够缩短整个克隆过程的处理时间,使得本方案可以支持多个虚拟机同时克隆的场景。
在实际场景中,由于被批量克隆出来的虚拟机经常用于提供某同构服务,而当其中某台虚拟机获得重要升级时,往往需要将此升级同步到其它对等虚拟机中。在现有技术中,用户需要对第一主存储设备中更新后的虚拟机,在第二主存储设备中批量克隆,然后删除第二主存储设备中的旧虚拟机。在此过程中会造成额外的存储、网络资源的开销,同时批量创建虚拟机也可能面临所在虚拟网络的IP资源不足的问题。
为解决上述问题,可以通过标签(tag)的方式标记一个克隆组,以实现虚拟机的分组。具体地,第二主存储设备在创建虚拟机时,还可以为创建的所述虚拟机添加标签,其中,属于同一克隆组的虚拟机的标签相同。
基于区分克隆组后的系统,对某一克隆组的所有虚拟机进行升级的处理步骤如图7所示,具体包括:
步骤S701,第一主存储设备会基于当前所运行的虚拟机生成第一增量文件。该虚拟机为已经完成升级的、最新内容的虚拟机。
步骤S702,镜像服务器从第一主存储设备获取已升级虚拟机的第一增量文件。
步骤S703,镜像服务器根据所述第一增量文件和其索引关系,确定所述已升级虚拟机的完整镜像文件。
步骤S704,镜像服务器根据所述完整镜像文件以及第二主存储设备中关于待升级虚拟机的已有镜像文件,确定待升级虚拟机的第二增量文件,其中,所述待升级虚拟机和已升级虚拟机属于统一克隆组。
步骤S705,镜像服务器将所述待升级虚拟机的第二增量文件发送至所述第二主存储设备,以使所述第二主存储设备根据第二增量文件和已有镜像文件更新所述待升级虚拟机。
步骤S706,第二主存储设备从镜像服务器获取待升级虚拟机的第二增量文件。
步骤S707,第二主存储设备根据第二增量文件和已有镜像文件更新所述待升级虚拟机,其中,所述待升级虚拟机的完整镜像文件包括所述第二增量文件和所述已有镜像文件。
在虚拟机升级过程中,相关镜像文件的传输、存储、创建等过程的处理方式与克隆过程类似,此处不再赘述。与前述克隆虚拟机的处理过程不同之处在于,第二主存储设备在更新虚拟机之后,不需要重新进行配置,直接保留原虚拟机的配置信息,由此可以便捷地实现对各个克隆组的虚拟机进行版本控制,避免额外的存储资源和网络资源的开销。
基于同一发明构思,本申请实施例中还提供了第一主存储设备、第二主存储设备和镜像服务器,该上述设备和服务器对应的方法是前述实施例中的克隆或者升级方法,并且其解决问题的原理与所述方法相似。
图8示出了所述第一主存储设备110、第二主存储设备120和镜像服务器130的具体结构示意图。其中,所述第一主存储设备110包括生成装置111和发送装置112。具体地,所述生成装置111用于基于当前所运行的虚拟机生成第一增量文件。
在实际场景下,正在运行过程的虚拟机可以理解为由两部分组成,如图3所示,包括用于镜像(image)和根卷文件(rootvolume),其中,所述image可以理解为初始镜像文件(base)以及快照文件(snapshot)的组合。base是指第一主存储设备的首次创建该虚拟机时所使用的镜像,snapshot是指用户在每次创建虚拟机的备份时所进行的更改的部分,snapshot可能没有,也可能有一个或者多个。rootvolume是指虚拟机在运行过程中不断变化的部分,当进行克隆操作时,会锁定(freeze)当前的rootvolume,使其变为只读(readonly)状态,例如图4中所示的rootvolume0。其中,rootvolume0结合image0,即为第一主存储设备中所运行的虚拟机的完整镜像文件,而此时虚拟机可以基于最上层的rootvolume继续运行,不影响虚拟机正常提供服务。
由于虚拟机的完整镜像文件的数据量一般都较大,达到几十甚至几百GB(GigaByte,千兆字节),若将整个完整的镜像文件直接发送至镜像服务器,将会消耗较大的存储资源和网络资源。由此,第一主存储设备会根据当前运行的虚拟机的完整镜像文件和镜像服务器中保存的该虚拟机已经创建的镜像文件进行去重校验,去重后确定的结果即为第一增量文件。所述第一增量文件即为一个snapshot。
而所述发送装置112用于向镜像服务器发送所述虚拟机的第一增量文件。
所述镜像服务器130包括接收装置131、镜像组织装置132、去重检测装置133和发送装置134。具体地,所述接收装置131用于从第一主存储设备获取虚拟机的第一增量文件。所述镜像组织装置132用于根据所述第一增量文件和其索引关系,确定所述虚拟机的完整镜像文件。
其中,所述第一增量文件是指相较于当前的镜像服务器、第一主存储设备上虚拟机新生成的文件(例如可以是一个或者多个快照文件snapshot,即快照文件的集合)。在实施例中的一个场景下,由于镜像服务器中已经保存有该虚拟机已经创建的镜像文件,假设该虚拟机已经备份过两次,则已经创建的镜像文件包括:用于首次创建该虚拟机的初始镜像文件base0,以及后续两次备份虚拟机时创建的增量文件snapshot1、snapshot2。此时,第一增量文件即为snapshot3。一个完整的镜像文件可以由初始镜像文件以及依次生成的至少一个增量文件恢复组成,所述第一增量文件snapshot3的索引关系能够指向其父级文件(即前一次备份时所创建的镜像文件)snapshot2,同理,基于snapshot2的索引关系可以确定其父级文件为snapshot1,进而进一步确定snapshot1的父级文件base0,而base0本身没有父级文件。由此可知,第一主存储设备中当前运行的虚拟机的完整镜像文件image包括:base0+snapshot1+snapshot2+snapshot3。在另一可能的场景下,若第一主存储设备上虚拟机在进行克隆时,已经生成过两次快照文件,则所述第一增量文件可以是多个快照文件,即snapshot3和snapshot4的集合。
在实际场景中,镜像服务器的所述镜像组织装置132在确定虚拟机的完整镜像文件时,其具体的处理流程如图5所示,具体包括:
步骤S501,基于所述第一增量文件和索引关系确定所述第一增量文件的父级文件。即上例中,第一增量文件为snapshot3,基于snapshot3以及索引关系可以确定其父级文件为snapshot2。
步骤S502,检测所述父级文件是否为所述目标镜像文件的初始镜像文件。即检测snapshot2是否为初始镜像文件,在实际场景中,可以通过检测snapshot2是否存在父级文件的方式来确定,若snapshot2也存在父级文件,则可以确定其并非初始镜像文件,此时检测结果为否。若此步骤中检测的是父级文件为base0,由于没有指向其他文件的索引关系,则可以确定其不存在父级文件,此时检测结果为是。
步骤S503,在检测结果为是时,根据所述第一增量文件作和初始镜像文件确定完整镜像文件。例如,假设snapshot3的父级文件为base0,则可以确定所有的增量文件仅有一个,即snapshot3,其父级文件即为初始镜像文件base0。
步骤S504,在检测结果为否时,将所述父级文件作为中间增量文件。对于包含多个增量文件的完整镜像文件中,除第一增量文件之外的其他任意一个增量文件,均可以算作中间增量文件。例如,对于本实施例中的第一增量文件snapshot3而言,其父级文件snapshot2以及snapshot2的父级文件snapshot1均记作中间增量文件,以进行后续的迭代处理。
步骤S505,基于所述中间增量文件和索引关系确定所述中间增量文件的父级文件,并采用迭代的方式检测所述父级文件是否为所述目标镜像文件的初始镜像文件,直至检测结果为是。对所述中间增量文件如步骤S501、S502的迭代处理,以逐层查找到索引关系所指向的其他中间增量文件以及最终的初始镜像文件base0。
步骤S506,根据第一增量文件、中间增量文件和初始镜像文件确定所述虚拟机的完整镜像文件。基于上述步骤的处理过程可以基于第一增量文件及其索引关系逐级确定父级文件,父级文件可能是中间增量文件,也有可能是初始镜像文件,最终可以确定第一主存储设备当前正在运行的虚拟机的完整镜像文件image包含:base0+snapshot1+snapshot2+snapshot3。
在确定完整镜像文件之后,所述去重去重检测装置133根据所述完整镜像文件以及第二主存储设备中关于所述虚拟机的已有镜像文件,确定所述虚拟机的第二增量文件。由于第二主存储设备中有可能已经存在启动所述虚拟机所需要的部分镜像文件,例如已经存储有base0和snapshot1,若此时镜像服务器仍然向第二主存储设备发送包含base0+snapshot1+snapshot2+snapshot3的image,将会造成网络资源和存储资源的浪费。因此,在向第二主存储设备发送之前,镜像服务器仍会进行一次去重的检测,以节约网络和存储资源。通过去重检测,确定第二主存储设备中关于所述虚拟机的已有镜像文件为base0和snapshot1,则此时所述虚拟机的第二增量文件即为snapshot2和snapshot3。
所述发送装置134用于将所述虚拟机的第二增量文件发送至所述第二主存储设备。
相应地,所述第二主存储设备包括接收装置121和创建装置122。所述接收装置121用于从镜像服务器获取虚拟机的第二增量文件。创建装置122用于根据第二增量文件和已有镜像文件创建所述虚拟机,并对所述虚拟机进行配置。在此,所述第二增量文件是指相较于镜像服务器中最新的虚拟机镜像文件,第二主存储设备上的已有镜像文件所缺少的部分,与所述第一增量文件类似,第二增量文件同样可以是是一个或者多个快照文件snapshot,即快照文件的集合。在本实施例中,所述第二增量文件为snapshot2和snapshot3,已有镜像文件为base0和snapshot1,由此可以确定所述虚拟机的完整镜像文件image。在实际场景中,虚拟机的配置信息记录于数据库中,第二主存储设备在基于完整镜像文件创建所述虚拟机之后,可以从数据库中读取虚拟机的配置信息,基于配置信息对创建的虚拟机。所述配置信息用于记录所述虚拟机的相关配置信息,例如计算规格、CPU、内存等信息,以便于第二主存储设备能够启动完全相同的虚拟机。由此,使得新启动的虚拟机与原虚拟机的配置信息完全一致,从而完成整个克隆过程。
进一步地,在所述镜像服务器中的镜像文件(包括初始镜像文件和作为增量文件的快照文件)均采用切片文件(chunk)的形式保存,如图4中所示,每个切片文件的数据量大小相对于整个镜像文件或者增量文件来说,相对较小,例如可以设置为4MB。同时,与第一主存储设备和第二主存储设备之间传输的第一增量文件和第二增量文件也同样可以采用切片文件的形式进行并行传输,以提高传输的效率。由此可知,在实际场景中,所述第一增量文件和第二增量文件均可以理解为切片文件的集合,包含一个或多个切片文件。
由于第一增量文件、中间增量文件和初始镜像文件的是由较多的切片文件组成,因此在查找到之后,对其进行校验,能够保证每个增量文件以及初始镜像文件的完整性,以避免出现查找到的切片文件缺失、错误等情况。因此,所述镜像组织装置132在确定每个增量文件或者初始镜像文件的切片文件时,可以采用如下的方式:
首先,基于所述第一增量文件和索引关系查询所述目标镜像文件所有的增量文件对应的切片文件、以及初始镜像文件对应的切片文件。
然后,对每个增量文件或初始镜像文件的切片文件进行校验。
最终,将校验成功的所述切片文件确定为所述增量文件或初始镜像文件对应的切片文件。以此来保证增量文件和初始镜像文件对应的切片文件的正确性。
为了保证校验的准确性,可以采用如图6所示的校验方式,具体包括以下步骤:
步骤S601,获取每个增量文件或初始镜像文件的切片文件的摘要(digest)。该摘要可以是由第一主存储设备在生成切片文件时,根据每个切片文件的内容生成。
步骤S602,根据所述摘要生成第一汇总摘要,其中,所述第一汇总摘要与所述初始镜像文件或每个增量文件的切片文件的摘要对应,且映射关系唯一。具体地,生成第一汇总摘要的具体方式为将所有的摘要进行hash计算,得到一个hash值,即作为第一汇总摘要。
步骤S603,将生成的第一汇总摘要与所述增量文件或初始镜像文件的汇总摘要第二汇总摘要进行比较,若相同,则校验成功。其中,所述第一汇总摘要和第二汇总摘要均是由切片文件(chunk)的摘要(digest)通过hash计算生成的汇总摘要(blobsum),两者区别在于是在不同的处理阶段基于对应的chunk所生成的。所述第二汇总摘要是指在第一主存储设备在生成这些切片文件及其摘要进行hash计算得到的hash值,因此该第二汇总摘要是基于正确的切片文件的摘要得到的标准值。而所述第一汇总摘要是在导出虚拟机镜像时,由查找的到某一初始镜像文件或增量文件的chunk所生成。为了验证导出时所查找到的chunk是否正确,需要将查找到的chunk的digest进行hash计算,得到该第一汇总摘要,然后与创建镜像时基于所有正确的chunk的digest所生成的第二汇总摘要比较,若两者相同,则表示导出时所查找到的chunk是正确、完整的,由此完整校验过程。
在实际场景中,所述索引关系可以采用描述文件的形式来保存。本申请实施例中,所述描述文件可以采用JSON(JavaScript Object Notation,JavaScript对象表示法)文件,其用于描述一个增量文件或者初始镜像文件的信息,以某一增量文件的描述文件为例,如下示出了该描述文件的一种可行的定义方式,:
{
"id":"snapshot-id1",
"parents":["snapshot-id2"]
"blobsum":"5f3b8cd435fa",
"created":"2016-03-28T21:19:18.674353812Z",
"author":"Alyssa P.Hacker",
"architecture":"amd64",
"size":271828,
"name":"ubuntu",
"desc":"An ubuntu base snapshot",
}
其中,id表示该增量文件的标识信息;
parents表示该增量文件的父级文件信息;
blobsum表示该增量文件的汇总摘要第二汇总摘要;
created表示该增量文件的创建时间信息;
autho表示该增量文件的创建者信息;
architecture表示该增量文件的对应的虚拟机的操作系统信息;
size表示该增量文件的数据量;
name表示该增量文件对应的虚拟机镜像文件的名称;
desc表示该增量文件的其它描述信息。
进一步地,对于其中的blobsum项,可以进一步定义该blobsum的json文件,用于每个chunk查找和校验
chunks的内容为该bolbsum对应的所有chunk的digest。//blobsum=sha256(chunks[0],chunks[1],...,chunks[n]),表示基于这些chunk的digest进行hash计算得到256位长度的blobsum。
由于该方案会对镜像服务器上的镜像文件进行去重的校验,仅从第一主存储设备复制虚拟机的第一增量文件,根据根据所述第一增量文件和其索引关系,可以确定所述虚拟机的完整镜像文件;然后在向第二主存储设备传输镜像文件时,也会根据所述完整镜像文件以及第二主存储设备中关于所述虚拟机的已有镜像文件,确定所述虚拟机的第二增量文件,仅将所述虚拟机的第二增量文件发送至所述第二主存储设备,由于整个克隆过程中仅需要传输变化的部分,大大降低了存储资源和网络资源的开销,能够缩短整个克隆过程的处理时间,使得本方案可以支持多个虚拟机同时克隆的场景。
在实际场景中,由于被批量克隆出来的虚拟机经常用于提供某同构服务,而当其中某台虚拟机获得重要升级时,往往需要将此升级同步到其它对等虚拟机中。在现有技术中,用户需要对第一主存储设备中更新后的虚拟机,在第二主存储设备中批量克隆,然后删除第二主存储设备中的旧虚拟机。在此过程中会造成额外的存储、网络资源的开销,同时批量创建虚拟机也可能面临所在虚拟网络的IP资源不足的问题。
为解决上述问题,可以通过标签(tag)的方式标记一个克隆组,以实现虚拟机的分组。具体地,第二主存储设备在创建虚拟机时,创建装置122还用于为创建的所述虚拟机添加标签,其中,属于同一克隆组的虚拟机的标签相同。
基于区分克隆组后的系统,对某一克隆组的所有虚拟机进行升级时,所述第一主存储设备的生成装置111用于基于当前所运行的虚拟机生成第一增量文件。该虚拟机为已经完成升级的、最新内容的虚拟机。其发送装置112用于向镜像服务器发送已升级虚拟机的第一增量文件。
而所述镜像服务器的接收装置131用于从第一主存储设备获取已升级虚拟机的第一增量文件。镜像组织装置132用于根据所述第一增量文件和其索引关系,确定所述已升级虚拟机的完整镜像文件。去重检测装置133用于根据所述完整镜像文件以及第二主存储设备中关于待升级虚拟机的已有镜像文件,确定待升级虚拟机的第二增量文件,其中,所述待升级虚拟机和已升级虚拟机属于统一克隆组。发送装置134用于将所述待升级虚拟机的第二增量文件发送至所述第二主存储设备,以使所述第二主存储设备根据第二增量文件和已有镜像文件更新所述待升级虚拟机。
相应地,所述第二主存储设备的接收装置121用于从镜像服务器获取待升级虚拟机的第二增量文件。所述创建装置122用于根据第二增量文件和已有镜像文件更新所述待升级虚拟机,其中,所述待升级虚拟机的完整镜像文件包括所述第二增量文件和所述已有镜像文件。
与前述克隆虚拟机的处理过程不同,第二主存储设备在更新虚拟机之后,不需要重新进行配置,直接保留原虚拟机的配置信息,由此可以便捷地实现对各个克隆组的虚拟机进行版本控制,避免额外的存储资源和网络资源的开销。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。

Claims (10)

1.一种在镜像服务器端辅助克隆虚拟机的方法,其中,该方法包括:
从第一主存储设备获取虚拟机的第一增量文件;
根据所述第一增量文件和其索引关系,确定所述虚拟机的完整镜像文件;
根据所述完整镜像文件以及第二主存储设备中关于所述虚拟机的已有镜像文件,确定所述虚拟机的第二增量文件;
将所述虚拟机的第二增量文件发送至所述第二主存储设备,以使所述第二主存储设备根据第二增量文件和已有镜像文件创建所述虚拟机,并所述虚拟机进行配置。
2.一种在第二主存储设备端克隆虚拟机的方法,其中,该方法包括:
从镜像服务器获取虚拟机的第二增量文件;
根据第二增量文件和已有镜像文件创建所述虚拟机,并对所述虚拟机进行配置,其中,所述虚拟机的完整镜像文件包括所述第二增量文件和所述已有镜像文件。
3.根据权利要求2所述的方法,其中,在创建所述虚拟机时,还包括:
为所述虚拟机添加标签,其中,属于同一克隆组的虚拟机的标签相同。
4.一种在镜像服务器端辅助升级虚拟机的方法,其中,该方法包括:
从第一主存储设备获取已升级虚拟机的第一增量文件;
根据所述第一增量文件和其索引关系,确定所述已升级虚拟机的完整镜像文件;
根据所述完整镜像文件以及第二主存储设备中关于待升级虚拟机的已有镜像文件,确定待升级虚拟机的第二增量文件,其中,所述待升级虚拟机和已升级虚拟机属于统一克隆组;
将所述待升级虚拟机的第二增量文件发送至所述第二主存储设备,以使所述第二主存储设备根据第二增量文件和已有镜像文件更新所述待升级虚拟机。
5.一种在第二主存储设备端升级虚拟机的方法,其中,该方法包括:
从镜像服务器获取待升级虚拟机的第二增量文件;
根据第二增量文件和已有镜像文件更新所述待升级虚拟机,其中,所述待升级虚拟机的完整镜像文件包括所述第二增量文件和所述已有镜像文件。
6.一种镜像服务器,其中,该镜像服务器包括:
接收装置,用于从第一主存储设备获取虚拟机的第一增量文件;
镜像组织装置,用于根据所述第一增量文件和其索引关系,确定所述虚拟机的完整镜像文件;
去重检测装置,用于根据所述完整镜像文件以及第二主存储设备中关于所述虚拟机的已有镜像文件,确定所述虚拟机的第二增量文件;
发送装置,用于将所述虚拟机的第二增量文件发送至所述第二主存储设备,以使所述第二主存储设备根据第二增量文件和已有镜像文件创建所述虚拟机,并对所述虚拟机进行配置。
7.一种第二主存储设备,其中,该设备包括:
接收装置,用于从镜像服务器获取虚拟机的第二增量文件;
创建装置,用于根据第二增量文件和已有镜像文件创建所述虚拟机,并对所述虚拟机进行配置,其中,所述虚拟机的完整镜像文件包括所述第二增量文件和所述已有镜像文件。
8.根据权利要求7所述的设备,其中,所述创建装置,还用于在创建所述虚拟机时,为所述虚拟机添加标签,其中,属于同一克隆组的虚拟机的标签相同。
9.一种镜像服务器,其中,该镜像服务器包括:
接收装置,用于从第一主存储设备获取已升级虚拟机的第一增量文件;
镜像组织装置,用于根据所述第一增量文件和其索引关系,确定所述已升级虚拟机的完整镜像文件;
去重检测装置,用于根据所述完整镜像文件以及第二主存储设备中关于待升级虚拟机的已有镜像文件,确定待升级虚拟机的第二增量文件,其中,所述待升级虚拟机和已升级虚拟机属于统一克隆组;
发送装置,用于将所述待升级虚拟机的第二增量文件发送至所述第二主存储设备,以使所述第二主存储设备根据第二增量文件和已有镜像文件更新所述待升级虚拟机。
10.一种第二主存储设备,其中,该设备包括:
接收装置,用于从镜像服务器获取待升级虚拟机的第二增量文件;
创建装置,用于根据第二增量文件和已有镜像文件更新所述待升级虚拟机,其中,所述待升级虚拟机的完整镜像文件包括所述第二增量文件和所述已有镜像文件。
CN201611032352.0A 2016-11-14 2016-11-14 克隆、升级虚拟机的方法及设备 Active CN106445643B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611032352.0A CN106445643B (zh) 2016-11-14 2016-11-14 克隆、升级虚拟机的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611032352.0A CN106445643B (zh) 2016-11-14 2016-11-14 克隆、升级虚拟机的方法及设备

Publications (2)

Publication Number Publication Date
CN106445643A true CN106445643A (zh) 2017-02-22
CN106445643B CN106445643B (zh) 2019-10-22

Family

ID=58220910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611032352.0A Active CN106445643B (zh) 2016-11-14 2016-11-14 克隆、升级虚拟机的方法及设备

Country Status (1)

Country Link
CN (1) CN106445643B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107222355A (zh) * 2017-07-27 2017-09-29 郑州云海信息技术有限公司 一种服务器升级方法及装置
CN107589982A (zh) * 2017-09-12 2018-01-16 国云科技股份有限公司 一种虚拟机从VMware迁移到KVM的方法
CN109240716A (zh) * 2018-09-10 2019-01-18 福建星瑞格软件有限公司 一种大数据平台版本管理与快速迭代部署方法及系统
CN109725980A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 生成镜像标签的方法、设备以及计算机可读介质
CN111342933A (zh) * 2020-02-25 2020-06-26 卓望数码技术(深圳)有限公司 数据传输方法、设备及介质
CN111857956A (zh) * 2020-07-21 2020-10-30 上海云轴信息科技有限公司 虚拟机启动方法及设备
CN113742032A (zh) * 2021-09-06 2021-12-03 杭州安恒信息技术股份有限公司 替补虚拟机处理方法、装置、系统、电子装置和存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033755A (zh) * 2009-09-30 2011-04-27 国际商业机器公司 用于运行虚拟机镜像的方法和系统
CN102214118A (zh) * 2010-04-08 2011-10-12 中国移动通信集团公司 一种虚拟机控制方法、系统及装置
US20120084414A1 (en) * 2010-10-05 2012-04-05 Brock Scott L Automatic replication of virtual machines
CN103139300A (zh) * 2013-02-05 2013-06-05 杭州电子科技大学 一种基于重复数据删除的虚拟机镜像管理的优化方法
CN104461773A (zh) * 2014-11-18 2015-03-25 国云科技股份有限公司 一种虚拟机备份去重的方法
CN104639661A (zh) * 2015-03-13 2015-05-20 华存数据信息技术有限公司 分布式存储系统及文件存储和读取方法
CN105022656A (zh) * 2014-04-21 2015-11-04 中国电信股份有限公司 虚拟机快照管理方法和装置
CN105260229A (zh) * 2015-10-28 2016-01-20 北京百度网讯科技有限公司 拉取虚拟机镜像文件的方法和装置
CN105404506A (zh) * 2015-10-30 2016-03-16 广州云晫信息科技有限公司 一种云计算镜像文件的构建方法及系统
US20160125058A1 (en) * 2014-11-04 2016-05-05 Rubrik, Inc. Network optimized deduplication of virtual machine snapshots
CN105677256A (zh) * 2016-01-08 2016-06-15 中电科华云信息技术有限公司 基于本地缓存的虚拟磁盘系统及调度方法
CN105791400A (zh) * 2016-02-29 2016-07-20 广东顺德中山大学卡内基梅隆大学国际联合研究院 一种切换云桌面的方法及系统

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033755A (zh) * 2009-09-30 2011-04-27 国际商业机器公司 用于运行虚拟机镜像的方法和系统
CN102214118A (zh) * 2010-04-08 2011-10-12 中国移动通信集团公司 一种虚拟机控制方法、系统及装置
US20120084414A1 (en) * 2010-10-05 2012-04-05 Brock Scott L Automatic replication of virtual machines
CN103139300A (zh) * 2013-02-05 2013-06-05 杭州电子科技大学 一种基于重复数据删除的虚拟机镜像管理的优化方法
CN105022656A (zh) * 2014-04-21 2015-11-04 中国电信股份有限公司 虚拟机快照管理方法和装置
US20160125058A1 (en) * 2014-11-04 2016-05-05 Rubrik, Inc. Network optimized deduplication of virtual machine snapshots
CN104461773A (zh) * 2014-11-18 2015-03-25 国云科技股份有限公司 一种虚拟机备份去重的方法
CN104639661A (zh) * 2015-03-13 2015-05-20 华存数据信息技术有限公司 分布式存储系统及文件存储和读取方法
CN105260229A (zh) * 2015-10-28 2016-01-20 北京百度网讯科技有限公司 拉取虚拟机镜像文件的方法和装置
CN105404506A (zh) * 2015-10-30 2016-03-16 广州云晫信息科技有限公司 一种云计算镜像文件的构建方法及系统
CN105677256A (zh) * 2016-01-08 2016-06-15 中电科华云信息技术有限公司 基于本地缓存的虚拟磁盘系统及调度方法
CN105791400A (zh) * 2016-02-29 2016-07-20 广东顺德中山大学卡内基梅隆大学国际联合研究院 一种切换云桌面的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郑鹏,曾平,金晶: "《计算机操作系统》", 31 July 2014 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107222355A (zh) * 2017-07-27 2017-09-29 郑州云海信息技术有限公司 一种服务器升级方法及装置
CN107222355B (zh) * 2017-07-27 2020-12-01 苏州浪潮智能科技有限公司 一种服务器升级方法及装置
CN107589982A (zh) * 2017-09-12 2018-01-16 国云科技股份有限公司 一种虚拟机从VMware迁移到KVM的方法
CN109725980A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 生成镜像标签的方法、设备以及计算机可读介质
CN109240716A (zh) * 2018-09-10 2019-01-18 福建星瑞格软件有限公司 一种大数据平台版本管理与快速迭代部署方法及系统
CN111342933A (zh) * 2020-02-25 2020-06-26 卓望数码技术(深圳)有限公司 数据传输方法、设备及介质
CN111342933B (zh) * 2020-02-25 2022-06-07 卓望数码技术(深圳)有限公司 数据传输方法、设备及介质
CN111857956A (zh) * 2020-07-21 2020-10-30 上海云轴信息科技有限公司 虚拟机启动方法及设备
CN111857956B (zh) * 2020-07-21 2024-03-12 上海云轴信息科技有限公司 虚拟机启动方法及设备
CN113742032A (zh) * 2021-09-06 2021-12-03 杭州安恒信息技术股份有限公司 替补虚拟机处理方法、装置、系统、电子装置和存储介质

Also Published As

Publication number Publication date
CN106445643B (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
CN106445643B (zh) 克隆、升级虚拟机的方法及设备
US11741046B2 (en) Method and apparatus for creating system disk snapshot of virtual machine
CN108805570B (zh) 数据处理方法、装置及存储介质
CN107577427B (zh) 用于区块链系统的数据迁移方法、设备和存储介质
CN103970585B (zh) 创建虚拟机的方法及装置
JP7093599B2 (ja) ブロックチェーンにおけるスナップショットを管理する方法、コンピュータ・プログラム、スナップショット・ノード、オーディタ・ノードおよびシステム
US8260742B2 (en) Data synchronization and consistency across distributed repositories
CN101308471B (zh) 一种恢复数据的方法及装置
CN106446061A (zh) 用于存储虚拟机镜像的方法及设备
CN106484820B (zh) 一种重命名方法、访问方法及装置
CN104182294A (zh) 一种文件备份、文件恢复方法及装置
CN105573859A (zh) 一种数据库的数据恢复方法和设备
KR20150064593A (ko) 데이터 연관정보를 이용한 중복제거 방법 및 시스템
CN106354587A (zh) 镜像服务器以及导出虚拟机镜像文件的方法
CN111966631A (zh) 一种可快速分发的镜像文件生成方法、系统、设备和介质
CN106899654A (zh) 一种序列值生成方法、装置及系统
CN110162429A (zh) 系统修复方法、服务器及存储介质
US10733144B2 (en) Persistent indexing and free space management for flat directory
US20130054522A1 (en) Data synchronization using string matching
CN114579168B (zh) 代码更新方法、装置、电子设备和计算机可读存储介质
US11099837B2 (en) Providing build avoidance without requiring local source code
US11880284B2 (en) Storage restore system, storage restore method, and storage medium
CN113190448B (zh) 测试代码更新方法及装置、电子设备、存储介质
CN109471901B (zh) 一种数据同步方法及装置
CN109542860B (zh) 基于hdfs的业务数据管理方法、终端设备

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