CN103049308B - 实现虚拟机热迁移的方法、装置及系统 - Google Patents
实现虚拟机热迁移的方法、装置及系统 Download PDFInfo
- Publication number
- CN103049308B CN103049308B CN201210504276.4A CN201210504276A CN103049308B CN 103049308 B CN103049308 B CN 103049308B CN 201210504276 A CN201210504276 A CN 201210504276A CN 103049308 B CN103049308 B CN 103049308B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- page
- ephemeral data
- management device
- migration
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 387
- 230000005012 migration Effects 0.000 title claims abstract description 293
- 238000013508 migration Methods 0.000 title claims abstract description 293
- 230000008569 process Effects 0.000 claims abstract description 315
- 230000004044 response Effects 0.000 claims description 33
- 238000001089 thermophoresis Methods 0.000 claims description 24
- 230000010076 replication Effects 0.000 claims description 8
- 238000009826 distribution Methods 0.000 claims description 3
- 239000002699 waste material Substances 0.000 abstract description 19
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 20
- 230000008859 change Effects 0.000 description 18
- 230000009467 reduction Effects 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000012466 permeate Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种实现虚拟机热迁移的方法、装置及系统。该方法包括:源物理机上的源虚拟机迁移管理装置确定该源物理机上的虚拟机的非临时数据内存页;将该非临时数据内存页从该源物理机复制到目标物理机;将该非临时数据内存页的复制过程中产生的脏页从该源物理机循环复制到该目标物理机,直到未被复制的脏页的数目与该非临时数据内存页的数目之比低于预设值;在该未被复制的脏页的数目与该非临时数据内存页的数目之比低于该预设值时,对该虚拟机实施迁移。本发明实施例提供的方法,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页,从而降低系统CPU和网络带宽的浪费,提高用户体验。
Description
技术领域
本发明实施例涉及虚拟化的计算机系统,并且更具体地,涉及实现虚拟机热迁移的方法、装置及系统。
背景技术
虚拟机技术正在大量应用于信息技术领域中,并正在向通信领域渗透。热迁移技术是虚拟机的一大技术亮点,它能够让虚拟机在两台物理机间进行迁移,而该迁移过程对业务处理的影响很小。现有的虚拟机的热迁移技术,使用的是预拷贝方法。该方法首先将虚拟机的所有内存页从源物理机复制到目标物理机,并且在这次复制过程中对所有内存页进行监控,将在复制过程中被改动的页标记为脏页;在完成一次内存的全部复制后,再对产生的脏页进行复制,需要注意的是,在脏页复制的过程中,有些内存页也有可能被改动,这时,这些改动的内存页也需要被标记为脏页,以便下一次脏页复制的时候能把这些脏页从源物理机复制到目标物理机。这样不断循环地把脏页复制到目标机,直到脏页比例低于预设值(比如5%)后,对虚拟机实施迁移,即停止运行虚拟机,并把未被复制的脏页一次性从源物理机复制到目标物理机后,并在目标物理机上恢复虚拟机。
然而,在脏页的循环复制过程中,只要内存页的一个字节被改动,也会被标记为脏页,这会造成系统中大量临时数据的变化都被循环复制到目标物理机,从而造成热迁移虚拟机的耗时较长,且极大地浪费系统的CPU处理资源和网络带宽等资源,且据测算,该浪费超过90%。因此,如何减少由于系统中大量临时数据的变化而造成的脏页循环复制的次数以及在每次循环复制过程中所复制的脏页数目,从而降低由虚拟机热迁移造成的系统资源的浪费,是虚拟机热迁移技术亟待解决的问题。
发明内容
本发明实施例提供了一种实现虚拟机热迁移的方法、装置及系统,以便能够在虚拟机热迁移的过程中,节省系统资源。
第一方面,本发明实施例提供了一种实现虚拟机热迁移的方法,该方法包括:源物理机上的源虚拟机迁移管理装置确定该源物理机上的虚拟机的非临时数据内存页;将该非临时数据内存页从该源物理机复制到目标物理机;将该非临时数据内存页的复制过程中产生的脏页从该源物理机循环复制到该目标物理机,直到未被复制的脏页的数目与该非临时数据内存页的数目之比低于预设值;在该未被复制的脏页的数目与该非临时数据内存页的数目之比低于该预设值时,对该虚拟机实施迁移。
结合第一方面,在第一种可能的实现方式中,该对该虚拟机实施迁移,包括:停止运行该虚拟机;将该未被复制的脏页以及该虚拟机上的临时数据内存页,从该源物理机复制到该目标物理机;向该目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,该第一指示信息用于指示该目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
结合第一方面,在第二种可能的实现方式中,该对该虚拟机实施迁移,包括:通过迁移预通知接口,通知该虚拟机停止运行临时数据进程;在通过该迁移预通知接口获取到该虚拟机通知的停止成功响应时,停止运行该虚拟机,该停止成功响应用于指示该虚拟机停止运行临时数据进程成功;将该未被复制的脏页从该源物理机复制到该目标物理机;向该目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,该第一指示信息用于指示该目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,该方法还包括:向该目标虚拟机迁移管理装置发送第二指示信息,该第二指示信息用于指示该目标虚拟机迁移管理装置通过迁移完毕通知接口通知该虚拟机重新启动被停止运行的该临时数据进程。
结合第一方面或第一方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,该确定源物理机上的虚拟机的非临时数据内存页,包括:通过临时数据进程内存页注册接口获取该虚拟机通知的临时数据内存页的信息;根据该临时数据内存页的信息,确定该虚拟机上的除该临时数据内存页外的内存页为非临时数据内存页。
第二方面,本发明实施例提供了一种实现虚拟机热迁移的方法,该方法包括:源物理机上的虚拟机确定虚拟机的临时数据内存页;通过临时数据进程内存页注册接口,将该临时数据内存页的信息通知该源物理机上的源虚拟机迁移管理装置,以便该源虚拟机迁移管理装置根据该临时数据内存页的信息确定该虚拟机的非临时数据内存页,并在将该虚拟机从该源物理机热迁移到目标物理机的过程中复制该非临时数据内存页。
结合第二方面,在第一种可能的实现方式中,在该通过临时数据进程内存页注册接口将该临时数据内存页的信息通知该源物理机上的源虚拟机迁移管理装置之后,该方法还包括:通过迁移预通知接口,获取该源虚拟机迁移管理装置通知的停止运行临时数据进程的通知;根据该停止运行临时数据进程的通知,停止运行临时数据进程;在停止运行该临时数据进程成功时,通过该迁移预通知接口,将停止成功响应通知该源虚拟机迁移管理装置,以便该源虚拟机迁移管理装置根据该停止成功响应停止运行该虚拟机,并指示该目标物理机上的目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,该方法还包括:在该虚拟机被该目标虚拟机迁移管理装置恢复时,该虚拟机通过迁移完毕通知接口,获取该目标虚拟机迁移管理装置通知的重新启动临时数据进程的通知;根据该重新启动临时数据进程的通知,重新启动被停止运行的该临时数据进程。
结合第二方面或结合第二方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,该确定临时数据内存页,包括:通过临时数据进程注册接口获取应用通知的临时数据进程的信息;根据该临时数据进程的信息,确定该临时数据进程占用的内存页为临时数据内存页。
结合第二方面或结合第二方面的第一种或第二种可能的实现方式,在第四种可能的实现方式中,该确定临时数据内存页,包括:确定临时数据专用内存块;确定该临时数据专用内存块中的所有内存页为临时数据内存页;该方法还包括:通过创建进程接口获取该应用通知的进程的类型,该进程的类型包括临时数据进程或持久化数据进程;当该进程的类型为临时数据进程时,为该临时数据进程分配该临时数据专用内存块中的内存页。
第三方面,本发明实施例提供了一种虚拟机迁移管理装置,该虚拟机迁移管理装置包括:确定模块,用于确定源物理机上的虚拟机的非临时数据内存页;复制模块,用于将该确定模块确定的该非临时数据内存页从该源物理机复制到目标物理机,以及将该非临时数据内存页的复制过程中产生的脏页从该源物理机循环复制到该目标物理机,直到未被复制的脏页的数目与该非临时数据内存页的数目之比低于预设值;迁移模块,用于在该复制模块未复制的脏页的数目与该非临时数据内存页的数目之比低于该预设值时,对该虚拟机实施迁移。
结合第三方面,在第一种可能的实现方式中,该迁移模块包括:第一停止运行单元,用于停止运行该虚拟机;第一复制单元,用于在该第一停止运行单元停止运行该虚拟机后,将该非临时数据内存页的复制过程中产生的剩余脏页以及该虚拟机上的临时数据内存页,从该源物理机复制到该目标物理机;第一发送单元,用于在该第一复制单元复制该未被复制的脏页以及该虚拟机上的临时数据内存页之后,向该目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,该第一指示信息用于指示该目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
结合第三方面,在第二种可能的实现方式中,该迁移模块,包括:第一通知单元,用于通过迁移预通知接口,通知该虚拟机停止运行临时数据进程;第一获取单元,用于通过该迁移预通知接口,获取该虚拟机通知的停止成功响应,该停止成功响应用于指示该虚拟机根据该第一通知单元的通知停止运行临时数据进程成功;第二停止运行单元,用于在该第一获取单元获取到该虚拟机通知的停止成功响应时,停止运行该虚拟机;第二复制单元,用于在该第二停止单元停止运行该虚拟机后,将该未被复制的脏页从该源物理机复制到该目标物理机;第二发送单元,用于在该第二复制单元将该未被复制的脏页从该源物理机复制到该目标物理机之后,向该目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,该第一指示信息用于指示该目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,该虚拟机迁移管理装置,还包括:发送模块,用于向该目标虚拟机迁移管理装置发送第二指示信息,该第二指示信息用于指示该目标虚拟机迁移管理装置通过迁移完毕通知接口通知该虚拟机重新启动被停止运行的该临时数据进程。
结合第三方面或第三方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,该确定模块,包括:获取单元,用于通过临时数据进程内存页注册接口,获取该虚拟机通知的临时数据内存页的信息;确定单元,用于根据该获取单元获取的该临时数据内存页的信息,确定该虚拟机上的除该临时数据内存页外的内存页为非临时数据内存页。
第四方面,本发明实施例提供了一种虚拟机,该虚拟机包括:确定模块,用于确定该虚拟机的临时数据内存页;通知模块,用于通过临时数据进程内存页注册接口,将该确定模块确定的该临时数据内存页的信息通知源物理机上的源虚拟机迁移管理装置,以便该源虚拟机迁移管理装置根据该临时数据内存页的信息确定该虚拟机的非临时数据内存页并在将该虚拟机从该源物理机迁移到目标物理机的过程中复制该非临时数据内存页。
结合第四方面,在第一种可能的实现方式中,该虚拟机还包括:第一获取模块,用于在该通知模块通过临时数据进程内存页注册接口将该临时数据内存页的信息通知该源物理机上的源虚拟机迁移管理装置之后,通过迁移预通知接口,获取该源虚拟机迁移管理装置通知的停止运行临时数据进程的通知;停止运行模块,用于根据该第一获取模块获取的该停止运行临时数据进程的通知,停止运行临时数据进程;该通知模块还用于在该停止运行模块停止运行该临时数据进程成功时,通过该迁移预通知接口,将停止成功响应通知该源虚拟机迁移管理装置,以便该源虚拟机迁移管理装置根据该停止成功响应停止运行该虚拟机,并指示该目标物理机上的目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,该虚拟机还包括:第二获取模块,用于在该虚拟机被该目标虚拟机迁移管理装置恢复时,通过迁移完毕通知接口,获取该目标虚拟机迁移管理装置通知的重新启动临时数据进程的通知;启动模块,用于根据该第二获取模块获取的该重新启动临时数据进程的通知,重新启动被停止运行的该临时数据进程。
结合第四方面或结合第四方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,该确定模块,包括:获取单元,用于通过临时数据进程注册接口,获取应用通知的临时数据进程的信息;确定单元,用于根据该获取单元获取的该临时数据进程的信息,确定该临时数据进程占用的内存页为临时数据内存页。
结合第四方面或结合第四方面的第一种或第二种可能的实现方式,在第四种可能的实现方式中,该确定模块具体用于确定临时数据专用内存块,以及确定该临时数据专用内存块中的所有内存页为临时数据内存页;该虚拟机还包括:第三获取模块,用于通过创建进程接口,获取该应用通知的进程的类型,该进程的类型包括临时数据进程或持久化数据进程;分配模块,用于当该第三获取模块获取的该进程的类型为临时数据进程时,为该临时数据进程分配该临时数据专用内存块中的内存页。
第五方面,本发明实施例提供了一种实现虚拟机热迁移的系统,该系统包括第三方面或第三方面的第一种至第四种可能的虚拟机迁移管理装置中的任一种可能的虚拟机迁移管理装置,以及第四方面或第四方面的第一种至第四种可能的虚拟机中的任一种可能的虚拟机。
基于上述技术方案,本发明实施例的实现虚拟机热迁移的方法、装置及系统,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是根据本发明实施例的实现虚拟机热迁移的系统架构图。
图1B是根据本发明实施例的实现虚拟机热迁移的方法的流程示意图。
图2是根据本发明实施例的实现虚拟机热迁移的方法的另一流程示意图。
图3是根据本发明实施例的实现虚拟机热迁移的方法的再一流程示意图。
图4是根据本发明实施例的实现虚拟机热迁移的方法的再一流程示意图。
图5是根据本发明另一实施例的实现虚拟机热迁移的方法的流程示意图。
图6是根据本发明另一实施例的实现虚拟机热迁移的方法的另一流程示意图。
图7是根据本发明另一实施例的实现虚拟机热迁移的方法的再一流程示意图。
图8是根据本发明另一实施例的实现虚拟机热迁移的方法的再一流程示意图。
图9是根据本发明另一实施例的实现虚拟机热迁移的方法的再一流程示意图。
图10是根据本发明实施例的虚拟机迁移管理装置的示意性框图。
图11是根据本发明实施例的虚拟机迁移管理装置的迁移模块的示意性框图。
图12是根据本发明实施例的虚拟机迁移管理装置的迁移模块的另一示意性框图。
图13是根据本发明实施例的虚拟机迁移管理装置的另一示意性框图。
图14是根据本发明实施例的虚拟机迁移管理装置的确定模块的示意性框图。
图15是根据本发明实施例的虚拟机的示意性框图。
图16是根据本发明实施例的虚拟机的另一示意性框图。
图17是根据本发明实施例的虚拟机的再一示意性框图。
图18是根据本发明实施例的虚拟机的确定模块的示意性框图。
图19是根据本发明实施例的虚拟机的再一示意性框图。
图20是根据本发明实施例的实现虚拟机热迁移的系统的示意性框图。
图21是根据本发明另一实施例的虚拟机迁移管理装置的示意性框图。
图22是根据本发明另一实施例的虚拟机迁移管理装置的另一示意性框图。
图23是根据本发明另一实施例的虚拟机的示意性框图。
图24是根据本发明另一实施例的实现虚拟机热迁移的系统的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
应理解,本发明实施例的技术方案可以应用于各种虚拟机系统,例如:基于vSphere软件的虚拟机系统,基于内核的虚拟机(KVirtualMachine,简称为“KVM”)、基于Xen软件的虚拟机系统等。还应理解,本发明实施例的技术方案可以应用于各种虚拟化的计算机系统,包括虚拟化的个人计算机(PersonalComputer,简称为“PC”)、虚拟化的计算机集群系统、虚拟化的大型计算机系统或各种虚拟化的超级计算机(Supercomputer)等。
图1A是根据本发明实施例的实现虚拟机热迁移的系统架构图。其中,源物理机上的应用将进程分为临时数据进程和持久化数据进程,并将此分类通知源物理机上的虚拟机,该源物理机上的虚拟机确定临时数据进程占用的临时数据内存页和持久化数据进程占用的非临时数据内存页,并将该内存页的分类通知源物理机上的源虚拟机迁移管理装置,这样,源虚拟机迁移管理装置在将虚拟机从源物理机迁移到目标物理机时,可以对临时数据内存页和非临时数据内存页采取不同的复制策略。
其中,需要说明的是,作为示例而非限定,图1A中所示的源物理机以及目标物理机可以包括巨型机、大型机、中型机、小型机、微型机或其他各种能够运行虚拟机的物理设备,本发明并不对此进行限定。
此外,需要说明的是,本发明实施例中的应用可以是各种应用程序,源虚拟机迁移管理装置以及目标虚拟机迁移管理装置可以由专门的硬件实现,也可以由软件实现,本发明并不对此进行限定。
基于图1A所示的系统架构图,本发明实施例提供了一种实现虚拟机热迁移的方法100,该方法100可以由源物理机上的源虚拟机迁移管理装置执行。如图1B所示,该方法100包括:
S110,源物理机上的源虚拟机迁移管理装置确定该源物理机上的虚拟机的非临时数据内存页;
S120,将该非临时数据内存页从该源物理机复制到目标物理机;
S130,将该非临时数据内存页的复制过程中产生的脏页从该源物理机循环复制到该目标物理机,直到未被复制的脏页的数目与该非临时数据内存页的数目之比低于预设值;
S140,在该未被复制的脏页的数目与该非临时数据内存页的数目之比低于该预设值时,对该虚拟机实施迁移。
因此,本发明实施例的实现虚拟机热迁移的方法,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少虚拟机热迁移的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
在本发明实施例中,多进程系统中的应用可以根据进程的功能和特征,将进程分为临时数据进程和持久化数据进程,其中,临时数据进程只产生临时数据,例如临时数据缓冲区的数据、临时变量等,持久化数据进程是可以产生持久化数据的进程。进程在运行的过程中一般都会产生数据,这些数据可以是临时数据,也可以是持久化数据,当然这些产生的数据中还可以既有临时数据又有持久化数据。应用可以在创建进程后判断该进程是否产生持久化数据,并将只产生临时数据而不产生持久化数据的进程确定为临时数据进程,以及将可以产生持久化数据的进程确定为持久化数据进程。当应用确定进程为临时数据进程时,可以将该临时数据进程的信息通过临时数据进程注册接口通知虚拟机。可选地,应用也可以在创建进程时判断该进程是否为临时数据进程,并通过创建进程接口通知虚拟机该进程为临时数据进程或持久化数据进程,以使得在虚拟机上注册该临时数据进程。具体地,应用可以只将临时数据进程通知虚拟机,而虚拟机将没有被通知的进程默认为持久化数据进程;可选地,应用也可以将临时数据进程和持久化数据进程均通知虚拟机,本发明实施例不限于此。应用通知虚拟机的该临时数据进程的参数可以是该临时数据进程的进程信息,该进程信息包括但不限于该临时数据进程的进程编号。
当临时数据进程在虚拟机上注册后,虚拟机可以监控该临时数据进程占用的内存页,并将该临时数据进程占用的内存页或虚拟机预先设置的为临时数据进程分配的专用内存块中的内存页标记为临时数据进程内存页。因此,在本发明实施例中,虚拟机的内存页可分为非临时数据内存页和临时数据内存页,其中,非临时数据内存页是持久化数据进程占用的内存页。虚拟机在确定了临时数据内存页之后,可以将临时数据内存页的信息通知源虚拟机迁移管理装置,从而使得源虚拟机迁移管理装置在对脏页进行循环复制时不复制临时数据内存页。
可选地,如图2所示,在本发明实施例中,S110,源虚拟机迁移管理装置确定虚拟机上的非临时数据内存页,包括:
S111,通过临时数据进程内存页注册接口获取该虚拟机通知的临时数据内存页的信息;
S112,根据该临时数据内存页的信息,确定该虚拟机上的除该临时数据内存页外的内存页为非临时数据内存页。
其中,临时数据内存页的信息可以包括但不限于临时数据内存页的编号和临时数据内存页的数量。源虚拟机迁移管理装置根据该临时数据内存页的信息,可以确定该临时数据内存页,并确定虚拟机上的除该临时数据内存页外的内存页为非临时数据内存页,但本发明实施例不限于此。
本发明实施例中的临时数据进程内存页注册接口可以被虚拟机用于向虚拟机迁移管理装置通知临时数据内存页的信息。应理解,本发明实施例中的临时数据进程内存页注册接口只是具有上述功能的接口的一个名称,可选地,该接口还可以取其它的名称,该接口应以其内在功能确定,而不应将该接口的名称作为对本发明实施例中的该接口的限定。
可选地,在本发明实施例中,虚拟机可以存储临时数据内存页的信息,并将该临时数据内存页的信息动态地通知源虚拟机迁移管理装置。具体地,在临时数据进程占用的临时数据内存页增加或减少时,虚拟机可以只将增加或减少的临时数据内存页的信息通知源虚拟机迁移管理装置,也可以根据该增加或减少的临时数据内存页的信息调整存储的临时数据内存页的信息,并将调整之后的临时数据内存页的信息通知源虚拟机迁移管理装置,本发明实施例不限于此。
可选地,作为另一实施例,虚拟机也可以为临时数据进程预先分配一定容量的临时数据专用内存块。具体地,虚拟机可以根据实际需求分配较小容量的内存块为临时数据专用内存块,并将该临时数据专用内存块的内存页分配给临时数据进程。当该临时数据专用内存块的剩余内存低于临时数据内存的所需内存时,虚拟机选取一定容量的新的内存块并将该新的内存块添加到临时数据专用内存块中。这样虚拟机可以动态地为临时数据进程分配内存块,既方便又可有效地利用内存。此时,虚拟机只需要将初始的该临时数据内存块中的所有内存页的信息通知源虚拟机迁移管理装置,以及在该临时数据内存块发生变化时将内存块的变化通知源虚拟机迁移管理装置,而无需在临时数据进程占用的内存发生变化时均通知源虚拟机迁移管理装置,从而节约系统开销并且方便管理,但本发明实施例不限于此。
源虚拟机迁移管理装置在确定了临时数据内存页和非临时数据内存页后,在第一次复制和脏页的循环复制过程中可以对临时数据内存页实施旁路(by-pass)功能,即绕过临时数据内存页而只复制非临时数据内存页。在S120中,源虚拟机迁移管理装置对虚拟机上的内存页进行第一次复制,并且在第一次复制过程中只复制非临时数据内存页,并将在该复制过程中被改动的非临时数据内存页标记为脏页。在第一次复制完成后,源虚拟机迁移管理装置执行S130,即执行脏页的循环复制过程,源虚拟机迁移管理装置在未被复制的脏页数目与该非临时数据内存页的数目之比不低于预设值时,将该未被复制的脏页从源物理机复制到目标物理机。
具体地,源虚拟机迁移管理装置首先复制在第一次复制非临时数据内存页的过程中产生的脏页,并且将在这次脏页复制过程中被改动的内存页标记为脏页,在此后每轮的脏页复制过程中均复制上一轮脏页复制过程中产生的脏页,直到上一轮脏页复制过程中产生的脏页数目与非临时数据内存页的总数目之比低于预设值时,结束该脏页的循环复制过程。需要说明的是,当将脏页从源物理机被复制到目标物理机后,需要将源物理机上的被复制的脏页标记为非脏页,以避免在下一轮脏页复制的时候再次被复制。其中,该预设值可以为固定值,但本发明实施例不限于此。
在S140中,该源虚拟机迁移管理装置可以停止运行虚拟机,并对循环复制过程中的未被复制的脏页和临时数据内存页进行复制。因此,可选地,如图3所示,S140,包括:
S141a,停止运行该虚拟机;
S142a,将该未被复制的脏页以及该虚拟机上的临时数据内存页,从该源物理机复制到该目标物理机;
S143a,向该目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,该第一指示信息用于指示该目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
其中,源虚拟机迁移管理装置停止运行该虚拟机,并在该虚拟机停止运行后,将该未被复制的脏页,即在脏页的循环复制的最后一次复制过程中产生的脏页,以及临时数据内存页从源物理机复制到目标物理机,在该复制过程完成后,源虚拟机迁移管理装置向位于目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,以使得该目标虚拟机迁移管理装置在目标物理机上恢复该虚拟机。其中,在目标物理机上恢复该虚拟机是指在目标物理机上启动该虚拟机,并且将该虚拟机的状态恢复到其在源物理机上被停止运行时的状态。
因此,本发明实施例的实现虚拟机热迁移的方法,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
可选地,源虚拟机迁移管理装置也可以在停止虚拟机之前通知该虚拟机停止运行临时数据进程,以使得临时数据进程占用的临时数据内存页被释放,从而可以在虚拟机停止运行后只复制剩余脏页而不复制临时数据内存页。因此,可选地,作为另一实施例,如图4所示,S140,包括:
S141b,通过迁移预通知接口通知该虚拟机停止运行临时数据进程;
S142b,在通过该迁移预通知接口获取到该虚拟机通知的停止成功响应时,停止运行该虚拟机,该停止成功响应用于指示该虚拟机停止运行临时数据进程成功;
S143b,将该未被复制的脏页从该源物理机复制到该目标物理机;
S144b,向该目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,该第一指示信息用于指示该目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
其中,源虚拟机迁移管理装置可以通知虚拟机停止运行临时数据进程,并在得到虚拟机的停止成功响应指示该虚拟机成功停止运行临时数据进程时,停止运行该虚拟机。此时,由于虚拟机在被停止运行之前已经停止运行了临时数据进程,因此该临时数据进程占用的内存页被释放,源虚拟机迁移管理装置可以只复制剩余的脏页而不复制临时数据内存页,这样可以有效地减少复制的内存页的数量,缩短复制所需时间,并进一步地降低系统CPU和网络带宽的消耗,提高了用户体验。
本发明实施例中的迁移预通知接口可以被虚拟机迁移管理装置用于将停止运行临时数据进程通知虚拟机,以及可以被虚拟机用于将停止成功响应通知虚拟机迁移管理装置。应理解,本发明实施例中的迁移预通知接口只是具有上述功能的接口的一个名称,可选地,该接口还可以取其它的名称,该接口应以其内在功能确定,而不应将该接口的名称作为对本发明实施例中的该接口的限定。还应理解,在本发明实施例中,A通过某一接口通知B是指A通过该接口向B发送一个信息,或A调用该接口,但本发明实施例不限于此。
可选地,源虚拟机迁移管理装置也可以指示目标虚拟机迁移管理装置在虚拟机被恢复后,在目标物理机上重新启动在源物理机上被停止运行的临时数据进程,从而方便用户继续使用。因此,可选地,该方法100还包括:
S150,向该目标虚拟机迁移管理装置发送第二指示信息,该第二指示信息用于指示该目标虚拟机迁移管理装置通过迁移完毕通知接口通知该虚拟机重新启动被停止运行的该临时数据进程。
其中,源虚拟机迁移管理装置可以同时向目标虚拟机迁移管理装置发送第一指示信息和第二指示信息,虚拟机迁移管理装置也可以在发送第一指示信息后发送第二指示信息,因此,S150可以和S144b同时执行,也可以在S144之后执行,本发明实施例不限于此。
可选地,该目标虚拟机迁移管理装置可以通知虚拟机在目标物理机上重启该临时数据进程,也可以通知虚拟机重启该临时数据进程的应用并通知该应用重启该临时数据进程,但本发明实施例不限于此。
本发明实施例中的迁移完毕通知接口可以被虚拟机迁移管理装置用于通知该虚拟机在该目标物理机上重新启动被停止运行的临时数据进程。应理解,本发明实施例中的迁移完毕通知接口只是具有上述功能的接口的一个名称,可选地,该接口还可以取其它的名称,该接口应以其内在功能确定,而不应将该接口的名称作为对本发明实施例中的该接口的限定。
因此,本发明实施例的实现虚拟机热迁移的方法,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
上文中结合图1至图4,从源虚拟机迁移管理装置的角度详细描述了根据本发明实施例的实现虚拟机热迁移的方法,下面将结合图5至图8,从虚拟机的角度描述根据本发明实施例的实现虚拟机热迁移的方法。
图5是根据本发明实施例的实现虚拟机热迁移的方法200的流程示意图,该方法200可以由虚拟机执行。如图5所示,该方法200包括:
S210,源物理机上的虚拟机确定虚拟机的临时数据内存页;
S220,通过临时数据进程内存页注册接口将该临时数据内存页的信息通知该源物理机上的源虚拟机迁移管理装置,以便该源虚拟机迁移管理装置根据该临时数据内存页的信息确定该虚拟机的非临时数据内存页并在将该虚拟机从该源物理机热迁移到目标物理机的过程中复制该非临时数据内存页。
源物理机上的虚拟机确定临时数据内存页,并通过临时数据进程内存页注册接口将该临时数据内存页的信息通知位于该源物理机上的源虚拟机迁移管理装置,该源虚拟机迁移管理装置根据该临时数据内存页的信息确定虚拟机上的临时数据内存页和非临时数据内存页,并在第一次复制内存页以及脏页的循环复制的过程中均只复制该非临时数据内存页而不复制临时数据内存页。
因此,本发明实施例的实现虚拟机热迁移的方法,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
可选地,虚拟机可以通过临时数据进程注册接口获取应用通知的临时进程的信息,如图6所示,在本发明实施例中,S210包括:
S211a,通过临时数据进程注册接口获取应用通知的临时数据进程的信息;
S212a,根据该临时数据进程的信息,确定该临时数据进程占用的内存页为临时数据内存页。
其中,应用可以在创建进程后判断该进程是否为临时数据进程,当该进程为临时数据进程时,将该临时数据进程的信息通过临时数据进程注册接口通知虚拟机。
本发明实施例中的临时数据进程注册接口可以被虚拟机上的应用用于将临时数据进程的信息通知虚拟机迁移管理装置。应理解,本发明实施例中的临时数据进程注册接口只是具有上述功能的接口的一个名称,可选地,该接口还可以取其它的名称,该接口应以其内在功能确定,而不应将该接口的名称作为对本发明实施例中的该接口的限定。
可选地,虚拟机也可以预设专用内存块供临时数据进程使用,因此,可选地,作为另一实施例,S210包括:
S211b,确定临时数据专用内存块;
S212b,确定该临时数据专用内存块中的所有内存页为临时数据内存页;
相应地,如图7所示,该方法200还包括:
S230,通过创建进程接口获取该应用通知的进程的类型,该进程的类型包括临时数据进程或持久化数据进程;
S240,当该进程的类型为临时数据进程时,为该临时数据进程分配该临时数据专用内存块中的内存页。
其中,虚拟机可以为临时数据进程预先分配一定容量的临时数据专用内存块,并在该临时数据专用内存块中选取内存分配给临时数据进程。
可选地,虚拟机在创建进程时判断该进程是否为临时数据进程,并通过创建进程注册接口通知虚拟机该进程为临时数据进程或持久化数据进程,但本发明实施例不限于此。
可选地,如图8所示,在本发明实施例中,在S220之后,该方法200还包括:
S250,通过迁移预通知接口,获取该源虚拟机迁移管理装置通知的停止运行临时数据进程的通知;
S260,根据该停止运行临时数据进程的通知,停止运行临时数据进程;
S270,在停止运行该临时数据进程成功时,通过该迁移预通知接口将停止成功响应通知该源虚拟机迁移管理装置,以便该源虚拟机迁移管理装置根据该停止成功响应停止运行该虚拟机并指示该目标物理机上的目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
由于虚拟机在被停止运行之前已经停止运行了临时数据进程,因此该临时数据进程占用的内存页被释放,源虚拟机迁移管理装置可以只复制剩余的脏页而不复制临时数据内存页,这样可以有效地减少复制的内存页的数量,缩短复制所需时间,并进一步地降低系统CPU和网络带宽的消耗,提高了用户体验。
可选地,如图9所示,在本发明实施例中,该方法200还包括:
S280,在该虚拟机被该目标虚拟机迁移管理装置恢复时,该虚拟机通过迁移完毕通知接口获取该目标虚拟机迁移管理装置通知的重新启动临时数据进程的通知;
S290,根据该重新启动临时数据进程的通知,重新启动被停止运行的临时数据进程。
因此,本发明实施例的实现虚拟机热迁移的方法,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
应理解,上述各实施例中的各种接口还可以取其它的名称,这些接口应以其内在功能确定,而不应将这些接口的名称作为对本发明实施例中的这些接口的限定。
上文中结合图1至图9,详细描述了根据本发明实施例的热迁移虚拟机的方法,下面将结合图10至图13,详细描述根据本发明实施例的虚拟机迁移管理装置和虚拟机。
图10是根据本发明实施例的虚拟机迁移管理装置300的示意性框图。如图10所示,该虚拟机迁移管理装置300包括:
确定模块310,用于确定源物理机上的虚拟机的非临时数据内存页;
复制模块320,用于将该确定模块310确定的该非临时数据内存页从该源物理机复制到目标物理机,以及将该非临时数据内存页的复制过程中产生的脏页从该源物理机循环复制到该目标物理机,直到未被复制的脏页的数目与该非临时数据内存页的数目之比低于预设值;
迁移模块330,用于在该复制模块320未复制的脏页的数目与该非临时数据内存页的数目之比低于该预设值时,对该虚拟机实施迁移。
因此,本发明实施例的虚拟机迁移管理装置,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
可选地,虚拟机迁移管理装置可以停止虚拟机并复制临时数据内存页,如图11所示,该迁移模块330,包括:
第一停止运行单元331a,用于停止运行该虚拟机;
第一复制单元332a,用于在该第一停止运行单元331a停止运行该虚拟机后,将该未被复制的脏页以及该虚拟机上的临时数据内存页,从该源物理机复制到该目标物理机;
第一发送单元333a,用于在该第一复制单元332a复制该未被复制的脏页以及该虚拟机上的临时数据内存页之后,向该目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,该第一指示信息用于指示该目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
可选地,虚拟机迁移管理装置也可以在停止运行虚拟机之前停止运行临时数据进程,而在停止虚拟机后不必复制临时数据内存页,因此,可选地,作为另一实施例,如图12所示,该迁移模块330,包括:
第一通知单元331b,用于通过迁移预通知接口通知该虚拟机停止运行临时数据进程;
第一获取单元332b,用于通过该迁移预通知接口获取该虚拟机通知的停止成功响应,该停止成功响应用于指示该虚拟机根据该第一通知单元331b的通知停止运行临时数据进程成功;
第二停止运行单元333b,用于在该第一获取单元332b获取到该虚拟机通知的的停止成功响应时,停止运行该虚拟机;
第二复制单元334b,用于在该第二停止单元333b停止运行该虚拟机时,将该未被复制的脏页从该源物理机复制到该目标物理机;
第二发送单元335b,用于在该第二复制单元334b将该未被复制的脏页从该源物理机复制到该目标物理机之后,向该目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,该第一指示信息用于指示该目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机
可选地,作为另一实施例,如图13所示,该虚拟机迁移管理装置300,还包括:发送模块340,用于向该目标虚拟机迁移管理装置发送第二指示信息,该第二指示信息用于指示该目标虚拟机迁移管理装置通过迁移完毕通知接口通知该虚拟机重新启动被停止运行的该临时数据进程。
可选地,作为另一实施例,如图14所示,该确定模块310,包括:
获取单元311,用于通过临时数据进程内存页注册接口获取该虚拟机通知的临时数据内存页的信息;
确定单元312,用于根据该获取单元311获取的该临时数据内存页的信息,确定该虚拟机上的除该临时数据内存页外的内存页为非临时数据内存页。
应理解,根据本发明实施例的虚拟机迁移管理装置300可对应于本发明实施例中的源虚拟机迁移管理装置,并且虚拟机迁移管理装置300中的各个模块的上述和其它操作和/或功能分别为了实现图1至图4中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的虚拟机迁移管理装置,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
图15示出了根据本发明实施例的虚拟机400的示意性框图,该虚拟机位于源物理机上,需要说明的是,该虚拟机也可以应用于目标物理机上,本发明并不对此进行限定。如图15所示,该虚拟机400包括:
确定模块410,用于确定源物理机上的虚拟机的临时数据内存页;
通知模块420,用于通过临时数据进程内存页注册接口将该确定模块410确定的该临时数据内存页的信息通知该源物理机上的源虚拟机迁移管理装置,以便该源虚拟机迁移管理装置根据该临时数据内存页的信息确定该虚拟机的非临时数据内存页并在将该虚拟机从该源物理机热迁移到目标物理机的过程中复制该非临时数据内存页。
因此,本发明实施例的虚拟机,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
可选地,如图16所示,在本发明实施例中,该虚拟机400还包括:
第一获取模块430,用于在该通知模块420通过临时数据进程内存页注册接口将该临时数据内存页的信息通知该源物理机上的源虚拟机迁移管理装置之后,通过迁移预通知接口获取该源虚拟机迁移管理装置通知的停止运行临时数据进程的通知;
停止运行模块440,用于根据该第一获取模块430获取的该停止运行临时数据进程的通知,停止运行临时数据进程;
该通知模块420还用于在该停止运行模块440停止运行该临时数据进程成功时,通过该迁移预通知接口,将停止成功响应通知该源虚拟机迁移管理装置,以便该源虚拟机迁移管理装置根据该停止成功响应停止运行该虚拟机并指示该目标物理机上的目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
可选地,作为另一实施例,如图17所示,该虚拟机400还包括:
第二获取模块450,用于在该虚拟机被该目标虚拟机迁移管理装置恢复时,通过迁移完毕通知接口,获取该目标虚拟机迁移管理装置通知的重新启动临时数据进程的通知;
启动模块460,用于根据该第二获取模块450获取的该重新启动临时数据进程的通知,重新启动被停止运行的该临时数据进程。
可选地,应用可以在创建进程后将临时数据进程通过临时数据进程注册接口通知虚拟机,因此,作为另一实施例,如图18所示,该确定模块410,包括:
获取单元411,用于通过临时数据进程注册接口获取应用通知的临时数据进程的信息;
确定单元412,用于根据该获取单元411获取的该临时数据进程的信息,确定该临时数据进程占用的内存页为临时数据内存页。
可选地,作为另一实施例,该确定模块410具体用于确定临时数据专用内存块以及确定该临时数据专用内存块中的所有内存页为临时数据内存页;
应用可以在创建进程时将临时数据进程通过创建进程接口通知虚拟机,而虚拟机为该临时数据进程分配相应的内存,因此,如图19所示,该虚拟机400还包括:
第三获取模块470,用于通过创建进程接口获取该应用通知的进程的类型,该进程的类型包括临时数据进程或持久化数据进程;
分配模块480,用于当该第三获取模块470获取的该进程的类型为临时数据进程时,为该临时数据进程分配该临时数据专用内存块中的内存页。
应理解,根据本发明实施例的虚拟机400可对应于本发明实施例中的虚拟机,并且虚拟机400中的各个模块的上述和其它操作和/或功能分别为了实现图5至图9中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的虚拟机,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
图20是根据本发明实施例的实现虚拟机热迁移的系统500的示意性框图,该实现虚拟机热迁移的系统可以是上述各方法和装置描述中的源物理机或目标物理机,也可以是源物理机或目标物理机之外的其它系统,本发明实施例对此不作限定,如图20所示,该系统500包括:虚拟机迁移管理装置510和虚拟机520,其中,该虚拟机迁移管理装置510可以是图10至图14描述的任一种虚拟机迁移管理装置,该虚拟机520可以是图15至图19描述的任一种虚拟机。
因此,本发明实施例的实现虚拟机热迁移的系统,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
图21是根据本发明实施例的虚拟机迁移管理装置600的示意性框图。如图21所示,该虚拟机迁移管理装置600包括储存器610,和处理器620,例如CPU,该处理器620用于执行存储器610存储的指令。具体地,该处理器620具体用于确定源物理机上的虚拟机的非临时数据内存页,并将该非临时数据内存页从该源物理机复制到目标物理机,以及将该非临时数据内存页的复制过程中产生的脏页从该源物理机循环复制到该目标物理机,直到未被复制的脏页的数目与该非临时数据内存页的数目之比低于预设值,以及在该未被复制的脏页的数目与该非临时数据内存页的数目之比低于该预设值时,对该虚拟机实施迁移。
因此,本发明实施例的虚拟机迁移管理装置,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
可选地,在本发明实施例中,该处理器620还用于停止运行该虚拟机,并将该未被复制的脏页以及该虚拟机上的临时数据内存页,从该源物理机复制到该目标物理机;
相对应地,如图22所示,该虚拟机迁移管理装置600还包括:
发送器630,用于向该目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,该第一指示信息用于指示该目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
可选地,作为另一实施例,该处理器620还用于通过迁移预通知接口,通知该虚拟机停止运行临时数据进程,并通过该迁移预通知接口获取该虚拟机通知的用于指示该虚拟机停止运行临时数据进程成功的停止成功响应,以及当获取到该虚拟机通知的停止成功响应时,停止运行该虚拟机,并将该未被复制的脏页从该源物理机复制到该目标物理机;
该发送器630还用于在停止运行该虚拟机之后,向该目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,该第一指示信息用于指示该目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
可选地,作为另一实施例,该发送器630还用于向该目标虚拟机迁移管理装置发送第二指示信息,该第二指示信息用于指示该目标虚拟机迁移管理装置通过迁移完毕通知接口通知该虚拟机重新启动被停止运行的该临时数据进程。
可选地,作为另一实施例,该处理器620还用于通过临时数据进程内存页注册接口获取该虚拟机通知的临时数据内存页的信息,并根据该临时数据内存页的信息,确定该虚拟机上的除该临时数据内存页外的内存页为非临时数据内存页。
应理解,根据本发明实施例的虚拟机迁移管理装置600可对应于本发明实施例中的源虚拟机迁移管理装置,并且虚拟机迁移管理装置600中的各个模块的上述和其它操作和/或功能分别为了实现图1至图4中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的虚拟机迁移管理装置,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
图23示出了根据本发明实施例的虚拟机700的示意性框图。如图23所示,该虚拟机700包括存储器710和处理器720,该处理器720用于执行存储器710存储的指令。具体地,该处理器720具体用于确定源物理机上的虚拟机的临时数据内存页,并通过临时数据进程内存页注册接口将该临时数据内存页的信息通知该源物理机上的源虚拟机迁移管理装置,以便该源虚拟机迁移管理装置根据该临时数据内存页的信息确定该虚拟机的非临时数据内存页并在将该虚拟机从该源物理机热迁移到目标物理机的过程中复制该非临时数据内存页。
可选地,在本发明实施例中,该处理器720还用于通过迁移预通知接口获取该源虚拟机迁移管理装置通知的停止运行临时数据进程的通知,并根据该停止运行临时数据进程的通知,停止运行临时数据进程,以及在停止运行该临时数据进程成功时,通过该迁移预通知接口将停止成功响应通知该源虚拟机迁移管理装置,以便该源虚拟机迁移管理装置根据该停止成功响应停止运行该虚拟机并指示该目标物理机上的目标虚拟机迁移管理装置在该目标物理机上恢复该虚拟机。
可选地,作为另一实施例,该处理器720还用于在该虚拟机被该目标虚拟机迁移管理装置恢复时,通过迁移完毕通知接口获取该目标虚拟机迁移管理装置通知的重新启动临时数据进程的通知,并根据该重新启动临时数据进程的通知,重新启动被停止运行的临时数据进程。
可选地,作为另一实施例,该处理器720还用于通过临时数据进程注册接口获取应用通知的临时数据进程的信息,并根据该临时数据进程的信息,确定该临时数据进程占用的内存页为临时数据内存页。
可选地,作为另一实施例,该处理器720还用于确定临时数据专用内存块以及确定该临时数据专用内存块中的所有内存页为临时数据内存页,并通过创建进程接口获取该应用通知的进程的类型,该进程的类型包括临时数据进程或持久化数据进程,以及当该进程的类型为临时数据进程时,为该临时数据进程分配该临时数据专用内存块中的内存页。
应理解,根据本发明实施例的虚拟机700可对应于本发明实施例中的虚拟机,并且虚拟机700中的各个模块的上述和其它操作和/或功能分别为了实现图5至图9中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的虚拟机,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
图24是根据本发明实施例的实现虚拟机热迁移的系统800的示意性框图,该实现虚拟机热迁移的系统可以是上述各方法和装置描述中的源物理机或目标物理机,也可以是源物理机或目标物理机之外的其它系统,本发明实施例对此不作限定,如图24所示,该系统800包括:虚拟机迁移管理装置810和虚拟机820,其中,该虚拟机迁移管理装置810可以是图21至图22描述的任一种虚拟机迁移管理装置,该虚拟机820可以是图23描述的虚拟机。
因此,本发明实施例的实现虚拟机热迁移的系统,通过对多进程系统中的进程和内存页进行分类,能够在脏页的循环复制过程中不复制临时数据内存页而只复制非临时数据内存页,从而减少热迁移虚拟机的耗时,降低由临时数据的变化而造成的系统CPU和网络带宽等系统资源的浪费,节省了系统资源,提高了用户体验。
应理解,上述各实施例中的各种接口还可以取其它的名称,这些接口应以其内在功能确定,而不应将这些接口的名称作为对本发明实施例中的这些接口的限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称为“ROM”)、随机存取存储器(RandomAccessMemory,简称为“RAM”)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (21)
1.一种实现虚拟机热迁移的方法,其特征在于,包括:
源物理机上的源虚拟机迁移管理装置确定所述源物理机上的虚拟机的非临时数据内存页;
将所述非临时数据内存页从所述源物理机复制到目标物理机;
将所述非临时数据内存页的复制过程中产生的脏页从所述源物理机循环复制到所述目标物理机,直到未被复制的脏页的数目与所述非临时数据内存页的数目之比低于预设值;
在所述未被复制的脏页的数目与所述非临时数据内存页的数目之比低于所述预设值时,对所述虚拟机实施迁移。
2.根据权利要求1所述的方法,其特征在于,所述对所述虚拟机实施迁移,包括:
停止运行所述虚拟机;
将所述未被复制的脏页以及所述虚拟机上的临时数据内存页,从所述源物理机复制到所述目标物理机;
向所述目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,所述第一指示信息用于指示所述目标虚拟机迁移管理装置在所述目标物理机上恢复所述虚拟机。
3.根据权利要求1所述的方法,其特征在于,所述对所述虚拟机实施迁移,包括:
通过迁移预通知接口,通知所述虚拟机停止运行临时数据进程;
在通过所述迁移预通知接口获取到所述虚拟机通知的停止成功响应时,停止运行所述虚拟机,所述停止成功响应用于指示所述虚拟机停止运行临时数据进程成功;
将所述未被复制的脏页从所述源物理机复制到所述目标物理机;
向所述目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,所述第一指示信息用于指示所述目标虚拟机迁移管理装置在所述目标物理机上恢复所述虚拟机。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
向所述目标虚拟机迁移管理装置发送第二指示信息,所述第二指示信息用于指示所述目标虚拟机迁移管理装置通过迁移完毕通知接口通知所述虚拟机重新启动被停止运行的所述临时数据进程。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述确定源物理机上的虚拟机的非临时数据内存页,包括:
通过临时数据进程内存页注册接口,获取所述虚拟机通知的临时数据内存页的信息;
根据所述临时数据内存页的信息,确定所述虚拟机上的除所述临时数据内存页外的内存页为非临时数据内存页。
6.一种实现虚拟机热迁移的方法,其特征在于,包括:
源物理机上的虚拟机确定虚拟机的临时数据内存页;
通过临时数据进程内存页注册接口,将所述临时数据内存页的信息通知所述源物理机上的源虚拟机迁移管理装置,以便所述源虚拟机迁移管理装置根据所述临时数据内存页的信息确定所述虚拟机的非临时数据内存页,并在将所述虚拟机从所述源物理机热迁移到目标物理机的过程中复制所述非临时数据内存页。
7.根据权利要求6所述的方法,其特征在于,在所述通过临时数据进程内存页注册接口将所述临时数据内存页的信息通知所述源物理机上的源虚拟机迁移管理装置之后,所述方法还包括:
通过迁移预通知接口,获取所述源虚拟机迁移管理装置通知的停止运行临时数据进程的通知;
根据所述停止运行临时数据进程的通知,停止运行临时数据进程;
在停止运行所述临时数据进程成功时,通过所述迁移预通知接口,将停止成功响应通知所述源虚拟机迁移管理装置,以便所述源虚拟机迁移管理装置根据所述停止成功响应停止运行所述虚拟机,并指示所述目标物理机上的目标虚拟机迁移管理装置在所述目标物理机上恢复所述虚拟机。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述虚拟机被所述目标虚拟机迁移管理装置恢复时,所述虚拟机通过迁移完毕通知接口,获取所述目标虚拟机迁移管理装置通知的重新启动临时数据进程的通知;
根据所述重新启动临时数据进程的通知,重新启动被停止运行的所述临时数据进程。
9.根据权利要求6-8中任一项所述的方法,其特征在于,所述确定临时数据内存页,包括:
通过临时数据进程注册接口,获取应用通知的临时数据进程的信息;
根据所述临时数据进程的信息,确定所述临时数据进程占用的内存页为临时数据内存页。
10.根据权利要求6-8中任一项所述的方法,其特征在于,所述确定临时数据内存页,包括:
确定临时数据专用内存块;
确定所述临时数据专用内存块中的所有内存页为临时数据内存页;
所述方法还包括:
通过创建进程接口,获取应用通知的进程的类型,所述进程的类型包括临时数据进程或持久化数据进程;
当所述进程的类型为临时数据进程时,为所述临时数据进程分配所述临时数据专用内存块中的内存页。
11.一种虚拟机迁移管理装置,其特征在于,包括:
确定模块,用于确定源物理机上的虚拟机的非临时数据内存页;
复制模块,用于将所述确定模块确定的所述非临时数据内存页从所述源物理机复制到目标物理机,以及将所述非临时数据内存页的复制过程中产生的脏页从所述源物理机循环复制到所述目标物理机,直到未被复制的脏页的数目与所述非临时数据内存页的数目之比低于预设值;
迁移模块,用于在所述复制模块未复制的脏页的数目与所述非临时数据内存页的数目之比低于所述预设值时,对所述虚拟机实施迁移。
12.根据权利要求11所述的虚拟机迁移管理装置,其特征在于,所述迁移模块,包括:
第一停止运行单元,用于停止运行所述虚拟机;
第一复制单元,用于在所述第一停止运行单元停止运行所述虚拟机后,将所述未被复制的脏页以及所述虚拟机上的临时数据内存页,从所述源物理机复制到所述目标物理机;
第一发送单元,用于在所述第一复制单元复制所述未被复制的脏页以及所述虚拟机上的临时数据内存页之后,向所述目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,所述第一指示信息用于指示所述目标虚拟机迁移管理装置在所述目标物理机上恢复所述虚拟机。
13.根据权利要求11所述的虚拟机迁移管理装置,其特征在于,所述迁移模块,包括:
第一通知单元,用于通过迁移预通知接口,通知所述虚拟机停止运行临时数据进程;
第一获取单元,用于通过所述迁移预通知接口,获取所述虚拟机通知的停止成功响应,所述停止成功响应用于指示所述虚拟机根据所述第一通知单元的通知停止运行临时数据进程成功;
第二停止运行单元,用于在所述第一获取单元获取到所述虚拟机通知的停止成功响应时,停止运行所述虚拟机;
第二复制单元,用于在所述第二停止单元停止运行所述虚拟机后,将所述未被复制的脏页从所述源物理机复制到所述目标物理机;
第二发送单元,用于在所述第二复制单元将所述未被复制的脏页从所述源物理机复制到所述目标物理机之后,向所述目标物理机上的目标虚拟机迁移管理装置发送第一指示信息,所述第一指示信息用于指示所述目标虚拟机迁移管理装置在所述目标物理机上恢复所述虚拟机。
14.根据权利要求13所述的虚拟机迁移管理装置,其特征在于,所述虚拟机迁移管理装置,还包括:
发送模块,用于向所述目标虚拟机迁移管理装置发送第二指示信息,所述第二指示信息用于指示所述目标虚拟机迁移管理装置通过迁移完毕通知接口通知所述虚拟机重新启动被停止运行的所述临时数据进程。
15.根据权利要求11-14中任一项所述的虚拟机迁移管理装置,其特征在于,所述确定模块,包括:
获取单元,用于通过临时数据进程内存页注册接口,获取所述虚拟机通知的临时数据内存页的信息;
确定单元,用于根据所述获取单元获取的所述临时数据内存页的信息,确定所述虚拟机上的除所述临时数据内存页外的内存页为非临时数据内存页。
16.一种虚拟机,其特征在于,包括:
确定模块,用于确定所述虚拟机的临时数据内存页;
通知模块,用于通过临时数据进程内存页注册接口,将所述确定模块确定的所述临时数据内存页的信息通知源物理机上的源虚拟机迁移管理装置,以便所述源虚拟机迁移管理装置根据所述临时数据内存页的信息确定所述虚拟机的非临时数据内存页并在将所述虚拟机从所述源物理机热迁移到目标物理机的过程中复制所述非临时数据内存页。
17.根据权利要求16所述的虚拟机,其特征在于,所述虚拟机还包括:
第一获取模块,用于在所述通知模块通过临时数据进程内存页注册接口将所述临时数据内存页的信息通知所述源物理机上的源虚拟机迁移管理装置之后,通过迁移预通知接口,获取所述源虚拟机迁移管理装置通知的停止运行临时数据进程的通知;
停止运行模块,用于根据所述第一获取模块获取的所述停止运行临时数据进程的通知,停止运行临时数据进程;
所述通知模块还用于在所述停止运行模块停止运行所述临时数据进程成功时,通过所述迁移预通知接口,将停止成功响应通知所述源虚拟机迁移管理装置,以便所述源虚拟机迁移管理装置根据所述停止成功响应停止运行所述虚拟机,并指示所述目标物理机上的目标虚拟机迁移管理装置在所述目标物理机上恢复所述虚拟机。
18.根据权利要求17所述的虚拟机,其特征在于,所述虚拟机还包括:
第二获取模块,用于在所述虚拟机被所述目标虚拟机迁移管理装置恢复时,通过迁移完毕通知接口,获取所述目标虚拟机迁移管理装置通知的重新启动临时数据进程的通知;
启动模块,用于根据所述第二获取模块获取的所述重新启动临时数据进程的通知,重新启动被停止运行的所述临时数据进程。
19.根据权利要求16-18中任一项所述的虚拟机,其特征在于,所述确定模块,包括:
获取单元,用于通过临时数据进程注册接口,获取应用通知的临时数据进程的信息;
确定单元,用于根据所述获取单元获取的所述临时数据进程的信息,确定所述临时数据进程占用的内存页为临时数据内存页。
20.根据权利要求16-18中任一项所述的虚拟机,其特征在于,所述确定模块具体用于确定临时数据专用内存块,以及确定所述临时数据专用内存块中的所有内存页为临时数据内存页;
所述虚拟机还包括:
第三获取模块,用于通过创建进程接口,获取应用通知的进程的类型,所述进程的类型包括临时数据进程或持久化数据进程;
分配模块,用于当所述第三获取模块获取的所述进程的类型为临时数据进程时,为所述临时数据进程分配所述临时数据专用内存块中的内存页。
21.一种实现虚拟机热迁移的系统,包括如权利要求11-15中任一项所述的虚拟机迁移管理装置,以及如权利要求16-20中任一项所述的虚拟机。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210504276.4A CN103049308B (zh) | 2012-11-30 | 2012-11-30 | 实现虚拟机热迁移的方法、装置及系统 |
EP13858092.3A EP2916217B1 (en) | 2012-11-30 | 2013-07-18 | Method, apparatus, and system for implementing hot migration of virtual machine |
JP2015544320A JP5965552B2 (ja) | 2012-11-30 | 2013-07-18 | バーチャルマシーンのホットマイグレーションを実現する方法、装置及びシステム |
PCT/CN2013/079570 WO2014082459A1 (zh) | 2012-11-30 | 2013-07-18 | 实现虚拟机热迁移的方法、装置及系统 |
US14/724,367 US9672075B2 (en) | 2012-11-30 | 2015-05-28 | Method, apparatus, and system for implementing hot migration of virtual machine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210504276.4A CN103049308B (zh) | 2012-11-30 | 2012-11-30 | 实现虚拟机热迁移的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103049308A CN103049308A (zh) | 2013-04-17 |
CN103049308B true CN103049308B (zh) | 2016-01-20 |
Family
ID=48061958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210504276.4A Active CN103049308B (zh) | 2012-11-30 | 2012-11-30 | 实现虚拟机热迁移的方法、装置及系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9672075B2 (zh) |
EP (1) | EP2916217B1 (zh) |
JP (1) | JP5965552B2 (zh) |
CN (1) | CN103049308B (zh) |
WO (1) | WO2014082459A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309625B (zh) * | 2013-05-29 | 2016-06-08 | 华为技术有限公司 | 一种基于自适应存储热迁移的方法和系统 |
JP6160253B2 (ja) * | 2013-05-30 | 2017-07-12 | 富士通株式会社 | 仮想機械管理装置、仮想機械管理方法及び情報処理システム |
CN103353850B (zh) * | 2013-06-13 | 2017-02-22 | 华为技术有限公司 | 虚拟机热迁移内存处理方法、装置和系统 |
US9436751B1 (en) * | 2013-12-18 | 2016-09-06 | Google Inc. | System and method for live migration of guest |
CN103744725B (zh) * | 2013-12-24 | 2017-01-25 | 杭州华为数字技术有限公司 | 一种虚拟机管理方法及装置 |
CN103955399B (zh) * | 2014-04-30 | 2017-06-20 | 华为技术有限公司 | 一种虚拟机迁移方法和装置及物理主机 |
CN104243203A (zh) * | 2014-08-28 | 2014-12-24 | 深圳市深信服电子科技有限公司 | 虚拟机传输接口状态切换方法和系统 |
US10296452B2 (en) * | 2015-05-11 | 2019-05-21 | SK Hynix Inc. | Data separation by delaying hot block garbage collection |
CN105138394A (zh) * | 2015-09-21 | 2015-12-09 | 上海爱数软件有限公司 | 一种热迁移kvm虚拟机的方法及系统 |
US11074092B2 (en) * | 2015-12-18 | 2021-07-27 | Intel Corporation | Virtual machine batch live migration |
US10127066B1 (en) | 2016-03-31 | 2018-11-13 | Amazon Technologies, Inc. | Server synchronization using continuous block migration in provider network environments |
US10133593B1 (en) | 2016-03-31 | 2018-11-20 | Amazon Technologies, Inc. | Virtual machine migration |
CN107465626A (zh) * | 2016-06-03 | 2017-12-12 | 阿里巴巴集团控股有限公司 | 一种虚拟机热迁移方法及装置 |
US9880872B2 (en) * | 2016-06-10 | 2018-01-30 | GoogleLLC | Post-copy based live virtual machines migration via speculative execution and pre-paging |
CN108121589A (zh) * | 2016-11-30 | 2018-06-05 | 中标软件有限公司 | 一种虚拟机的在线迁移自动收敛的方法 |
US11494215B2 (en) | 2017-03-31 | 2022-11-08 | Intel Corporation | Techniques to decrease a live migration time for a virtual machine |
CN107479944B (zh) * | 2017-07-20 | 2021-11-30 | 上海交通大学 | 混合云模式下的虚拟机内存自适应热迁移调度方法及系统 |
CN109426547B (zh) | 2017-09-04 | 2022-05-17 | 华为技术有限公司 | 一种虚拟机的热迁移方法、装置和系统 |
CN107832145B (zh) * | 2017-10-24 | 2021-08-06 | 中安云科科技发展(山东)有限公司 | 一种基于虚拟机的系统资源释放方法 |
US10956197B2 (en) * | 2017-12-13 | 2021-03-23 | Citrix Systems, Inc. | Virtual machine with an emulator manager for migration of synchronized streams of state data |
CN110134490B (zh) * | 2018-02-08 | 2023-12-29 | 中兴通讯股份有限公司 | 虚拟机动态迁移方法、设备及存储介质 |
US10754822B1 (en) * | 2018-04-18 | 2020-08-25 | Palantir Technologies Inc. | Systems and methods for ontology migration |
JP7125601B2 (ja) * | 2018-07-23 | 2022-08-25 | 富士通株式会社 | ライブマイグレーション制御プログラム及びライブマイグレーション制御方法 |
JP7197783B2 (ja) * | 2019-01-11 | 2022-12-28 | 富士通株式会社 | 情報処理システム、管理装置および管理プログラム |
CN110058970B (zh) * | 2019-04-22 | 2022-10-18 | 重庆邮电大学 | 一种灾难风险模型下的双虚拟机准同步撤离方法 |
CN111176781A (zh) * | 2019-08-23 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 虚拟机热迁移方法、装置、存储介质与电子设备 |
CN110990133B (zh) * | 2019-11-15 | 2022-11-04 | 杭州未名信科科技有限公司 | 边缘计算服务迁移方法、装置、电子设备及介质 |
CN111381933B (zh) * | 2020-03-07 | 2023-09-22 | 北京工业大学 | 一种Docker热迁移实现方法 |
US11561821B1 (en) * | 2020-05-07 | 2023-01-24 | Amazon Technologies, Inc. | Controlling placement of virtualized resources based on desirability index for host pools |
CN112291345B (zh) * | 2020-10-29 | 2023-03-24 | 上海市共进通信技术有限公司 | 物理机间进行进程迁移过程中保持socket不中断状态的方法 |
CN113626142B (zh) * | 2021-07-14 | 2024-04-05 | 麒麟软件有限公司 | 一种虚拟时统卡热迁移方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102597958A (zh) * | 2009-11-16 | 2012-07-18 | 国际商业机器公司 | 虚拟机的对称实时迁移 |
CN102681913A (zh) * | 2011-12-21 | 2012-09-19 | 中兴通讯股份有限公司 | 一种虚拟机到虚拟机热迁移的方法及装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806480B2 (en) * | 2007-06-29 | 2014-08-12 | Microsoft Corporation | Virtual machine smart migration |
CN100489787C (zh) * | 2007-07-10 | 2009-05-20 | 北京大学 | 一种虚拟机的外存在线迁移方法 |
US8694990B2 (en) * | 2007-08-27 | 2014-04-08 | International Business Machines Corporation | Utilizing system configuration information to determine a data migration order |
US9086901B2 (en) * | 2008-03-07 | 2015-07-21 | Sap Se | Migration of applications from physical machines to virtual machines |
JP5692065B2 (ja) * | 2009-04-28 | 2015-04-01 | 日本電気株式会社 | 計算機システムにおける仮想装置の高速移動システム及び管理装置並びにその方法及びそのプログラム |
US8478725B2 (en) * | 2009-09-14 | 2013-07-02 | Vmware, Inc. | Method and system for performing live migration of persistent data of a virtual machine |
CN102081552A (zh) * | 2009-12-01 | 2011-06-01 | 华为技术有限公司 | 一种物理机到虚拟机的在线迁移方法、装置和系统 |
US8468288B2 (en) * | 2009-12-10 | 2013-06-18 | International Business Machines Corporation | Method for efficient guest operating system (OS) migration over a network |
US9110702B2 (en) * | 2010-06-02 | 2015-08-18 | Microsoft Technology Licensing, Llc | Virtual machine migration techniques |
US9317314B2 (en) * | 2010-06-29 | 2016-04-19 | Microsoft Techology Licensing, Llc | Techniques for migrating a virtual machine using shared storage |
US8990531B2 (en) * | 2010-07-12 | 2015-03-24 | Vmware, Inc. | Multiple time granularity support for online classification of memory pages based on activity level |
JP5614226B2 (ja) * | 2010-10-15 | 2014-10-29 | 富士通株式会社 | 仮想マシン制御装置、仮想マシン制御プログラムおよび仮想マシン制御方法 |
US9092318B2 (en) * | 2012-02-06 | 2015-07-28 | Vmware, Inc. | Method of allocating referenced memory pages from a free list |
CN102662723A (zh) * | 2012-02-28 | 2012-09-12 | 北京邮电大学 | 一种基于停机时间阈值的虚拟机内存迁移方法 |
US9197489B1 (en) * | 2012-03-30 | 2015-11-24 | Amazon Technologies, Inc. | Live migration of virtual machines in a hybrid network environment |
US9110704B2 (en) * | 2012-05-31 | 2015-08-18 | Red Hat Israel, Ltd. | Pre-warming of multiple destinations for fast live migration |
US9483414B2 (en) * | 2013-11-25 | 2016-11-01 | Red Hat Israel, Ltd. | Ordered memory pages transmission in virtual machine live migration |
-
2012
- 2012-11-30 CN CN201210504276.4A patent/CN103049308B/zh active Active
-
2013
- 2013-07-18 JP JP2015544320A patent/JP5965552B2/ja active Active
- 2013-07-18 EP EP13858092.3A patent/EP2916217B1/en active Active
- 2013-07-18 WO PCT/CN2013/079570 patent/WO2014082459A1/zh active Application Filing
-
2015
- 2015-05-28 US US14/724,367 patent/US9672075B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102597958A (zh) * | 2009-11-16 | 2012-07-18 | 国际商业机器公司 | 虚拟机的对称实时迁移 |
CN102681913A (zh) * | 2011-12-21 | 2012-09-19 | 中兴通讯股份有限公司 | 一种虚拟机到虚拟机热迁移的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20150261581A1 (en) | 2015-09-17 |
WO2014082459A1 (zh) | 2014-06-05 |
US9672075B2 (en) | 2017-06-06 |
EP2916217A1 (en) | 2015-09-09 |
EP2916217B1 (en) | 2020-09-30 |
CN103049308A (zh) | 2013-04-17 |
JP5965552B2 (ja) | 2016-08-10 |
JP2015535636A (ja) | 2015-12-14 |
EP2916217A4 (en) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103049308B (zh) | 实现虚拟机热迁移的方法、装置及系统 | |
CN104965757A (zh) | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 | |
CN108763405B (zh) | 一种业务数据迁移方法、装置、系统及可读存储介质 | |
CN109417488B (zh) | 虚拟网络功能资源管理的方法和设备 | |
CN104170323A (zh) | 基于网络功能虚拟化的故障处理方法及装置、系统 | |
CN103810015A (zh) | 虚拟机创建方法和设备 | |
KR101673299B1 (ko) | 운영 시스템 복구 방법 및 장치, 그리고 단말기기 | |
CN103984602A (zh) | 一种vm资源调度方法、装置及系统 | |
CN105159841A (zh) | 一种内存迁移方法及装置 | |
CN104346211A (zh) | 一种云计算下实现虚拟机迁移的方法及系统 | |
CN103559124A (zh) | 故障快速检测方法及装置 | |
CN104239120A (zh) | 一种虚拟机的状态信息同步的方法、装置及系统 | |
CN105630576A (zh) | 一种虚拟化平台中的数据处理方法及装置 | |
CN106776018B (zh) | 用于分布式系统的主节点和从节点的并行处理方法和设备 | |
CN104702534A (zh) | 一种实现多进程共享端口的数据处理的方法及装置 | |
CN110659104A (zh) | 一种业务监控方法及相关设备 | |
CN106933646B (zh) | 一种创建虚拟机的方法及装置 | |
CN108121589A (zh) | 一种虚拟机的在线迁移自动收敛的方法 | |
CN106227580A (zh) | 一种虚拟机的动态迁移方法及系统 | |
JP2010231295A (ja) | 解析システム | |
CN113312138A (zh) | 虚拟机的迁移方法及装置、系统、存储介质 | |
CN104615549A (zh) | 一种虚拟系统中域管理方法和装置 | |
CN113918284B (zh) | 云主机批量迁移的方法及装置、电子设备和存储介质 | |
CN116578446B (zh) | 虚拟机备份方法、装置、系统、电子设备及存储介质 | |
JP5101445B2 (ja) | 画像処理装置、画像処理方法、画像処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231214 Address after: Room 1-9, 24th Floor, Unit 2, Building 1, No. 28, North Section of Tianfu Avenue, High tech Zone, Chengdu City, Sichuan Province, 610095 Patentee after: Sichuan Huakun Zhenyu Intelligent Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |