CN107704314B - 用于迁移虚拟机的方法和装置 - Google Patents

用于迁移虚拟机的方法和装置 Download PDF

Info

Publication number
CN107704314B
CN107704314B CN201711108565.1A CN201711108565A CN107704314B CN 107704314 B CN107704314 B CN 107704314B CN 201711108565 A CN201711108565 A CN 201711108565A CN 107704314 B CN107704314 B CN 107704314B
Authority
CN
China
Prior art keywords
virtual machine
determining
processor
target
migrate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711108565.1A
Other languages
English (en)
Other versions
CN107704314A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201711108565.1A priority Critical patent/CN107704314B/zh
Publication of CN107704314A publication Critical patent/CN107704314A/zh
Priority to US16/134,191 priority patent/US10552210B2/en
Application granted granted Critical
Publication of CN107704314B publication Critical patent/CN107704314B/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/4401Bootstrapping
    • G06F9/442Shutdown
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/445Program loading or initiating
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本申请实施例公开了用于迁移虚拟机的方法和装置。该方法的一具体实施方式包括:调用目标操作系统的目标内核模块,其中,该目标操作系统用于控制运行有虚拟机的目标电子设备,该目标内核模块用于执行针对该目标电子设备的宕机操作;根据该目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;响应于确定不执行该宕机操作,在满足预设触发条件的情况下,确定是否迁移该虚拟机;如果是,则迁移该虚拟机。该实施方式丰富了虚拟机迁移方式。

Description

用于迁移虚拟机的方法和装置
技术领域
本申请实施例涉及计算机技术领域,具体涉及虚拟化技术领域,尤其涉及用于迁移虚拟机的方法和装置。
背景技术
随着计算机技术的发展,利用计算机技术和互联网技术提供的服务也越来越丰富。利用虚拟化技术,可以在物理机(电子设备)上虚拟出逻辑上的计算机,即虚拟机。物理机如果宕机,将会导致运行于的其上的虚拟机宕机。
现有的迁移虚拟机的方式,通常是对物理机运行时的关键指标(如处理器利用率)进行监控,当这些指标中的一项或多项超过一定阈值之后,会触发报警。然后,利用虚拟机迁移技术,将虚拟机迁移至新的运行状态良好的物理机。
发明内容
本申请实施例提出了用于迁移虚拟机的方法和装置。
第一方面,本申请实施例提供了一种用于迁移虚拟机的方法,上述方法包括:调用目标操作系统的目标内核模块,其中,上述目标操作系统用于控制运行有虚拟机的目标电子设备,上述目标内核模块用于执行针对上述目标电子设备的宕机操作;根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;响应于确定不执行上述宕机操作,在满足预设触发条件的情况下,确定是否迁移上述虚拟机;如果是,则迁移上述虚拟机。
在一些实施例中,上述调用目标操作系统的目标内核模块,包括:检测上述目标操作系统的内核是否发生预定义异常事件;响应于检测到发生上述预定义异常事件,调用上述目标内核模块。
在一些实施例中,上述预设触发条件为在预先设置的标识集合中存在与上述预定义异常事件的异常事件标识匹配的标识。
在一些实施例中,上述目标电子设备包括至少两个处理器,上述电子设备运行状态信息包括处理器异常比值,上述处理器异常比值为上述预定义异常事件所涉及的处理器的数目与上述目标电子设备的处理器总数目的比值;以及上述根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作,包括:确定上述处理器异常比值是否大于预设比值阈值;响应于确定上述处理器异常比值大于上述预设比值阈值,确定执行上述宕机操作。
在一些实施例中,上述确定是否迁移上述虚拟机,包括:确定上述虚拟机所运行于的处理器是否是上述预定义异常事件所涉及的处理器;响应于确定上述虚拟机所运行于的处理器是上述预定义异常事件所涉及的处理器,确定不迁移上述虚拟机。
在一些实施例中,上述确定是否迁移上述虚拟机,还包括:响应于确定上述虚拟机所运行于的处理器不是上述预定义异常事件所涉及的处理器,执行用于降低上述虚拟机的迁移难度的迁移预操作。
在一些实施例中,上述迁移预操作包括以下至少一项:调整上述虚拟机的调度优先级,修改上述虚拟机与上述虚拟机所运行于的处理器的亲和性信息。
在一些实施例中,上述确定是否迁移上述虚拟机,还包括:根据执行上述迁移预操作之后的上述虚拟机的虚拟机运行状态信息,确定是否迁移上述虚拟机。
在一些实施例中,在上述迁移上述虚拟机之后,上述方法还包括:响应于确定迁移上述虚拟机结束,生成迁移结果。
在一些实施例中,上述上述确定是否迁移上述虚拟机,包括:并发执行上述确定是否迁移上述虚拟机和等待操作,其中,上述等待操作包括:将确定不执行上述宕机操作的时间确定为开始时间;确定当前时间与上述开始时间之间的等待时长是否大于预设时长阈值;响应于确定上述等待时长大于上述预设时长阈值,执行宕机操作。
在一些实施例中,上述等待线程或上述等待线程还用于:响应于确定上述等待时长不大于上述预设时长阈值,将上述开始时间确定为初始的触发时间,执行以下确定步骤:在上述触发时间,确定上述迁移结果是否生成;响应于确定上述迁移结果生成,执行宕机操作;响应于确定上述迁移结果未生成,用上述触发时间与第一预设长的和更新上述触发时间,继续执行上述确定步骤。
在一些实施例中,第一内核模块、第二内核模块和用户态进程之间通过共享内存的方式进行通信,其中:上述第一内核模块用于执行上述根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作所;上述第二内核模块用于执行响应于确定不执行上述宕机操作,在满足预设触发条件的情况下,确定是否迁移上述虚拟机;上述用户态进程用于执行迁移上述虚拟机。
第二方面,本申请实施例提供了一种用于迁移虚拟机的装置,上述装置包括:调用单元,用于调用目标操作系统的目标内核模块,其中,上述目标操作系统用于控制运行有虚拟机的目标电子设备,上述目标内核模块用于执行针对上述目标电子设备的宕机操作;第一确定单元,用于根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;第二确定单元,用于响应于确定不执行上述宕机操作,在满足预设触发条件的情况下,确定是否迁移上述虚拟机;迁移单元,用于响应于确定迁移上述虚拟机,迁移上述虚拟机。
在一些实施例中,上述调用单元,还用于:检测上述目标操作系统的内核是否发生预定义异常事件;响应于检测到发生上述预定义异常事件,调用上述目标内核模块。
在一些实施例中,上述预设触发条件为在预先设置的标识集合中存在与上述预定义异常事件的异常事件标识匹配的标识。
在一些实施例中,上述目标电子设备包括至少两个处理器,上述电子设备运行状态信息包括处理器异常比值,上述处理器异常比值为上述预定义异常事件所涉及的处理器的数目与上述目标电子设备的处理器总数目的比值;以及第二确定单元,还用于:确定上述处理器异常比值是否大于预设比值阈值;响应于确定上述处理器异常比值大于上述预设比值阈值,确定执行上述宕机操作。
在一些实施例中,上述第二确定单元,还用于:确定上述虚拟机所运行于的处理器是否是上述预定义异常事件所涉及的处理器;响应于确定上述虚拟机所运行于的处理器是上述预定义异常事件所涉及的处理器,确定不迁移上述虚拟机。
在一些实施例中,上述第二确定单元,还用于:响应于确定上述虚拟机所运行于的处理器不是上述预定义异常事件所涉及的处理器,执行用于降低上述虚拟机的迁移难度的迁移预操作。
在一些实施例中,上述迁移预操作包括以下至少一项:调整上述虚拟机的调度优先级,修改上述虚拟机与上述虚拟机所运行于的处理器的亲和性信息。
在一些实施例中,上述第二确定单元,还用于:根据执行上述迁移预操作之后的上述虚拟机的虚拟机运行状态信息,确定是否迁移上述虚拟机。
在一些实施例中,上述装置还包括生成单元,用于:响应于确定迁移上述虚拟机结束,生成迁移结果。
在一些实施例中,上述第二确定单元,用于:并发执行上述确定是否迁移上述虚拟机和等待操作,其中,上述等待操作包括:将确定不执行上述宕机操作的时间确定为开始时间;确定当前时间与上述开始时间之间的等待时长是否大于预设时长阈值;响应于确定上述等待时长大于上述预设时长阈值,执行宕机操作。
在一些实施例中,上述等待操作还包括:响应于确定上述等待时长不大于上述预设时长阈值,将上述开始时间确定为初始的触发时间,执行以下确定步骤:在上述触发时间,确定上述迁移结果是否生成;响应于确定上述迁移结果生成,执行宕机操作;响应于确定上述迁移结果未生成,用上述触发时间与第一预设长的和更新上述触发时间,继续执行上述确定步骤。
在一些实施例中,第一内核模块、第二内核模块和用户态进程之间通过共享内存的方式进行通信,其中:上述第一内核模块用于执行上述根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;上述第二内核模块用于执行响应于确定不执行上述宕机操作,在满足预设触发条件的情况下,确定是否迁移上述虚拟机;上述用户态进程用于执行迁移上述虚拟机。
第三方面,本申请实施例提供了一种电子设备,上述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如第一方面的方法。
在一些实施例中,上述电子设备包括第一处理器和第二处理器,其中:当第一程序被上述第一处理器执行时,实现以下步骤:根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;响应于确定不执行上述宕机操作,第一处理器响应于确定不执行上述宕机操作,通过核间中断的方式通知上述第二处理器执行第二程序;当上述第二程序被上述第二处理器执行时,实现以下步骤:在满足预设触发条件的情况下,确定是否迁移上述虚拟机;以及上述第二处理器响应于确定迁移上述虚拟机,执行第三程序,当上述第三程序被上述第二处理器执行时,实现以下步骤:迁移上述虚拟机。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面的方法。
本申请实施例提供的用于迁移虚拟机的方法和装置,通过调用目标操作系统的目标内核模块,其中,上述目标操作系统用于控制运行有虚拟机的目标电子设备,上述目标内核模块用于执行针对上述目标电子设备的宕机操作;根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;响应于确定不执行上述宕机操作,在满足预设触发条件的情况下,确定是否迁移上述虚拟机;如果是,则迁移上述虚拟机,从而丰富了虚拟机迁移方式。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的用于迁移虚拟机的方法的一个实施例的流程图;
图3是步骤203的一种实现方式的流程图;
图4是根据本申请的用于迁移虚拟机的装置的一个实施例的结构示意图;
图5A是根据本申请的电子设备的一个实施例的结构示意图;
图5B是根据图5A对应的实施例的一种实现方式的结构示意图;
图6是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于迁移虚拟机的方法或用于迁移虚拟机的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括服务器101、102、103,网络104和服务器105。网络104用以在服务器101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
服务器101、102、103以及105可以被其上的操作系统控制。服务器101、102、103以及105上还可以运行有虚拟机。
服务器105可以向服务器101、102、103迁移虚拟机。例如,服务器105上运行的虚拟机,可以迁移到服务器101、102或103上。
服务器101、102、103以及105可以是提供各种服务的服务器,例如对终端设备(未示出)上显示的网页提供支持的后台网页服务器。
需要说明的是,本申请实施例所提供的用于迁移虚拟机的方法一般由服务器105执行,相应地,用于迁移虚拟机的装置一般设置于服务器105中。
应该理解,图1中的服务器、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的服务器和网络。
继续参考图2,其示出了根据本申请的用于迁移虚拟机的方法的一个实施例的流程200。上述的用于迁移虚拟机的方法,包括以下步骤:
步骤201,调用目标操作系统的目标内核模块。
在本实施例中,用于迁移虚拟机的方法运行于其上的电子设备(例如图1所示的服务器105)可以调用目标操作系统的目标内核模块。
在本实施例中,目标操作系统可以用于控制运行有虚拟机(Virtual Machine,VM)的目标电子设备。
在本实施例中,操作系统(Operating System,OS)可以是管理和控制计算机硬件与软件资源的计算机程序,可以是直接运行在裸机上的最基本的系统软件。其它软件需要在操作系统的支持下才能运行。在这里,目标操作系统可以是任意类型的操作系统。
在本实施例中,目标电子设备可以是执行本实施例各个步骤的电子设备。
本实施例中,目标电子设备上可以运行有一个或多个虚拟机。虚拟机可以指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。因此,可能存在控制目标电子设备的操作系统和控制上述虚拟机的操作系统。需要区分的是,本实施例中的目标操作系统用于控制目标电子设备,而不是用于控制虚拟机的操作系统。
需要说明的是,由于虚拟机在目标电子设备中是以进程的方式表现的,那么对于虚拟机A,也可以称为虚拟机进程A。
在本实施例中,内核模块可以是一些让操作系统内核在需要时载入和执行的代码,内核模块可以在不需要时由操作系统卸载。内核模块扩展了操作系统内核的功能却不需要重新启动操作系统。作为示例,内核模块可以是设备驱动(例如,网络设备驱动)模块。
在本实施例中,操作系统内核可以是操作系统的核心,也是操作系统最基本的部分。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
在本实施例中,目标内核模块可以用于执行针对目标电子设备的宕机操作,即如果目标电子设备加载执行目标内核模块,则目标电子设备宕机。作为示例,目标内核模块可以是封装了恐慌(Panic)函数的模块。
需要说明的是,在现有技术中,目标电子设备调用了目标内核模块,则目标电子设备执行宕机操作。但是,在本实施例中,目标电子设备调用了目标内核模块,目标电子设备并不立即执行宕机操作。
在本实施例的一些可选实现方式中,步骤201可以包括:可以确定上述目标操作系统的内核是否发生预定义异常事件;响应于确定上述目标操作系统的内核发生预定义异常事件,调用上述目标内核模块。
在本实施例的一些可选实现方式中,预定义异常事件可以是预先定义的内核可能发生的一种或多种异常事件。作为示例,预定义异常事件可以是但不限于:内核死锁事件、内核空指针访问事件、内核模块检测到不合法的操作事件等。
需要说明的是,这些预定义异常事件的发生,代表着目标操作系统的内核本身可能已经出现了不可逆转的错误,目标操作系统开始不稳定。因此,目标操作系统可以控制上述电子设备调用目标内核模块执行宕机操作,然后通过重启来试图恢复目标操作系统。
需要说明的是,调用上述目标内核模块不仅可以在上述内核发生预定义异常事件这种情况下发生,还可以在其它一些情况下发生,例如,目标电子设备负载过重的情况。
步骤202,根据目标电子设备的电子设备运行状态信息,确定是否执行宕机操作。
在本实施例中,上述电子设备可以根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作。
在本实施例中,电子设备运行状态信息可以是用于表征电子设备的运行状态的信息。
在本实施例的一些可选实现方式中,电子设备运行状态信息可以包括但不限于以下一项或多项:处理器利用率、内存负载、磁盘利用率和电子设备温度。
需要说明的是,根据目标电子设备的电子设备运行状态信息,确定是否执行宕机操作这一步骤,通俗来说,可以是根据电子设备运行状态信息,确定目标电子设备的运行状态是不是特别差。如果目标电子设备的运行状态还不是特别差,系统没有瘫痪风险,则不执行宕机操作。如果目标电子设备的运行状态已经特别差,很可能连迁移虚拟机都不能完成,那么可以执行宕机操作,避免实施不可能完成的虚拟机迁移。
在本实施例的一些可选实现方式中,上述目标电子设备包括至少两个处理器,上述电子设备运行状态信息包括处理器异常比值,上述处理器异常比值为上述预定义异常事件所涉及的处理器的数目与上述目标电子设备的处理器总数目的比值。在这里,步骤202可以包括:确定上述处理器异常比值是否大于预设比值阈值;响应于确定上述处理器异常比值大于上述预设比值阈值,确定执行上述宕机操作。
需要说明的是,如果处理器异常比值大于预设比值阈值,可能是导致调用目标内核模块的错误源将会或者已经对目标操作系统造成全局性的影响。这个时候,目标电子设备的大部分处理器将会或者已经被错误源所影响,虚拟机迁移工作可能无法进行。因此,在这种情况下,直接宕机可以避免实施不可能完成的虚拟机迁移。
步骤203,响应于确定不执行宕机操作,在满足预设触发条件的情况下,确定是否迁移虚拟机。
在本实施例中,上述电子设备可以响应于确定不执行上述宕机操作,在满足预设触发条件的情况下,确定是否迁移上述虚拟机。
在本实施例中,在实践过程中,预设触发条件可以根据实际情况设置。
需要说明的是,通过预设触发条件触发确定是否迁移虚拟机,可以灵活调整触发确定是否迁移虚拟机的方式。作为示例,初始的时候,预设触发条件可以是操作系统内核发生A事件。随着实践的深入,可以将预设触发条件修改为操作系统内核发生A事件和B事件。
在本实施例的一些可选的实现方式中,预设触发条件可以为在预先设置的标识集合中存在与上述预定义异常事件的异常事件标识匹配的标识。
作为示例,标识集合中由A标识和B标识组成。预定义异常事件的异常事件标识如果是A标识,则预设触发条件满足。预定义异常事件的异常事件标识如果是C标识,则预设触发条件不满足。
需要说明的是,调用目标内核模块不代表目标操作系统马上就要瘫痪。发生某些预定义异常事件也不代表目标操作系统马上就要瘫痪。因此,可以设置标识集合,标识集合中的标识是一些极有可能会导致目标操作系统的瘫痪的异常事件的标识。由此,可以监控到发生标识集合中的标识所指示的异常事件,再触发确定是否迁移虚拟机。通过这种方式,可以更为准确得判断目标操作系统出现不可逆转的错误。找到最为合适的时机触发确定是否迁移虚拟机,可以避免误迁移或者不能及时迁移。
在本实施例的一些可选的实现方式中,预设触发条件还可以是无条件。具体地,可以将预设触发条件设置为确定不执行上述宕机操作,即响应于确定不执行上述宕机操作,直接触发确定是否迁移上述虚拟机。
在本实施例中,确定是否迁移上述虚拟机,可以通过各种方式实现。
在本实施例的一些可选的实现方式中,确定是否迁移上述虚拟机,可以通过以下方式实现:确定上述虚拟机所运行于的处理器是否是上述预定义异常事件所涉及的处理器。响应于确定上述虚拟机所运行于的处理器是上述预定义异常事件所涉及的处理器,确定不迁移上述虚拟机。响应于确定上述虚拟机所运行于的处理器不是上述预定义异常事件所涉及的处理器,确定迁移上述虚拟机。
可选地,预定义异常事件所涉及的处理器可以是,预定义异常事件的发生影响其处理运行的处理器,或者,预定义异常事件发生于的处理器。作为示例,内核发生内核死锁事件,这时可能造成死锁的两个处理器及运行在上的进程无法工作,但是其他CPU仍然是在正常运行的。造成死锁的两个处理器即是预定义异常事件所涉及的处理器。
在本实施例的一些可选的实现方式中,确定是否迁移上述虚拟机,可以通过以下方式实现:根据上述虚拟机的虚拟机运行状态信息,确定是否迁移上述虚拟机。
可选地,虚拟机运行状态信息可以是用于表征虚拟机的运行状态的信息。虚拟机运行状态信息可以包括静态信息和动态信息。作为示例,静态信息可以包括但不限于以下至少一项:虚拟机内存容量、虚拟机CPU个数、操作系统类型和存储网络设备类型等。动态信息可以包括但不限于以下至少一项:处理器利用率、内存负载和磁盘利用率等。
作为示例,虚拟机内存容量大于预设容量阈值,则不迁移上述虚拟机。
在本实施例的一些可选的实现方式中,确定是否迁移上述虚拟机还可以通过图3所示的流程203实现,流程203包括:
步骤2031,确定虚拟机所运行于的处理器是否是预定义异常事件所涉及的处理器。
步骤2032,响应于确定虚拟机所运行于的处理器不是预定义异常事件所涉及的处理器,执行用于降低虚拟机的迁移难度的迁移预操作。
可选地,上述迁移预操作包括以下至少一项:调整上述虚拟机的调度优先级,修改上述虚拟机与上述虚拟机所运行于的处理器的亲和性信息。
作为示例,上述调度优先级可以是目标电子设备设置的表征调度的优先次序先后的信息。例如,目标电子设备上可能运行有3个虚拟机,分别是虚拟机A、虚拟机B和虚拟机C。如果确定虚拟机A所运行于的处理器不是上述预定义异常事件所涉及的处理器,则提高上述虚拟机的调度优先级。以保证虚拟机A可以尽快迁移完成。
作为示例,上述亲和性信息可以是用于表征上述虚拟机与上述虚拟机所运行于的处理器之间的绑定关系的信息。例如,亲和性信息如果指示虚拟机A和处理器A具有绑定关系,那虚拟机A则不能从处理器A上迁移。需要说明的是,绑定关系,可以是两级的,例如绑定和不绑定;还可以多级的,例如强绑定、弱绑定和不绑定。
步骤2033,根据执行迁移预操作之后的虚拟机的虚拟机运行状态信息,确定是否迁移虚拟机。
需要说明的是,虚拟机运行状态信息还可以包括亲和性信息和调度优先级信息。在执行迁移预操作之后,虚拟机运行状态信息很可能已经发生改变。利用改变后的虚拟机运行状态信息,确定是否迁移虚拟机,可以更为准确地预测虚拟机迁移成功率,进而更为准确地确定是否迁移虚拟机。
步骤204,如果是,则迁移虚拟机。
在本实施例中,上述电子设备可以在步骤203确定迁移上述虚拟机的情况下,迁移上述虚拟机。
在这里,可以将虚拟机由目标电子设备迁移到除目标电子设备之外的其它电子设备。
需要说明的是,通过本申请实施例所示的方法,可以在虚拟机所运行于的电子设备宕机之前及时虚拟机的迁移。由此,虚拟机可以不因电子设备宕机而关机或影响运行。
需要说明的是,随着虚拟机技术的发展,系统的迁移更加灵活和多样化。迁移虚拟机可以通过各种迁移方式实现。在确定迁移虚拟机之后,如何对虚拟机实施迁移本身是本领域技术人员可以实现的。
作为示例,迁移虚拟机的步骤可以如下:建立目标电子设备与接收电子设备之间的通信连接;由目标电子设备向接收电子设备传送虚拟机配置信息和设备信息;由目标电子设备向接收电子设备传送虚拟机内存;暂停虚拟机,目标电子设备传送虚拟机当前状态信息;接收电子设备恢复虚拟机。
在本实施例的一些可选的实现方式中,在上述迁移上述虚拟机之后,上述方法还包括:响应于确定迁移上述虚拟机结束,生成迁移结果。
在本实施例的一些可选的实现方式中,本实施例步骤203可以包括并发执行上述确定是否迁移上述虚拟机和等待操作,其中,上述等待操作包括:将确定不执行上述宕机操作的时间确定为开始时间;确定当前时间与上述开始时间之间的等待时长是否大于预设时长阈值;响应于确定上述等待时长大于上述预设时长阈值,执行宕机操作。
需要说明的是,如果与执行在满足预设触发条件的情况下,确定是否迁移上述虚拟机所产生的进程在同一处理器上,则新建线程。如果与执行在满足预设触发条件的情况下,确定是否迁移上述虚拟机所产生的进程在不同处理器上,则新建进程。
上述等待操作还包括:响应于确定上述等待时长不大于上述预设时长阈值,将上述开始时间确定为初始的触发时间,执行以下确定步骤:在上述触发时间,确定上述迁移结果是否生成;响应于确定上述迁移结果生成,执行宕机操作。响应于确定上述迁移结果未生成,用上述触发时间与第一预设长的和更新上述触发时间,继续执行上述确定步骤。
需要说明的是,在确定不执行上述宕机操作之后,虚拟机的迁移可能进行,也可能不进行。上述目标电子设备可以新建并执行等待进程或等待线程。如果在预设时间段内生成迁移结果,那么说明虚拟机迁移成功。此时立即执行宕机操作既不影响虚拟机的运行,又可以恢复目标操作系统。如果在预设时间段内没有生成迁移结果,那么虚拟机可能自始没有迁移或者迁移不成功,在这种情况下,不宕机而继续等待可能导致操作系统更加不稳定,并且可能会进一步导致目标操作系统甚至目标电子设备出现不可逆转的损害。因此,如果在预设时间段内没有生成迁移结果,则执行宕机操作,可以及时避免目标操作系统的不可逆转的错误。
在本实施例的一些可选的实现方式中,上述电子设备的进程之间的可用通过共享内存的方式进行通信。可选地,第一内核模块、第二内核模块和用户态进程之间通过共享内存的方式进行通信,其中:上述第一内核模块用于执行上述根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;上述第二内核模块用于执行响应于确定不执行上述宕机操作,在满足预设触发条件的情况下,确定是否迁移上述虚拟机;上述用户态进程用于执行迁移上述虚拟机。
可选地,第一内核模块和第二内核模块可以是运行于内核态,用户态进程可以是处于用户态的进程。
需要说明的是,使用共享内存实现进程间的通信,可以提高通信效率。
需要说明的是,在现有技术中,通常是对物理机运行时的关键指标(如处理器利用率)进行监控,当这些指标中的一项或多项超过一定阈值之后,会触发报警。然后,利用虚机迁移技术,将虚拟机迁移至新的运行状态良好的物理机。现有技术的方式,虽然能够在一定程度上保证用于虚机不运行在有宕机风险的物理机上,但是这种方式并不能真正的检测到物理机宕机这一行为,只是一种预警机制。因此,不可避免会造成两种情况。一种情况是:物理机在各项指标未达到阈值的情况下宕机,这样预警机制失效,虚拟机宕机,仍然会影响虚拟机的运行。另一种情况:物理机在一定时间内负载过高,达到阈值预警的条件,但并不会触发物理机宕机,迁移虚拟机会白白消耗物理资源和网络带宽。
对比而言,本申请实施例在调用用于执行宕机操作的目标内核模块这一确定的情况下,开始进行迁移虚拟机的准备以迁移虚拟机。因此,本申请实施例所示方法从源头出发,准确检测宕机这一即将发生的事实,然后再利用迁移技术对客户的虚拟机进行迁移,可以虚拟机在物理机宕机之前及时迁移,以保证虚拟机的高可用性,也可以避免无意义的迁移。
本申请的上述实施例提供的方法,通过调用目标操作系统的目标内核模块,其中,上述目标操作系统用于控制运行有虚拟机的目标电子设备,上述目标内核模块用于执行针对上述目标电子设备的宕机操作;根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;响应于确定不执行上述宕机操作,在满足预设触发条件的情况下,确定是否迁移上述虚拟机;如果是,则迁移上述虚拟机,从而丰富了虚拟机迁移方式。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种用于迁移虚拟机的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例上述的用于迁移虚拟机的装置400包括:调用单元401、第一确定单元402、第二确定单元403和迁移单元404。其中,调用单元,用于调用目标操作系统的目标内核模块,其中,上述目标操作系统用于控制运行有虚拟机的目标电子设备,上述目标内核模块用于执行针对上述目标电子设备的宕机操作;第一确定单元,用于根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;第二确定单元,用于响应于确定不执行上述宕机操作,在满足预设触发条件的情况下,确定是否迁移上述虚拟机;迁移单元,用于响应于确定迁移上述虚拟机,迁移上述虚拟机。
如图4所示,调用单元可以触发第一确定单元,第二确定单元可以通过对虚拟机分析,确定是否迁移上述虚拟机。迁移单元可以迁移虚拟机。
在本实施例中,调用单元401、第一确定单元402、第二确定单元403和迁移单元404的具体处理及其所带来的技术效果可分别参考图2对应实施例中步骤201、步骤202、步骤203以及步骤204的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述调用单元,还用于:检测上述目标操作系统的内核是否发生预定义异常事件;响应于检测到发生上述预定义异常事件,调用上述目标内核模块。
在本实施例的一些可选的实现方式中,上述预设触发条件为在预先设置的标识集合中存在与上述预定义异常事件的异常事件标识匹配的标识。
在本实施例的一些可选的实现方式中,上述目标电子设备包括至少两个处理器,上述电子设备运行状态信息包括处理器异常比值,上述处理器异常比值为上述预定义异常事件所涉及的处理器的数目与上述目标电子设备的处理器总数目的比值;以及第二确定单元,还用于:确定上述处理器异常比值是否大于预设比值阈值;响应于确定上述处理器异常比值大于上述预设比值阈值,确定执行上述宕机操作。
在本实施例的一些可选的实现方式中,上述第二确定单元,还用于:确定上述虚拟机所运行于的处理器是否是上述预定义异常事件所涉及的处理器;响应于确定上述虚拟机所运行于的处理器是上述预定义异常事件所涉及的处理器,确定不迁移上述虚拟机。
在本实施例的一些可选的实现方式中,上述第二确定单元,还用于:响应于确定上述虚拟机所运行于的处理器不是上述预定义异常事件所涉及的处理器,执行用于降低上述虚拟机的迁移难度的迁移预操作。
在本实施例的一些可选的实现方式中,上述迁移预操作包括以下至少一项:调整上述虚拟机的调度优先级,修改上述虚拟机与上述虚拟机所运行于的处理器的亲和性信息。
在本实施例的一些可选的实现方式中,上述第二确定单元,还用于:根据执行上述迁移预操作之后的上述虚拟机的虚拟机运行状态信息,确定是否迁移上述虚拟机。
在本实施例的一些可选的实现方式中,上述装置还包括生成单元(未示出),用于:响应于确定迁移上述虚拟机结束,生成迁移结果。
在本实施例的一些可选的实现方式中,上述第二确定单元,用于:并发执行上述确定是否迁移上述虚拟机和等待操作,其中,上述等待操作包括:将确定不执行上述宕机操作的时间确定为开始时间;确定当前时间与上述开始时间之间的等待时长是否大于预设时长阈值;响应于确定上述等待时长大于上述预设时长阈值,执行宕机操作。
在本实施例的一些可选的实现方式中,上述等待操作还包括:响应于确定上述等待时长不大于上述预设时长阈值,将上述开始时间确定为初始的触发时间,执行以下确定步骤:在上述触发时间,确定上述迁移结果是否生成;响应于确定上述迁移结果生成,执行宕机操作;响应于确定上述迁移结果未生成,用上述触发时间与第一预设长的和更新上述触发时间,继续执行上述确定步骤。
在本实施例的一些可选的实现方式中,第一内核模块、第二内核模块和用户态进程之间通过共享内存的方式进行通信,其中:上述第一内核模块用于执行上述根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;上述第二内核模块用于执行响应于确定不执行上述宕机操作,在满足预设触发条件的情况下,确定是否迁移上述虚拟机;上述用户态进程用于执行迁移上述虚拟机。
需要说明的是,本实施例提供的用于迁移虚拟机的装置中各单元的实现细节和技术效果可以参考本申请中其它实施例的说明,在此不再赘述。
本申请提供了一种电子设备的实施例,如图5A所示,该电子设备500可以包括:一个或多个处理器501;存储装置502,用于存储一个或多个程序503;当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如图2对应的实施例所示的方法。
在本实施例的一些可选的实现方式中,如图5B所示,上述电子设备包括第一处理器5011和第二处理器5012,其中:当第一程序5031被上述第一处理器执行时,实现以下步骤:根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;响应于确定不执行上述宕机操作,第一处理器响应于确定不执行上述宕机操作,通过核间中断的方式通知上述第二处理器执行第二程序5032;当上述第二程序被上述第二处理器执行时,实现以下步骤:在满足预设触发条件的情况下,确定是否迁移上述虚拟机;以及上述第二处理器响应于确定迁移上述虚拟机,执行第三程序5033,当上述第三程序被上述第二处理器执行时,实现以下步骤:迁移上述虚拟机。
需要说明的是,第一处理器通过核间中断的方式,通知第二处理器执行第二程序,第二程序被第二处理器执行时,第二程序的进程会因此处于中断上下文中,由此,第二处理器可以高效执行第二程序而不被其他进程或外部中断打断。
需要说明的是,在确定迁移上述虚拟机后,第二处理单元直接在本处理器上执行第三程序,以实现迁移上述虚拟机。现有技术的通知随机的处理器来执行虚拟机操作。本实施例的方式相对于现有技术,可以尽早开始虚拟机迁移。
下面参考图6,其示出了适于用来实现本申请实施例的服务器的计算机系统600的结构示意图。图6示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括调用单元、第一确定单元、第二确定单元和迁移单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,调用单元还可以被描述为“调用目标操作系统的目标内核模块的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:调用目标操作系统的目标内核模块,其中,上述目标操作系统用于控制运行有虚拟机的目标电子设备,上述目标内核模块用于执行针对上述目标电子设备的宕机操作;根据上述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;响应于确定不执行上述宕机操作,在满足预设触发条件的情况下,确定是否迁移上述虚拟机;如果是,则迁移上述虚拟机。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (13)

1.一种用于迁移虚拟机的方法,包括:
调用目标操作系统的目标内核模块且不立即执行宕机操作,其中,所述目标操作系统用于控制运行有虚拟机的目标电子设备,所述目标内核模块用于执行针对所述目标电子设备的宕机操作;
根据所述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;
响应于确定不执行所述宕机操作,在满足预设触发条件的情况下,确定是否迁移所述虚拟机,其中,所述确定是否迁移所述虚拟机,包括:响应于确定所述虚拟机所运行于的处理器不是预定义异常事件所涉及的处理器,执行用于降低所述虚拟机的迁移难度的迁移预操作,所述迁移预操作包括以下至少一项:调整所述虚拟机的调度优先级,修改所述虚拟机与所述虚拟机所运行于的处理器的亲和性信息,所述亲和性信息用于表征所述虚拟机与所述虚拟机所运行于的处理器之间的绑定关系的信息,所述绑定关系包括:强绑定、弱绑定和不绑定;
如果是,则迁移所述虚拟机;
其中,所述调用目标操作系统的目标内核模块,包括:
检测所述目标操作系统的内核是否发生预定义异常事件;
响应于检测到发生所述预定义异常事件,调用所述目标内核模块。
2.根据权利要求1所述的方法,其中,所述预设触发条件为在预先设置的标识集合中存在与所述预定义异常事件的异常事件标识匹配的标识。
3.根据权利要求1所述的方法,其中,所述目标电子设备包括至少两个处理器,所述电子设备运行状态信息包括处理器异常比值,所述处理器异常比值为所述预定义异常事件所涉及的处理器的数目与所述目标电子设备的处理器总数目的比值;以及
所述根据所述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作,包括:
确定所述处理器异常比值是否大于预设比值阈值;
响应于确定所述处理器异常比值大于所述预设比值阈值,确定执行所述宕机操作。
4.根据权利要求1所述的方法,其中,所述确定是否迁移所述虚拟机,包括:
确定所述虚拟机所运行于的处理器是否是所述预定义异常事件所涉及的处理器;
响应于确定所述虚拟机所运行于的处理器是所述预定义异常事件所涉及的处理器,确定不迁移所述虚拟机。
5.根据权利要求1所述的方法,所述确定是否迁移所述虚拟机,还包括:
根据执行所述迁移预操作之后的所述虚拟机的虚拟机运行状态信息,确定是否迁移所述虚拟机。
6.根据权利要求1-5中任一项所述的方法,其中,在所述迁移所述虚拟机之后,所述方法还包括:
响应于确定迁移所述虚拟机结束,生成迁移结果。
7.根据权利要求6所述的方法,其中,所述确定是否迁移所述虚拟机,包括:
并发执行所述确定是否迁移所述虚拟机和等待操作,其中,所述等待操作包括:将确定不执行所述宕机操作的时间确定为开始时间;确定当前时间与所述开始时间之间的等待时长是否大于预设时长阈值;响应于确定所述等待时长大于所述预设时长阈值,执行宕机操作。
8.根据权利要求7所述的方法,其中,所述等待操作还包括:
响应于确定所述等待时长不大于所述预设时长阈值,将所述开始时间确定为初始的触发时间,执行以下确定步骤:在所述触发时间,确定所述迁移结果是否生成;响应于确定所述迁移结果生成,执行宕机操作;
响应于确定所述迁移结果未生成,用所述触发时间与第一预设长的和更新所述触发时间,继续执行所述确定步骤。
9.根据权利要求8所述的方法,其中,第一内核模块、第二内核模块和用户态进程之间通过共享内存的方式进行通信,其中:所述第一内核模块用于执行所述根据所述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;所述第二内核模块是用于执行响应于确定不执行所述宕机操作,在满足预设触发条件的情况下,确定是否迁移所述虚拟机;所述用户态进程用于执行迁移所述虚拟机。
10.一种用于迁移虚拟机的装置,包括:
调用单元,用于调用目标操作系统的目标内核模块且不立即执行宕机操作,其中,所述目标操作系统用于控制运行有虚拟机的目标电子设备,所述目标内核模块用于执行针对所述目标电子设备的宕机操作;
第一确定单元,用于根据所述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;
第二确定单元,用于响应于确定不执行所述宕机操作,在满足预设触发条件的情况下,确定是否迁移所述虚拟机;响应于确定所述虚拟机所运行于的处理器不是预定义异常事件所涉及的处理器,执行用于降低所述虚拟机的迁移难度的迁移预操作,所述迁移预操作包括以下至少一项:调整所述虚拟机的调度优先级,修改所述虚拟机与所述虚拟机所运行于的处理器的亲和性信息,所述亲和性信息用于表征所述虚拟机与所述虚拟机所运行于的处理器之间的绑定关系的信息,所述绑定关系包括:强绑定、弱绑定和不绑定;
迁移单元,用于响应于确定迁移所述虚拟机,迁移所述虚拟机;
其中,所述调用单元进一步被配置成:检测所述目标操作系统的内核是否发生预定义异常事件;响应于检测到发生所述预定义异常事件,调用所述目标内核模块。
11.一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
12.根据权利要求11所述的电子设备,其中,所述电子设备包括第一处理器和第二处理器,其中:
当第一程序被所述第一处理器执行时,实现以下步骤:根据所述目标电子设备的电子设备运行状态信息,确定是否执行宕机操作;响应于确定不执行所述宕机操作,第一处理器响应于确定不执行所述宕机操作,通过核间中断的方式通知所述第二处理器执行第二程序;
当所述第二程序被所述第二处理器执行时,实现以下步骤:在满足预设触发条件的情况下,确定是否迁移所述虚拟机;以及
所述第二处理器响应于确定迁移所述虚拟机,执行第三程序,当所述第三程序被所述第二处理器执行时,实现以下步骤:迁移所述虚拟机。
13.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1-9中任一所述的方法。
CN201711108565.1A 2017-11-09 2017-11-09 用于迁移虚拟机的方法和装置 Active CN107704314B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711108565.1A CN107704314B (zh) 2017-11-09 2017-11-09 用于迁移虚拟机的方法和装置
US16/134,191 US10552210B2 (en) 2017-11-09 2018-09-18 Method and apparatus for migrating virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711108565.1A CN107704314B (zh) 2017-11-09 2017-11-09 用于迁移虚拟机的方法和装置

Publications (2)

Publication Number Publication Date
CN107704314A CN107704314A (zh) 2018-02-16
CN107704314B true CN107704314B (zh) 2023-09-12

Family

ID=61179058

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711108565.1A Active CN107704314B (zh) 2017-11-09 2017-11-09 用于迁移虚拟机的方法和装置

Country Status (2)

Country Link
US (1) US10552210B2 (zh)
CN (1) CN107704314B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347483B (zh) 2018-04-08 2021-05-11 中兴通讯股份有限公司 物理机到虚拟机迁移方法、装置及存储介质
CN108614728A (zh) * 2018-04-27 2018-10-02 平安科技(深圳)有限公司 虚拟机服务提供方法、装置、设备及计算机可读存储介质
CN109189615A (zh) * 2018-09-04 2019-01-11 郑州云海信息技术有限公司 一种宕机处理方法和装置
CN109343930A (zh) * 2018-09-11 2019-02-15 郑州云海信息技术有限公司 云计算系统中虚拟机的管理方法和装置
CN109325344A (zh) * 2018-09-13 2019-02-12 郑州云海信息技术有限公司 一种云环境中防御侧信道攻击的虚拟机迁移方法及系统
CN109597677B (zh) * 2018-12-07 2020-05-22 北京百度网讯科技有限公司 用于处理信息的方法和装置
CN110362362A (zh) * 2019-07-24 2019-10-22 北京明略软件系统有限公司 任务调度方法及装置、存储介质、电子装置
WO2021167659A1 (en) * 2019-11-14 2021-08-26 Trideum Corporation Systems and methods of monitoring and controlling remote assets
CN111984969A (zh) * 2020-08-20 2020-11-24 北京金山云网络技术有限公司 虚拟机的故障报警方法、装置及电子设备
CN112783605B (zh) * 2021-01-27 2024-02-23 深信服科技股份有限公司 虚拟机的热迁移方法、装置、设备及存储介质
CN113467884B (zh) * 2021-05-25 2024-08-02 阿里巴巴创新公司 资源配置方法和装置、电子设备及计算机可读存储介质
CN113626140A (zh) * 2021-06-30 2021-11-09 济南浪潮数据技术有限公司 一种虚拟机调整方法和相关装置
CN113821304B (zh) * 2021-09-07 2024-08-23 北京金山云网络技术有限公司 在线迁移的信息确定方法、装置、设备和存储介质
CN114443296B (zh) * 2022-01-21 2023-11-14 苏州浪潮智能科技有限公司 一种高可用事件的回迁方法、装置、设备及可读介质
CN116560802B (zh) * 2023-07-05 2023-09-26 麒麟软件有限公司 一种基于虚拟机负载的虚拟机自适应热迁移方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814121A (zh) * 2010-04-19 2010-08-25 山东高效能服务器和存储研究院 一种预见性虚拟机零宕机ha
CN103701627A (zh) * 2012-09-27 2014-04-02 北京搜狐新媒体信息技术有限公司 一种云计算平台故障检测方法、装置及解决方法、装置
CN103957229A (zh) * 2013-12-31 2014-07-30 电子科技大学 IaaS云系统中物理机的主动更新方法、装置及服务器
CN106933650A (zh) * 2017-03-03 2017-07-07 北方工业大学 云应用系统的负载管理方法及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162629B2 (en) * 2003-11-20 2007-01-09 Intel Corporation Method to suspend-and-resume across various operational environment contexts
US20080189700A1 (en) * 2007-02-02 2008-08-07 Vmware, Inc. Admission Control for Virtual Machine Cluster
JP2009145931A (ja) * 2007-12-11 2009-07-02 Hitachi Ltd 仮想計算機と物理計算機との間のマイグレーション方法及びその計算機システム
US8132057B2 (en) * 2009-08-07 2012-03-06 International Business Machines Corporation Automated transition to a recovery kernel via firmware-assisted-dump flows providing automated operating system diagnosis and repair
US8671405B2 (en) * 2010-03-31 2014-03-11 Microsoft Corporation Virtual machine crash file generation techniques
GB2483300A (en) * 2010-09-06 2012-03-07 Fonleap Ltd Transferring virtual machine state between host systems with common portions using a portable device
US9032168B2 (en) * 2012-05-31 2015-05-12 Htc Corporation Memory management methods and systems for mobile devices
US9910712B2 (en) * 2015-03-26 2018-03-06 Vmware, Inc. Replication of a virtualized computing environment to a computing system with offline hosts
US11243782B2 (en) * 2016-12-14 2022-02-08 Microsoft Technology Licensing, Llc Kernel soft reset using non-volatile RAM
US10394295B2 (en) * 2017-05-17 2019-08-27 Intel Corporation Streamlined physical restart of servers method and apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814121A (zh) * 2010-04-19 2010-08-25 山东高效能服务器和存储研究院 一种预见性虚拟机零宕机ha
CN103701627A (zh) * 2012-09-27 2014-04-02 北京搜狐新媒体信息技术有限公司 一种云计算平台故障检测方法、装置及解决方法、装置
CN103957229A (zh) * 2013-12-31 2014-07-30 电子科技大学 IaaS云系统中物理机的主动更新方法、装置及服务器
CN106933650A (zh) * 2017-03-03 2017-07-07 北方工业大学 云应用系统的负载管理方法及系统

Also Published As

Publication number Publication date
CN107704314A (zh) 2018-02-16
US10552210B2 (en) 2020-02-04
US20190138349A1 (en) 2019-05-09

Similar Documents

Publication Publication Date Title
CN107704314B (zh) 用于迁移虚拟机的方法和装置
US8176558B2 (en) Anti-virus method, computer, and recording medium
US9965304B2 (en) Delayed hardware upgrades in virtualization systems
CN107690645B (zh) 使用解释器虚拟机的行为恶意软件检测
US8826269B2 (en) Annotating virtual application processes
US20190087212A1 (en) Android simulator and method for implementing android simulator
CN105765534B (zh) 虚拟计算系统和方法
TWI573075B (zh) 持續及有彈性之工作處理
US8429669B2 (en) Virtual machine switching control by prefetching information out of and updating a set of processor control information based on a bitmap having update status
US9092255B2 (en) Multi-core processor system, computer product, and control method for interrupt execution
CN108337314B (zh) 分布式系统、用于主服务器的信息处理方法和装置
US9740563B2 (en) Controlling software processes that are subject to communications restrictions by freezing and thawing a computational process in a virtual machine from writing data
US9201823B2 (en) Pessimistic interrupt affinity for devices
US8677186B2 (en) Debugging in data parallel computations
US10372908B2 (en) System and method for detecting malware in a stream of bytes
CN111831414A (zh) 线程迁移方法、装置、存储介质及电子设备
CN113791867B (zh) 调整kvm虚拟机服务进程优先级的方法及应用
US20150212841A1 (en) Delayed population of advanced configuration and power interface (acpi) tables by hypervisor
US10628513B2 (en) Providing isolated extensibility for webpages with a unified manifest and omni-accessible platform script
CN114510334A (zh) 类实例的调用方法、装置、电子设备及自动驾驶车辆
CN113961366A (zh) 操作系统的内核函数调用方法及计算机设备
CN114398233B (zh) 一种负载异常检测方法、装置、服务器和存储介质
US11366605B2 (en) Storage management system and method for storage migration services
CN115373894A (zh) 数据恢复方法、装置、电子设备和计算机可读介质
CN114266037A (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