CN111488195A - 虚拟机克隆方法、装置、设备及计算机可读存储介质 - Google Patents
虚拟机克隆方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111488195A CN111488195A CN202010283109.6A CN202010283109A CN111488195A CN 111488195 A CN111488195 A CN 111488195A CN 202010283109 A CN202010283109 A CN 202010283109A CN 111488195 A CN111488195 A CN 111488195A
- Authority
- CN
- China
- Prior art keywords
- node
- pruning
- virtual machine
- snapshot
- mirror image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种虚拟机克隆方法、装置、设备和计算机可读存储介质,本发明虚拟机克隆方法包括:基于原虚拟机的原始镜像生成多个第一快照节点,并检测是否需要对各所述第一快照节点进行广度剪枝;若是,则在各所述第一快照节点中确定剪枝节点和所述剪枝节点对应的多个分离节点,并将各所述分离节点合入至所述剪枝节点,基于所述剪枝节点的父节点确定目标克隆镜像;解除所述父节点与所述剪枝节点的连接关系,建立所述剪枝节点对应的克隆虚拟机与所述目标克隆镜像之间的连接关系。从而避免了避免因源虚拟机故障,而影响所有链接克隆的虚拟机的现象发生。
Description
技术领域
本发明涉及通信网络技术领域,尤其涉及一种虚拟机克隆方法、装置、设备及计算机可读存储介质。
背景技术
目前超融合系统在政府、企业、学校等应用越来越广泛,在诸多生产业务系统发挥着重要的作用。并且随着超融合从走向大众客户,客户对产品的各方面细节注重程度越来越大。金融客户经常进行比拼克隆虚拟机的速度,但由于旧版本采用的是全量克隆,对于大容量虚拟机耗时以小时计,相比友商的秒级链接克隆竞争力严重不足。而且当前虽然支持了批量克隆,但是由于采用的是串行进行全量克隆出多份镜像,没有解决用户批量部署耗时长的问题。并且批量克隆很容易受到源虚拟机的影响,若源虚拟机连接克隆很多虚拟机后,当源虚拟机镜像出现故障时,所有链接克隆的虚拟机都将受到影响。
发明内容
本发明的主要目的在于提出一种虚拟机克隆方法、装置、设备及计算机可读存储介质,旨在解决避免因源虚拟机故障,而影响所有链接克隆的虚拟机的现象发生的技术问题。
为实现上述目的,本发明提供一种虚拟机克隆方法,所述虚拟机克隆方法包括如下步骤:
基于原虚拟机的原始镜像生成多个第一快照节点,并检测是否需要对各所述第一快照节点进行广度剪枝;
若是,则在各所述第一快照节点中确定剪枝节点和所述剪枝节点对应的多个分离节点,并将各所述分离节点合入至所述剪枝节点,基于所述剪枝节点的父节点确定目标克隆镜像;
解除所述父节点与所述剪枝节点的连接关系,建立所述剪枝节点对应的克隆虚拟机与所述目标克隆镜像之间的连接关系。
可选地,所述检测是否需要对各所述第一快照节点进行广度剪枝的步骤,包括:
依次遍历各所述第一快照节点,并确定当前遍历的当前快照节点的同级快照节点的第一数量,判断所述第一数量是否大于第一预设值;
若大于,则确定对各所述第一快照节点进行广度剪枝,直至各所述第一快照节点遍历完成。
可选地,所述基于原虚拟机的原始镜像生成多个第一快照节点的步骤之后,还包括:
依次遍历各所述第一快照节点,并确定当前遍历的当前快照节点对应的深度层级数,判断所述深度层级数是否大于第二预设值;
若大于,则对各所述第一快照节点进行深度剪枝,直至各所述第一快照节点遍历完成。
可选地,所述基于原虚拟机的原始镜像生成多个第一快照节点的步骤之后,还包括:
获取各所述第一快照节点的总数量,并判断所述总数量是否大于第三预设值;
若大于,则在各所述第一快照节点中确定目标快照节点,并对所述目标快照节点进行单节点剪枝。
可选地,所述基于所述剪枝节点的父节点确定目标克隆镜像的步骤,包括:
根据所述剪枝节点的父节点对应的镜像生成链接克隆镜像,并将所述父节点对应的镜像中的数据写入所述链接克隆镜像,基于所述链接克隆镜像获取目标克隆镜像。
可选地,所述基于所述链接克隆镜像获取目标克隆镜像的步骤,包括:
确定所述剪枝节点和所述链接克隆镜像的差异数据信息,将所述差异数据信息从所述剪枝节点拷贝至所述链接克隆镜像,并合并所述链接克隆镜像和所述剪枝节点,以获取目标克隆镜像。
可选地,所述基于所述剪枝节点的父节点确定目标克隆镜像的步骤之前,包括:
根据所述剪枝节点克隆得到克隆虚拟机,并获取所述剪枝节点的父节点中的旧数据,根据所述旧数据建立所述克隆虚拟机和所述剪枝节点的连接。
此外,为实现上述目的,本发明还提供一种虚拟机克隆装置,所述虚拟机克隆装置包括:
检测模块,用于基于原虚拟机的原始镜像生成多个第一快照节点,并检测是否需要对各所述第一快照节点进行广度剪枝;
确定模块,用于若是,则在各所述第一快照节点中确定剪枝节点和所述剪枝节点对应的多个分离节点,并将各所述分离节点合入至所述剪枝节点,基于所述剪枝节点的父节点确定目标克隆镜像;
建立模块,用于解除所述父节点与所述剪枝节点的连接关系,建立所述剪枝节点对应的克隆虚拟机与所述目标克隆镜像之间的连接关系。
此外,为实现上述目的,本发明还提供一种虚拟机克隆设备,所述虚拟机克隆设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的虚拟机克隆程序,所述虚拟机克隆程序被所述处理器执行时实现如上所述的虚拟机克隆方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有虚拟机克隆程序,所述虚拟机克隆程序被处理器执行时实现如上所述的虚拟机克隆方法的步骤。
本发明通过基于原虚拟机的原始镜像生成多个第一快照节点,并检测是否需要对各所述第一快照节点进行广度剪枝;若是,则在各所述第一快照节点中确定剪枝节点和所述剪枝节点对应的多个分离节点,并将各所述分离节点合入至所述剪枝节点,基于所述剪枝节点的父节点确定目标克隆镜像;解除所述父节点与所述剪枝节点的连接关系,建立所述剪枝节点对应的克隆虚拟机与所述目标克隆镜像之间的连接关系。通过根据原虚拟机的原始镜像生成多个第一快照,并在确定对各个第一快照节点进行广度剪枝时,根据各个第一快照节点中的分离节点和父节点确定目标克隆镜像,并解除父节点与分离节点的连接关系,建立分离节点对应的克隆虚拟机与目标克隆镜像的循环连接关系,从而可以有效地减少原虚拟机出现故障对克隆虚拟机,并且是采用第一快照节点进行的,整个生成第一快照节点的过程未发生实际数据复制,因此也提高了对原虚拟机的原始镜像的克隆速度。并且也解决避免源虚拟机故障,而影响所有链接克隆的虚拟机的现象发生的技术问题。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的虚拟机克隆设备结构示意图;
图2为本发明虚拟机克隆方法一实施例的流程示意图;
图3为本发明虚拟机克隆方法中虚拟机生成快照流程示意图;
图4为本发明虚拟机克隆方法中虚拟机生成快照分支流程示意图;
图5为本发明虚拟机克隆方法中虚拟机定位快照分支流程示意图;
图6为本发明虚拟机克隆方法中原镜像拷贝流程示意图;
图7为本发明虚拟机克隆方法克隆镜像和克隆快照合并流程示意图;
图8为本发明虚拟机克隆方法中广度剪枝流程示意图;
图9为本发明虚拟机克隆方法中深度剪枝流程示意图;
图10为本发明虚拟机克隆方法中单节点剪枝流程示意图;
图11为本发明虚拟机克隆方法中剪枝流程示意图;
图12为本发明虚拟机克隆装置一实施例的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
批量克隆的克隆模式存在两种,一种是基于源虚拟机的全量克隆,即将源虚拟机的数据完整的拷贝到目的虚拟机,拷贝的过程中目的虚拟机不能开机投入使用,待完整拷贝完成后才能开机使用。另一种是基于源虚拟机的链接克隆,即通过快照进行镜像的分发,整个克隆过程没有实际发生数据复制,可以在几秒内完成。链接克隆需要与原镜像持续链接,即目的虚拟机在没有覆盖写对应偏移数据时,该偏移数据都需要从源虚拟机进行读取。但是这两种方式均存在一定的缺陷。第一种是当源虚拟机数据量特别大时,此时克隆耗时会很长,目的虚拟机一直无法投入使用。第二种是链接克隆出来的虚拟机在覆盖写前需要从源镜像读取数据,相比源虚拟机性能会有下降,并且源虚拟机连接克隆很多虚拟机后,如果源虚拟机镜像出现故障时,所有链接克隆的虚拟机都将受到影响。
而在本发明实施例中则提供一种快速链接克隆模式,并且默认提供给客户这种模式,该模式既能保证秒级克隆提供业务,又能在有限时间内减少对源虚拟机的依赖。对链接克隆虚拟机制定策略,当发现源虚拟机链接克隆的数量(通过广度和深度进行评测)到达一定阈值时,主动触发剪枝逻辑(即模拟全量克隆的模式断开与源虚拟机的关系),有效减少源虚拟机镜像出现故障后对链接克隆虚拟机影响。例如,如图3所示,1、对当前虚拟机进行一个快照。也就是原虚拟机写入数据到虚拟磁盘1,并获取原虚拟机的原始镜像,对原始镜像进行快照,得到快照1,并将原始镜像置为只读,也就是原始镜像可以通过虚拟磁盘1读取原虚拟机的数据。如图4所示,生成一个快照分支,即在图1的基础上再生成一个和快照1相同的快照2。然后再如图5所示,3、将克隆出来的虚拟机写IO重定向到分支快照上,即在图4的基础上生成VM_NEW(即克隆虚拟机),并生成克隆虚拟机对应的虚拟磁盘1,再读旧数据,从之前的快照及原始镜像中获取旧数据,并让克隆虚拟机10写请求重定向到快照2分配的空间。再如图6所示,4、后台进行异步的原镜像拷贝,即在图5的基础上生成一个链接克隆的镜像,在几秒内完成克隆动作并且可以成功开机。后台异步的将原镜像进行全量复制,当复制结束后,将不再需要与原镜像持续链接,同全量克隆虚拟机效果相同。再如图7所示,5、镜像拷贝成功后,将克隆镜像和“快照2”的数据进行合并,即从“快照2”上将差异数据写入克隆后的原始镜像中,系统判断可以合并时,短暂卡住IO进行合并。从而实现原虚拟机和克隆虚拟机的分离,并且根据图7可知,原虚拟机和克隆虚拟机之间各自单独运行,互不影响。因此也避免了原虚拟机出现故障而影响克隆虚拟机的现象发生。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的虚拟机克隆设备结构示意图。
本发明实施例虚拟机克隆设备可以是搭载了虚拟化平台的PC机或服务器(如X86服务器)等终端设备。
如图1所示,该虚拟机克隆设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及虚拟机克隆程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的虚拟机克隆程序,并执行以下安全组件的权限配置方法实施例中的操作。
基于上述硬件结构,提出本发明虚拟机克隆方法实施例,如下所述。
参照图2,图2为本发明虚拟机克隆方法一种实施例的流程示意图,所述虚拟机克隆方法方法包括:
步骤S10,基于原虚拟机的原始镜像生成多个第一快照节点,并检测是否需要对各所述第一快照节点进行广度剪枝;
在本实施例中,原虚拟机即等同于源虚拟机。链接克隆通过快照进行镜像的分发,整个克隆过程没有实际发生数据复制,可以在几秒内完成。链接克隆需要与原镜像持续链接,如在同一个VS卷内,从而保证磁盘的空间节省,只有新增差异数据后才会增加链接克隆的空间开销。若进行克隆速度的测试,或者是功能开发测试等对性能不敏感场景,可以使用链接克隆。在本实施例中需要确定原虚拟机,及原虚拟机的虚拟磁盘1,然后对原虚拟机的原始镜像进行快照,以得到多个第一快照节点。并且在得到各个第一快照节点后,还需要检测是否对各个第一快照节点进行广度剪枝。并根据不同的检测结果执行不同的操作。
其中,快照是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以以是其所表示的数据的一个副本,也可以是数据的一个复制品。快照的作用主要是能够进行在线数据备份与恢复。当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据恢复某个可用的时间点的状态。快照的另一个作用是为存储用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据,还可以利用快照进行测试等工作。所有存储系统,不论高中低端,只要应用于在线系统,那么快照就成为一个不可或缺的功能。
快照包括崩溃一致性快照、应用一致性快照和内存快照。其中,崩溃一致性指的是相当于数据状态与系统突然发生故障断电时刻的数据一致,通常操作系统都会有相应的自检机制处理突发性断电,所以大多数操作系统在断电后都能正常启动。这类快照仅存储VM的配置信息(元数据)和数据信息,并允许导出和还原这些信息以作为备份,适用于所有VM类型。应用一致性快照是利用Windows卷影复制服务(VSS,Volume Shadow Copy Service)生成具有应用一致性的实时快照。VSS框架帮助可识别VSS的应用程序(例如MicrosoftExchange(微软交换)或Microsoft SQL Server(关系型数据库管理系统))在生成快照前将数据刷新到磁盘并为快照做好准备。因此,还原应用一致性快照比较安全,但当生成应用一致性快照时,这些快照可能会对系统性能产生更大的影响。如果负载过重,还可能会失败,因此生成此类快照可能需要进行多次尝试。而内存快照是磁盘和内存快照除了保存VM的元数据和磁盘外,还保存VM的内存状态。还原到磁盘和内存快照不需要重新启动VM,生成此类快照时,VM可以处于运行状态,也可以处于挂起状态。如果正在升级或修补软件,或者要测试新应用程序,但同时又希望能有机会返回到VM的当前(更改前)状态(RAM),内存快照会非常有用。
另外在本实施例中,全量克隆是需要将数据完整的进行一份复制,克隆期间会占用较多的磁盘IO性能,根据数据量,可能会有较大的耗时。全量克隆不需要与原镜像持续链接,可以完全独立的进行部署,并且整体性能和原镜像的虚拟机相同。链接克隆是通过快照进行镜像的分发,整个克隆过程没有实际发生数据复制,可以在几秒内完成。链接克隆需要与原镜像持续链接(在同一个VS卷内),从而保证磁盘的空间节省,只有新增差异数据后才会增加链接克隆的空间开销。但是由于原镜像的多次引用,链接克隆的虚拟机性能不如全量克隆。
步骤S20,若是,则在各所述第一快照节点中确定剪枝节点和所述剪枝节点对应的多个分离节点,并将各所述分离节点合入至所述剪枝节点,基于所述剪枝节点的父节点确定目标克隆镜像;
当经过判断发现若需要对各个第一快照节点进行广度剪枝,则需要在各个第一快照节点中确定剪枝节点,需要说明的是在本实施例中剪枝节点有可能存在多个,并在获取到剪枝节点后,还需要确定剪枝节点对应的多个分离节点,并将各个分离节点合并入至剪枝节点,即将剪枝节点作为各个分离节点的父节点。并且分离节点的数量是存在限制的,与广度剪枝条件挂钩,若广度剪枝条件是第一快照节点大于第一预设值,比如8时,则将剪枝节点后续的7个节点作为分离节点。也就是将7个分离节点放置在剪枝节点的下一层级,7个分离节点加上剪枝节点的隐形节点正好等于8,并且分离节点的数量只要小于第一预设值即看可。并在确定剪枝节点后,还需要确定剪枝节点的父节点,即剪枝节点的上一个第一快照节点。然后根据父节点的镜像来克隆生成克隆镜像,并将分离节点中的数据信息拷贝至克隆镜像,以得到目标克隆镜像。
其中,剪枝节点的确定是在同一广度层次的快照节点达到一定值时,其在同一广度层次的下一个快照节点作为剪枝节点。需要说明的是,在本实施例中通过原始镜像产生的第一个快照节点是原始镜像自身的隐形快照,不计算在内,例如当快照节点存在10个时,一定值为8时,2和9就是剪枝节点,而1则是原始镜像的隐形快照节点。又例如,如图8所示,当广度达到一定限制时(如大于8),进行广度剪枝。此外将选取链接克隆兄弟节点,合入到剪枝节点。原文件通过快照1创建128个链接克隆文件。此后剪枝将每选取7个节点合并到剪枝节点(共8个节点),以此减少原节点的快照元数据大小及广度。其中,图8中的0为原虚拟机,1为快照,2为原始镜像,3-130为链接克隆文件(即各个第一快照节点)。
步骤S30,解除所述父节点与所述剪枝节点的连接关系,建立所述剪枝节点对应的克隆虚拟机与所述目标克隆镜像之间的连接关系。
并当获取到目标克隆镜像后,可以解除父节点与剪枝节点之间的连接关系,即断开父节点中的镜像和剪枝节点中的原始镜像之间的连接关系,并建立剪枝节点对应的克隆虚拟机和目标克隆镜像之间的连接关系。此时克隆虚拟机的运行就不会受到原虚拟机的影响了。
并且在本实施例中,可以同时进行快速链接克隆和剪枝流程,当进行快速链接克隆时,发现克隆后的节点数满足一定条件时,可以触发剪枝流程(如广度剪枝、深度剪枝和单节点剪枝等),此时快速链接克隆还是可以继续进行下去。
需要说明的是,在本实施例中,当获取到各个第一快照节点后,还可以对各个第一快照节点进行深度剪枝和单节点剪枝(即全量克隆剪枝)。如图9所示,深度剪枝是从深度中间部分开始剪枝(图9中的链接克隆自身的隐式快照已省略),即原文件产生链接克隆文件3,然后通过文件3链接克隆4。图9中的0为原虚拟机,1为快照,2为原始镜像,3-11为链接克隆文件(即各个第一快照节点)。再如图10所示,单节点剪枝可以是在不断对原文件进行链接克隆,当满足一定条件时(如第一快照节点数量超过8时),进行剪枝,此时可以对任意某一个第一快照节点进行剪枝,也可以是对第一个链接克隆文件进行剪枝,如将图中的文件3进行剪枝,剪枝完毕后,原文件隐式克隆快照将被删除和链接克隆隐式快照,即图10中的1和2将合并。其中,图10中0为原虚拟机,1、2、4...15、17为快照(即第一快照节点),3、5、6...16为链接克隆文件。
另外为辅助理解本实施例中对各个第一快照节点进行剪枝的流程,下面进行举例说明。
例如,如图11所示,链接克隆剪枝全量克隆,即对原虚拟机对应的原始镜像进行全量克隆,并从中选取剪枝节点,选取方式可以是根据剪枝策略或者外部指定,如用户指定的方式。并在确定各个剪枝节点后确定是否进行广度剪枝,若是,则在各个剪枝节点中选取分离节点,并更新剪枝节点元数据,将上述节点合入至该链接克隆节点,再更新原文件元数据移除对应的节点,并下发剪枝/全量克隆拷贝任务至合并任务调度。但是若否,即不进行广度剪枝,则可以直接下发剪枝/全量克隆拷贝任务至合并任务调度,并异步拷贝完成回调处理,即将链接克隆节点中的异步数据拷贝至链接克隆节点对应的克隆镜像中,并更新剪枝节点元数据信息,解除与父文件关系,并更新父文件元数据,删除对应的剪枝节点信息,再确定是否进行全量克隆或单独剪枝节点,若是,则删除剪枝节点链接克隆隐式快照直至结束,若否,则可以继续保持当前状态直至结束。
在本实施例中,通过基于原虚拟机的原始镜像生成多个第一快照节点,并检测是否需要对各所述第一快照节点进行广度剪枝;若是,则在各所述第一快照节点中确定剪枝节点和所述剪枝节点对应的多个分离节点,并将各所述分离节点合入至所述剪枝节点,基于所述剪枝节点的父节点确定目标克隆镜像;解除所述父节点与所述剪枝节点的连接关系,建立所述剪枝节点对应的克隆虚拟机与所述目标克隆镜像之间的连接关系。通过根据原虚拟机的原始镜像生成多个第一快照,并在确定对各个第一快照节点进行广度剪枝时,根据各个第一快照节点中的分离节点和父节点确定目标克隆镜像,并解除父节点与分离节点的连接关系,建立分离节点对应的克隆虚拟机与目标克隆镜像的循环连接关系,从而可以有效地减少原虚拟机出现故障对克隆虚拟机,并且是采用第一快照节点进行的,整个生成第一快照节点的过程未发生实际数据复制,因此也提高了对原虚拟机的原始镜像的克隆速度。并且也解决避免源虚拟机故障,而影响所有链接克隆的虚拟机的现象发生的技术问题。
进一步地,基于上述本发明的实施例,提出本发明虚拟机克隆方法的另一种实施例,本实施例中,上述实施例中的步骤S10,检测是否需要对各所述第一快照节点进行广度剪枝的步骤的细化,包括:
步骤a,依次遍历各所述第一快照节点,并确定当前遍历的当前快照节点的同级快照节点的第一数量,判断所述第一数量是否大于第一预设值;
在本实施例中,当获取到各个第一快照节点后,可以依次遍历各个第一快照节点,并确定当前遍历的当前快照节点,再获取与当前快照节点同层次的同级快照节点(也就是图8中的链接克隆兄弟节点),并确定同级快照节点的第一数量,再判断第一数量是否大于第一预设值,并根据不同的判断结果执行不同的操作。其中,同级快照节点是和当前快照节点具有相同的父节点的第一快照节点。第一预设值可以是用户提前设置的任意值。
步骤b,若大于,则确定对各所述第一快照节点进行广度剪枝,直至各所述第一快照节点遍历完成。
当经过判断发现同级快照节点的第一数量大于第一预设值时,则需要对各个第一快照节点进行广度剪枝。例如,若第一快照节点存在10个时,分别为快照1至快照10,其中,快照1是快照2至快照9的父节点,当第一预设值为8时,则可以确定剪枝节点为快照3,分离节点为快照4至快照10,并将快照4和快照10合并至快照3,再断开快照1与快照3的连接。但是,若发现同级快照节点的第一数量小于或等于第一预设值,则不触发广度剪枝操作。直至各个第一快照节点遍历完成。
在本实施例中,通过在检测到当前遍历的当前快照节点的同级快照节点的第一数量大于第一预设值时,进行广度剪枝,从而减少了第一快照节点的广度,减少了原始镜像产生故障对克隆虚拟机的影响。
进一步地,基于原虚拟机的原始镜像生成多个第一快照节点的步骤之后,还包括:
步骤c,依次遍历各所述第一快照节点,并确定当前遍历的当前快照节点对应的深度层级数,判断所述深度层级数是否大于第二预设值;
在本实施例中,当获取到各个第一快照节点后,可以依次遍历各个第一快照节点,并确定当前遍历的当前快照节点,再获取当前遍历的当前快照节点对应的深度层级数,并判断此深度层级数是否大于第二预设值。再基于不同的判断结果执行不同的操作。其中,若第一快照节点存在3个,且每一层级有且只有一个第一快照节点,即第一快照节点3的父节点为第一快照节点2,第一快照节点2的父节点为第一快照节点1,则此时可以认为第一快照节点3对应的深度层级数为3,第一快照节点2对应的深度层级数为2。第二预设值可以是用户提前设置的任意值。
步骤d,若大于,则对各所述第一快照节点进行深度剪枝,直至各所述第一快照节点遍历完成。
当经过判断发现深度层级数大于第二预设值,则可以对各个第一快照节点进行深度剪枝,即先确定深度剪枝节点和深度剪枝节点对应的父节点,则断开深度剪枝节点和父节点之间的连接关系。但是若深度层级数小于或等于第二预设值,则不触发深度剪枝操作。直至各个第一快照节点遍历完成。
在本实施例中,通过在当前遍历的当前快照节点对应的深度层级数大于第二预设值时,进行深度剪枝,从而减少了原始镜像产生故障对克隆虚拟机的影响。
进一步地,基于原虚拟机的原始镜像生成多个第一快照节点的步骤之后,还包括:
步骤e,获取各所述第一快照节点的总数量,并判断所述总数量是否大于第三预设值;
在本实施例中,当获取到各个第一快照节点后,还可以确定已克隆生成的各个第一快照节点的总数量,并判断此总数量是否大于第三预设值,并基于不同的判断结果执行不同的操作。其中,第三预设值可以是用户提前设置的任意值。
步骤f,若大于,则在各所述第一快照节点中确定目标快照节点,并对所述目标快照节点进行单节点剪枝。
当经过判断发现第一快照节点的总数量大于第三预设值时,则可以根据用户的需求在各个第一快照节点中确定目标快照节点,并对此目标快照节点进行单节点剪枝。
在本实施例中,通过在第一快照节点的总数量大于第三预设值时,对各个第一快照节点中的目标快照节点进行单节点剪枝,从而减少了原始镜像产生故障对克隆虚拟机的影响。
进一步地,基于上述本发明的实施例,提出本发明虚拟机克隆方法的再一种实施例,本实施例中,上述实施例中的步骤S20,基于所述剪枝节点的父节点确定目标克隆镜像的步骤的细化,包括:
步骤g,根据所述剪枝节点的父节点对应的镜像生成链接克隆镜像,并将所述父节点对应的镜像中的数据写入所述链接克隆镜像,基于所述链接克隆镜像获取目标克隆镜像。
在本实施例中,在确定剪枝节点后,可以根据剪枝节点的父节点对应的镜像来克隆生成剪枝节点的链接克隆镜像,并将父节点对应的镜像中的数据写入链接克隆镜像,再根据链接克隆镜像来生成目标克隆镜像。
在本实施例中,通过根据剪枝节点的父节点对应的镜像生成链接克隆镜像,并根据链接克隆镜像生成目标克隆镜像。从而保障了获取到的目标克隆镜像的准确性。
进一步地,基于所述链接克隆镜像获取目标克隆镜像的步骤,包括:
步骤h,确定所述剪枝节点和所述链接克隆镜像的差异数据信息,将所述差异数据信息从所述剪枝节点拷贝至所述链接克隆镜像,并合并所述链接克隆镜像和所述剪枝节点,以获取目标克隆镜像。
在生成链接克隆镜像后,可以确定剪枝剪枝节点和链接克隆镜像的差异数据信息,并将差异数据信息从剪枝节点拷贝至链接克隆镜像,再合并链接克隆镜像和剪枝节点,即将链接克隆镜像和剪枝节点的数据进行合并,以生成目标克隆镜像。
在本实施例中,通过将剪枝节点和链接克隆镜像的差异数据信息拷贝至链接克隆镜像,并合并链接克隆镜像和剪枝节点,以获取目标克隆镜像,从而保障了获取到的目标克隆镜像的准确性。
进一步地,基于所述剪枝节点的父节点确定目标克隆镜像的步骤之后,包括:
步骤k,根据所述剪枝节点克隆得到克隆虚拟机,并获取所述剪枝节点的父节点中的旧数据,根据所述旧数据建立所述克隆虚拟机和所述剪枝节点的连接。
在本实施例中,可以根据剪枝节点进行克隆得到克隆虚拟机,由于剪枝节点是通过原始镜像生成的多个第一快照节点生成的,因此通过根据剪枝节点进行克隆得到的克隆虚拟机和原虚拟机完全一致。然后再获取剪枝节点中的旧数据,并根据此旧数据建立克隆虚拟机和剪枝节点的连接。
在本实施例中,通过根据剪枝节点克隆迭代克隆虚拟机,并建立克隆虚拟机和剪枝节点的连接,从而可以无需拷贝原始镜像中的数据,缩短了虚拟机的克隆时间,提高了克隆的效率。
本发明还提供一种虚拟机克隆装置,参照图12,图12为本发明虚拟机克隆装置一实施例的模块示意图,本实施例中,所述装置包括:
检测模块A10,用于基于原虚拟机的原始镜像生成多个第一快照节点,并检测是否需要对各所述第一快照节点进行广度剪枝;
确定模块A20,用于若是,则在各所述第一快照节点中确定剪枝节点和所述剪枝节点对应的多个分离节点,并将各所述分离节点合入至所述剪枝节点,基于所述剪枝节点的父节点确定目标克隆镜像;
建立模块A30,用于解除所述父节点与所述剪枝节点的连接关系,建立所述剪枝节点对应的克隆虚拟机与所述目标克隆镜像之间的连接关系。
可选地,所述检测模块A10,用于:
依次遍历各所述第一快照节点,并确定当前遍历的当前快照节点的同级快照节点的第一数量,判断所述第一数量是否大于第一预设值;
若大于,则确定对各所述第一快照节点进行广度剪枝,直至各所述第一快照节点遍历完成。
可选地,所述检测模块A10,用于:
依次遍历各所述第一快照节点,并确定当前遍历的当前快照节点对应的深度层级数,判断所述深度层级数是否大于第二预设值;
若大于,则对各所述第一快照节点进行深度剪枝,直至各所述第一快照节点遍历完成。
可选地,所述检测模块A10,用于:
获取各所述第一快照节点的总数量,并判断所述总数量是否大于第三预设值;
若大于,则在各所述第一快照节点中确定目标快照节点,并对所述目标快照节点进行单节点剪枝。
可选地,所述确定模块A20,用于:
根据所述剪枝节点的父节点对应的镜像生成链接克隆镜像,并将所述父节点对应的镜像中的数据写入所述链接克隆镜像,基于所述链接克隆镜像获取目标克隆镜像。
可选地,所述确定模块A20,用于:
确定所述剪枝节点和所述链接克隆镜像的差异数据信息,将所述差异数据信息从所述剪枝节点拷贝至所述链接克隆镜像,并合并所述链接克隆镜像和所述剪枝节点,以获取目标克隆镜像。
可选地,所述确定模块A20,用于:
根据所述剪枝节点克隆得到克隆虚拟机,并获取所述剪枝节点的父节点中的旧数据,根据所述旧数据建立所述克隆虚拟机和所述剪枝节点的连接。
上述各功能模块实现的方法可参照本发明虚拟机克隆方法实施例,此处不再赘述。
本发明还提供一种虚拟机克隆设备,所述虚拟机克隆设备包括:存储器、处理器、通信总线以及存储在所述存储器上的虚拟机克隆程序:
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述虚拟机克隆程序,以实现上述虚拟机克隆方法各实施例的步骤。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有虚拟机克隆程序,所述虚拟机克隆程序被处理器执行时实现如上所述的虚拟机克隆方法的步骤。
其中,在所述处理器上运行的虚拟机克隆程序被执行时所实现的方法可参照本发明虚拟机克隆方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种虚拟机克隆方法,其特征在于,所述虚拟机克隆方法包括如下步骤:
基于原虚拟机的原始镜像生成多个第一快照节点,并检测是否需要对各所述第一快照节点进行广度剪枝;
若是,则在各所述第一快照节点中确定剪枝节点和所述剪枝节点对应的多个分离节点,并将各所述分离节点合入至所述剪枝节点,基于所述剪枝节点的父节点确定目标克隆镜像;
解除所述父节点与所述剪枝节点的连接关系,建立所述剪枝节点对应的克隆虚拟机与所述目标克隆镜像之间的连接关系。
2.如权利要求1所述的虚拟机克隆方法,其特征在于,所述检测是否需要对各所述第一快照节点进行广度剪枝的步骤,包括:
依次遍历各所述第一快照节点,并确定当前遍历的当前快照节点的同级快照节点的第一数量,判断所述第一数量是否大于第一预设值;
若大于,则确定对各所述第一快照节点进行广度剪枝,直至各所述第一快照节点遍历完成。
3.如权利要求1所述的虚拟机克隆方法,其特征在于,所述基于原虚拟机的原始镜像生成多个第一快照节点的步骤之后,还包括:
依次遍历各所述第一快照节点,并确定当前遍历的当前快照节点对应的深度层级数,判断所述深度层级数是否大于第二预设值;
若大于,则对各所述第一快照节点进行深度剪枝,直至各所述第一快照节点遍历完成。
4.如权利要求1所述的虚拟机克隆方法,其特征在于,所述基于原虚拟机的原始镜像生成多个第一快照节点的步骤之后,还包括:
获取各所述第一快照节点的总数量,并判断所述总数量是否大于第三预设值;
若大于,则在各所述第一快照节点中确定目标快照节点,并对所述目标快照节点进行单节点剪枝。
5.如权利要求1所述的虚拟机克隆方法,其特征在于,所述基于所述剪枝节点的父节点确定目标克隆镜像的步骤,包括:
根据所述剪枝节点的父节点对应的镜像生成链接克隆镜像,并将所述父节点对应的镜像中的数据写入所述链接克隆镜像,基于所述链接克隆镜像获取目标克隆镜像。
6.如权利要求5所述的虚拟机克隆方法,其特征在于,所述基于所述链接克隆镜像获取目标克隆镜像的步骤,包括:
确定所述剪枝节点和所述链接克隆镜像的差异数据信息,将所述差异数据信息从所述剪枝节点拷贝至所述链接克隆镜像,并合并所述链接克隆镜像和所述剪枝节点,以获取目标克隆镜像。
7.如权利要求1-6任一项所述的虚拟机克隆方法,其特征在于,所述基于所述剪枝节点的父节点确定目标克隆镜像的步骤之前,包括:
根据所述剪枝节点克隆得到克隆虚拟机,并获取所述剪枝节点的父节点中的旧数据,根据所述旧数据建立所述克隆虚拟机和所述剪枝节点的连接。
8.一种虚拟机克隆装置,其特征在于,所述虚拟机克隆装置包括:
检测模块,用于基于原虚拟机的原始镜像生成多个第一快照节点,并检测是否需要对各所述第一快照节点进行广度剪枝;
确定模块,用于若是,则在各所述第一快照节点中确定剪枝节点和所述剪枝节点对应的多个分离节点,并将各所述分离节点合入至所述剪枝节点,基于所述剪枝节点的父节点确定目标克隆镜像;
建立模块,用于解除所述父节点与所述剪枝节点的连接关系,建立所述剪枝节点对应的克隆虚拟机与所述目标克隆镜像之间的连接关系。
9.一种虚拟机克隆设备,其特征在于,所述虚拟机克隆设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的虚拟机克隆程序,所述虚拟机克隆程序被所述处理器执行时实现如权利要求1至7中任一项所述的虚拟机克隆方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有虚拟机克隆程序,所述虚拟机克隆程序被处理器执行时实现如权利要求1至7中任一项所述的虚拟机克隆方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010283109.6A CN111488195B (zh) | 2020-04-10 | 2020-04-10 | 虚拟机克隆方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010283109.6A CN111488195B (zh) | 2020-04-10 | 2020-04-10 | 虚拟机克隆方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488195A true CN111488195A (zh) | 2020-08-04 |
CN111488195B CN111488195B (zh) | 2023-05-12 |
Family
ID=71812724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010283109.6A Active CN111488195B (zh) | 2020-04-10 | 2020-04-10 | 虚拟机克隆方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111488195B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742032A (zh) * | 2021-09-06 | 2021-12-03 | 杭州安恒信息技术股份有限公司 | 替补虚拟机处理方法、装置、系统、电子装置和存储介质 |
WO2022042334A1 (en) * | 2020-08-28 | 2022-03-03 | International Business Machines Corporation | Compilation strategy for sharable application snapshot |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090260007A1 (en) * | 2008-04-15 | 2009-10-15 | International Business Machines Corporation | Provisioning Storage-Optimized Virtual Machines Within a Virtual Desktop Environment |
CN103229150A (zh) * | 2012-12-24 | 2013-07-31 | 华为技术有限公司 | 数据控制方法及系统 |
US20150127833A1 (en) * | 2013-11-01 | 2015-05-07 | Vmware, Inc. | Rapid virtual machine cloning |
CN107562517A (zh) * | 2017-08-16 | 2018-01-09 | 华为技术有限公司 | 一种管理链接克隆母卷的方法和装置 |
-
2020
- 2020-04-10 CN CN202010283109.6A patent/CN111488195B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090260007A1 (en) * | 2008-04-15 | 2009-10-15 | International Business Machines Corporation | Provisioning Storage-Optimized Virtual Machines Within a Virtual Desktop Environment |
CN103229150A (zh) * | 2012-12-24 | 2013-07-31 | 华为技术有限公司 | 数据控制方法及系统 |
US20150127833A1 (en) * | 2013-11-01 | 2015-05-07 | Vmware, Inc. | Rapid virtual machine cloning |
CN107562517A (zh) * | 2017-08-16 | 2018-01-09 | 华为技术有限公司 | 一种管理链接克隆母卷的方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022042334A1 (en) * | 2020-08-28 | 2022-03-03 | International Business Machines Corporation | Compilation strategy for sharable application snapshot |
GB2613324A (en) * | 2020-08-28 | 2023-05-31 | Ibm | Compilation strategy for sharable application snapshot |
CN113742032A (zh) * | 2021-09-06 | 2021-12-03 | 杭州安恒信息技术股份有限公司 | 替补虚拟机处理方法、装置、系统、电子装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111488195B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6345211B2 (ja) | 仮想マシンシステムディスクのスナップショットの作成方法および装置 | |
CN107291883B (zh) | 一种分布式存储系统的快照方法及装置 | |
US7908600B2 (en) | Fault-tolerant patching system | |
CN110543386B (zh) | 一种数据存储方法、装置、设备和存储介质 | |
CN109542682B (zh) | 一种数据备份方法、装置、设备和存储介质 | |
CN109032507B (zh) | 一种生成源卷存储快照的方法、系统及相关组件 | |
US8615488B2 (en) | Physical replication of database subset to improve availability and reduce resource cost in a cloud environment | |
CN102495772B (zh) | 一种基于特征的终端程序云备份及恢复方法 | |
CN106951345A (zh) | 一种虚拟机磁盘数据的一致性测试方法及装置 | |
CN103034566A (zh) | 虚拟机还原的方法和装置 | |
US11550595B2 (en) | Adaptive system for smart boot sequence formation of VMs for disaster recovery | |
CN111488195A (zh) | 虚拟机克隆方法、装置、设备及计算机可读存储介质 | |
CN110162429A (zh) | 系统修复方法、服务器及存储介质 | |
CN113886143A (zh) | 虚拟机持续数据保护方法、装置及数据恢复方法、装置 | |
US10318385B2 (en) | Service recovery using snapshots and interservice messages | |
CN112000321B (zh) | 适用于三维检测软件的撤销和/或重做实现方法及装置 | |
US11163799B2 (en) | Automatic rollback to target for synchronous replication | |
WO2023240995A1 (zh) | 一种双机热备系统的数据恢复方法、装置及介质 | |
CN111786808A (zh) | 云系统的迁移方法、装置和混合云系统 | |
US11550665B2 (en) | Techniques for preserving clone relationships between files | |
CN111338842A (zh) | 文件备份方法及装置 | |
CN115174596A (zh) | 一种设备远程复制方法、装置以及介质 | |
CN103530202A (zh) | 针对终端程序的云备份及恢复方法 | |
CN113821490A (zh) | 一种数据同步方法及装置 | |
CN111400404A (zh) | 一种节点初始化方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |