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

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

Info

Publication number
CN106648826A
CN106648826A CN201610812046.2A CN201610812046A CN106648826A CN 106648826 A CN106648826 A CN 106648826A CN 201610812046 A CN201610812046 A CN 201610812046A CN 106648826 A CN106648826 A CN 106648826A
Authority
CN
China
Prior art keywords
cpu
physical machine
machine
character
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610812046.2A
Other languages
English (en)
Other versions
CN106648826B (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 CN201610812046.2A priority Critical patent/CN106648826B/zh
Priority to US15/428,941 priority patent/US10318331B2/en
Publication of CN106648826A publication Critical patent/CN106648826A/zh
Application granted granted Critical
Publication of CN106648826B publication Critical patent/CN106648826B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了用于热迁移虚拟机的方法和装置。所述方法的一具体实施方式包括:收到将虚拟机热迁移到目的物理机的请求,则获取源物理机的CPU信息和目的物理机的CPU信息;确定源物理机的CPU指令集架构和目的物理机的CPU指令集架构是否兼容;当兼容时,则进一步确定源物理机的CPU特征和目的物理机的CPU特征是否兼容;当不兼容时,则进一步确定源物理机和所述目的物理机之间不兼容的CPU特征是否在预设的名单中;响应于确定出不兼容的CPU特征在预设的名单中,则将虚拟机从源物理机热迁移到目的物理机。该实施方式实现了异构集群下的虚拟机动态迁移问题,可以动态迁移的虚拟机不再局限在同物理CPU型号,尽可能做到较少的性能牺牲换取兼容性。

Description

用于热迁移虚拟机的方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及用于热迁移虚拟机的方法和装置。
背景技术
云计算尤其是提供虚机服务的产品,随着物理机规模的不断扩大,物理机采购批次也不尽相同,同集群下,存在多种物理机型号,在虚拟化实现当中,内存和磁盘的虚拟化因物理机产生的影响不太大,但是不同CPU(Central Processing Unit,中央处理器)类型,当虚拟机需要跨物理机进行热迁移(又叫动态迁移、实时迁移,即虚拟机保存/恢复,通常是将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上。恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异)时,会存在指令集不兼容的问题,也是异构集群虚拟机热迁移需要重点解决的问题。
针对大规模集群CPU模式一致性及其性能问题及热迁移兼容的问题,主要有两种解决方案:
1)确保集群使用相同的处理器,客户机(即虚拟机)的CPU模式(cpu_model)采用物理机近似模式(host_model)或物理机透传模式(host_passthrough)。
2)使用集群中所有物理机都支持的客户机模式(custom)。
第一种方案是依靠硬件的一致性来保证性能和兼容特性,而第二种解决方案则是考虑到异构比较严重的集群的需求,这种方案对性能的损耗比较严重。
发明内容
本申请的目的在于提出一种用于热迁移虚拟机的方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种用于热迁移虚拟机的方法,所述方法包括:响应于收到将虚拟机从源物理机热迁移到目的物理机的请求,获取所述源物理机的中央处理器CPU信息和所述目的物理机的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;确定所述源物理机的CPU指令集架构和所述目的物理机的CPU指令集架构是否兼容;响应于确定出所述源物理机的CPU指令集架构和所述目的物理机的CPU指令集架构兼容,则进一步确定所述源物理机的CPU特征和所述目的物理机的CPU特征是否兼容;响应于确定出所述源物理机的CPU特征和所述目的物理机的CPU特征不兼容,则进一步确定所述源物理机和所述目的物理机之间不兼容的CPU特征是否在预设的名单中;响应于确定出所述不兼容的CPU特征在预设的名单中,则将所述虚拟机从所述源物理机热迁移到所述目的物理机。
在一些实施例中,所述方法还包括生成预设的名单的步骤,包括:获取集群计算系统中每个物理机CPU的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;将CPU指令集架构兼容但CPU特征不兼容的物理机CPU作为候选物理机CPU集合;将所述候选物理机CPU集合中的每个物理机CPU之间不兼容的CPU特征添加到名单中。
在一些实施例中,所述方法还包括:对所述名单中的不兼容的CPU特征进行CPU信息编码。
在一些实施例中,所述方法还包括:禁用所述名单中的不兼容的CPU特征。
在一些实施例中,所述获取所述源物理机的CPU信息和所述目的物理机的CPU信息,包括:通过CPU汇编指令传入不同的指令参数以获取所述源物理机的CPU信息和所述目的物理机的CPU信息。
在一些实施例中,所述虚拟机采用物理机近似模式。
在一些实施例中,所述方法还包括生成兼容CPU模式的步骤,包括:获取集群计算系统中每个物理机CPU的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;将每个物理机CPU之间兼容的CPU指令集架构和兼容的CPU特征组合成兼容CPU模式以供每个虚拟机使用。
第二方面,本申请提供了一种用于热迁移虚拟机的装置,所述装置包括:获取单元,配置用于响应于收到将虚拟机从源物理机热迁移到目的物理机的请求,获取所述源物理机的中央处理器CPU信息和所述目的物理机的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;检测单元,配置用于确定所述源物理机的CPU指令集架构和所述目的物理机的CPU指令集架构是否兼容;响应于确定出所述源物理机的CPU指令集架构和所述目的物理机的CPU指令集架构兼容,则进一步确定所述源物理机的CPU特征和所述目的物理机的CPU特征是否兼容;查询单元,配置用于响应于确定出所述源物理机的CPU特征和所述目的物理机的CPU特征不兼容,则进一步确定所述源物理机和所述目的物理机之间不兼容的CPU特征是否在预设的名单中;控制单元,配置用于响应于确定出所述不兼容的CPU特征在预设的名单中,则将所述虚拟机从所述源物理机热迁移到所述目的物理机。
在一些实施例中,所述装置还包括名单生成单元,配置用于:获取集群计算系统中每个物理机CPU的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;将CPU指令集架构兼容但CPU特征不兼容的物理机CPU作为候选物理机CPU集合;将所述候选物理机CPU集合中的每个物理机CPU之间不兼容的CPU特征添加到名单中。
在一些实施例中,所述装置还包括编码单元,配置用于:对所述名单中的不兼容的CPU特征进行CPU信息编码。
在一些实施例中,所述控制单元进一步配置用于:禁用所述名单中的不兼容的CPU特征。
在一些实施例中,所述获取单元进一步配置用于:通过CPU汇编指令传入不同的指令参数以获取所述源物理机的CPU信息和所述目的物理机的CPU信息。
在一些实施例中,所述虚拟机采用物理机近似模式。
在一些实施例中,所述装置还包括模式生成单元,配置用于:获取集群计算系统中每个物理机CPU的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;将每个物理机CPU之间兼容的CPU指令集架构和兼容的CPU特征组合成兼容CPU模式以供每个虚拟机使用。
本申请提供的用于热迁移虚拟机的方法和装置,通过保证虚拟机在源物理机的CPU指令集架构和目的物理机的CPU指令集架构兼容时,并且源物理机的CPU特征和目的物理机的CPU特征虽然不兼容但是在预设的名单中时进行热迁移,解决了虚拟机跨物理机热迁移时由于CPU型号不同而不能进行热迁移的问题,并且不需要牺牲太多物理机的CPU性能以换取兼容性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的用于热迁移虚拟机的方法的一个实施例的流程图;
图3是根据本申请的用于热迁移虚拟机的方法的又一个实施例的流程图;
图4是根据本申请的用于热迁移虚拟机的装置的一个实施例的结构示意图;
图5是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于热迁移虚拟机的方法或用于热迁移虚拟机的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括物理机(相对于虚拟机而言的对实体计算机的称呼。物理机提供给虚拟机以硬件环境,有时也称为“寄主”或“宿主”)101、102、103,网络104和服务器105。网络104用以在物理机101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用物理机101、102、103通过网络104与服务器105交互,以接收或发送消息等。物理机101、102、103上可以安装有虚拟机,并接收服务器105的虚拟机调度指令。虚拟机(Virtual Machine,VM)是一种通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,现有的虚拟机所在的物理机一般分为三层,第一层为承载虚拟机系统的硬件,虚拟机所在的CPU就处于这一层,第二层为构建在硬件之上虚拟机管理层(Virtual Machine Manager,VMM),用于对虚拟机进行管理,第三层为虚拟机本身,包括虚拟机的虚拟CPU及虚拟内存等。
物理机101、102、103可以是安装有虚拟机的平板电脑、膝上型便携计算机和台式计算机等等。物理机提供给虚拟机以硬件环境,有时也称为“寄主”或“宿主”。通过物理机和虚拟机的配合,一台计算机上可以安装上多个操作系统(一个外界操作系统和虚拟机中的数个操作系统),并且几个操作系统间还可以实现通信,就像是有多台计算机一样。
服务器105可以是提供各种服务的服务器,例如对物理机101、102、103上运行的虚拟机提供管理功能的虚拟机管理服务器。虚拟机管理服务器可以定时监控各个物理机和虚拟机的资源利用率,根据资源分布情况,利用热迁移调整虚拟机在物理机上的分布。热迁移(Live Migration),又叫动态迁移、实时迁移,即虚拟机保存/恢复,通常是将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上。恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异。
需要说明的是,本申请实施例所提供的用于热迁移虚拟机的方法一般由服务器105执行,相应地,用于热迁移虚拟机的装置一般设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的用于热迁移虚拟机的方法的一个实施例的流程200。所述的用于热迁移虚拟机的方法,包括以下步骤:
步骤201,响应于收到将虚拟机从源物理机热迁移到目的物理机的请求,获取源物理机的CPU信息和目的物理机的CPU信息。
以当前主流的云计算产品实现框架openstack(虚机管理组件)+libvirt(虚拟化管理组件)+driver(qemu-kvm)(驱动程序组件)为例,最终呈现给用户的虚拟CPU模式(vcpu_model)是这个三个组件进行不同层次的处理结果。热迁移是全系统状态的迁移,对于CPU而言在支持的特征(feature)和各个寄存器的状态在对等的状态下才可以热迁移,在迁移时,会比较CPU的信息,包括制造商(vendor)、产品系列代号(family)等,所以通常在虚机管理逻辑里,不允许在不同型号的物理机CPU之间进行热迁移。
在本实施例中,用于热迁移虚拟机的方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式从物理机接收热迁移请求,该热迁移请求包括迁移的目的物理机。在执行热迁移操作前需要通过CPU信息检测源物理机CPU和目的物理机CPU的兼容性。其中,该CPU信息包括CPU指令集架构(ISA,Instruction SetArchitecture)和CPU特征(feature)。ISA的常见种类如下:复杂指令集运算(ComplexInstruction Set Computing,CISC);精简指令集运算(Reduced Instruction SetComputing,RISC);显式并行指令集运算(Explicitly Parallel Instruction Computing,EPIC);超长指令字指令集运算(VLIW)。CPU特征是除了基础的ISA之外的扩展的特殊指令,例如向量计算、安全及多媒体等领域的专用硬件指令。
在本实施例的一些可选的实现方式中,通过CPU汇编指令传入不同的指令参数以获取源物理机的CPU信息和目的物理机的CPU信息。例如,通过CPUID指令获取CPU信息,CPUID指令是intel IA32架构(英特尔32位体系架构)下获得CPU信息的汇编指令,可以得到CPU类型,型号,制造商信息,商标信息,序列号,缓存等一系列CPU相关的东西。CPUID使用eax作为输入参数,eax,ebx,ecx,edx作为输出参数。把eax=0作为输入参数,可以得到CPU的制造商信息。CPUID指令执行以后,会返回一个12字符的制造商信息,前四个字符的ASC码按低位到高位放在ebx,中间四个放在edx,最后四个字符放在ecx。比如说,对于intel的CPU,会返回一个“GenuineIntel”的字符串,返回值的存储格式为:
31 23 15 07 00
EBX|u(75)|n(6E)|e(65)|G(47)
EDX|I(49)|e(65)|n(6E)|i(69)
ECX|l(6C)|e(65)|t(74)|n(6E)
CPU的特性可以通过CPUID获得,参数是eax=1,返回值放在edx和ecx,通过验证edx或者ecx的某一个bit,可以获得CPU的一个特性是否被支持。比如说,edx的bit 32代表是否支持MMX,edx的bit 28代表是否支持Hyper-Threading,ecx的bit 7代表是否支持speed sted。
在本实施例的一些可选的实现方式中,集群计算系统中的虚拟机采用物理机近似模式(host_model)。虚拟化驱动组件的发展速度远跟不上cpuCPU制造制造商的产品更新速度。因此虚拟化管理组件的处理原则是找出驱动所支持的CPU模式中跟当前物理机CPU功能集合重合度最大的,并且最好的。
现有技术中为了保证虚拟机在不同宿主机之间迁移时候的兼容性,虚拟化管理组件(例如libvirt)提供三种CPU模式(cpu_model):
a)客户机模式(custom):指定一个特定的CPU模式用于虚拟机,这个模式必须是当前虚拟化管理组件支持的,同时在当前物理机CPU实际能力支撑范围之内的模式。
b)物理机近似模式(host_model):不指定具体的CPU模式,让虚拟化管理组件具体去决定一个跟物理机(host)CPU最接近的CPU模式。
c)物理机透传模式(host_passthrough):将物理机(host)CPU透传到虚拟机(guest)。
客户机模式具有最好的兼容性,对于整个集群而言其所有的cpu_model都是一致的,迁移兼容性最好,但是由于选择具体的cpu model时需要考虑所有物理cpu的计算能力,因此对性能的限制较大,导致性能比较低。
物理机透传模式具有最好的性能表现,将物理机CPU所具有的最佳计算能力呈现给虚拟机。
物理机近似模式是一种性能跟兼容性折衷的一种方式,具体需要虚拟化管理组件来处理。
步骤202,确定源物理机的ISA和目的物理机的ISA是否兼容。
在本实施例中,基于步骤201中得到的源物理机的CPU信息和目的物理机的CPU信息,上述电子设备(例如图1所示的服务器)判断源物理机的ISA和目的物理机的ISA是否兼容,如果不兼容则不能进行热迁移,如果兼容则进行下一步判断。
步骤203,确定源物理机的CPU特征和目的物理机的CPU特征是否兼容。
在本实施例中,在基于步骤202判断出源物理机的ISA和目的物理机的ISA兼容的情况下,继续判断源物理机的CPU特征和目的物理机的CPU特征是否兼容。
步骤204,确定源物理机和目的物理机之间不兼容的CPU特征是否在预设的名单中。
在本实施例中,在基于步骤203判断出源物理机的CPU特征和目的物理机的CPU特征不兼容的情况下,需要进一步判断源物理机和目的物理机之间不兼容的CPU特征是否在预设的名单中。该预设的名单中包含预设的CPU特征集合。如果不兼容的CPU特征在此名单中,说明不兼容的CPU特征是预先知道并且可容忍的不兼容,可以认为源物理机上的虚拟机模式和目的物理机上的虚拟机模式一致,可继续进行下一步操作,如果不兼容的CPU特征不在此名单中,则不能向目的物理机进行热迁移。如果在基于步骤203判断出源物理机的CPU特征和目的物理机的CPU特征兼容的情况下,即ISA和CPU特征都兼容的情况下,可以认为源物理机上的虚拟机模式和目的物理机上的虚拟机模式一致,可继续进行下一步操作。
在本实施例的一些可选的实现方式中,该方法还包括生成兼容CPU模式的步骤,包括:获取集群计算系统中每个物理机CPU的CPU信息;将每个物理机CPU之间兼容的CPU指令集架构和兼容的CPU特征组合成兼容CPU模式以供每个虚拟机使用。该兼容CPU模式主要目标是涵盖虚拟机CPU模式的全部信息,主要包括基础的ISA信息和增强的特征两部分,如表1所示:
表1
步骤205,将虚拟机从源物理机热迁移到目的物理机。
在本实施例中,基于步骤204判断出源物理机和目的物理机之间不兼容的CPU特征在预设的名单中时,可以将虚拟机从源物理机热迁移到目的物理机。即,保存源物理机上运行的虚拟机并在目的物理机上恢复该虚拟机,通常是将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到不同硬件平台上。恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异。
本申请的上述实施例提供的方法通过对因为CPU特征而导致的CPU不兼容进行过滤操作,将预设的名单中的CPU特征认为是兼容的,因此可以动态迁移的虚拟机不再局限在同物理CPU型号,尽可能做到较少的性能牺牲换取兼容性。
进一步参考图3,其示出了用于热迁移虚拟机的方法的又一个实施例的流程300。该用于热迁移虚拟机的方法的流程300,包括以下步骤:
步骤301,获取集群计算系统中每个物理机CPU的CPU信息。
在本实施例中,用于热迁移虚拟机的方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式获取集群计算系统中每个物理机CPU的CPU信息,其中,CPU信息包括CPU指令集架构和CPU特征。集群计算系统把多台物理机通过快速通信链路连接起来,从外部看来,这些物理机就像一台物理机在工作,而对内来说,外面来的负载通过一定的机制动态地分配到这些节点机中去,从而达到超级服务器才有的高性能、高可用。通过物理机和虚拟机的配合,一台物理机(计算机)上可以安装上多个操作系统(一个外界操作系统和虚拟机中的数个操作系统),并且几个操作系统间还可以实现通信,就像是有多台计算机一样。
步骤302,将CPU指令集架构兼容但CPU特征不兼容的物理机CPU作为候选物理机CPU集合。
在本实施例中,在搭建集群计算系统时虽然不能保证物理机CPU的严格一致性,但是基本上也不会采用基础架构差异较大的CPU类型。因此不同物理机CPU之间的差异主要在小的修订代号跟CPU特征上,而往往都是小的修订版本代号是CPU特征差异的直接反馈,因此可以基本保证基础ISA一致。在多个物理机中选择ISA兼容但CPU特征不兼容的物理机CPU作为候选物理机CPU,虚拟机热迁移时可以在候选的物理机CPU之间迁移。而不能选择ISA不兼容的物理机CPU进行迁移。
在本实施例的一些可选的实现方式中,对不兼容的CPU特征进行CPU信息编码。例如,对于CPU型号E5-2620(V1、V2和V3)而言,表2中的特征不能同时兼容,因此对CPU信息(即,CPUID)进行编码。
表2
步骤303,将候选物理机CPU集合中的每个物理机CPU之间不兼容的CPU特征添加到名单中。
在本实施例中,基于步骤302得到的候选物理机CPU集合,将该集合中CPU之间不兼容的CPU特征添加到名单中,该名单记录的内容为多个物理机CPU之间兼容的CPU特征。在一个集群计算系统中可以将多个物理机分成多组,例如AMD的为一组,Intel的为一组,并为AMD和Intel分别建立兼容CPU特征名单。当该集群计算系统中新增物理机时,可根据新增物理机CPU信息将其划入一个分组中并更新兼容CPU特征名单。
在本实施例的一些可选的实现方式中,禁用所生成的名单中的不兼容的CPU特征,以避免出现跨物理机热迁移时由于CPU特征的不兼容而导致的迁移失败。
本申请的上述实施例提供的方法通过设置兼容CPU特征名单来屏蔽底层差异,在保障系统性能的同时提高虚拟机热迁移的成功率。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种用于热迁移虚拟机的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所述的用于热迁移虚拟机的装置400包括:获取单元401、检测单元402、查询单元403和控制单元404。其中,获取单元401配置用于响应于收到将虚拟机从源物理机热迁移到目的物理机的请求,获取所述源物理机的中央处理器CPU信息和所述目的物理机的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;检测单元402配置用于确定所述源物理机的CPU指令集架构和所述目的物理机的CPU指令集架构是否兼容;响应于确定出所述源物理机的CPU指令集架构和所述目的物理机的CPU指令集架构兼容,则进一步确定所述源物理机的CPU特征和所述目的物理机的CPU特征是否兼容;查询单元403配置用于响应于确定出所述源物理机的CPU特征和所述目的物理机的CPU特征不兼容,则进一步确定所述源物理机和所述目的物理机之间不兼容的CPU特征是否在预设的名单中;控制单元404配置用于响应于确定出所述不兼容的CPU特征在预设的名单中,则将所述虚拟机从所述源物理机热迁移到所述目的物理机。
在本实施例中,获取单元401获取源物理机和目的物理机的CPU信息以供检测单元402判断是否存在源物理机和目的物理机的CPU信息的ISA兼容但CPU特征不兼容的情况,当源物理机和目的物理机的ISA兼容但CPU特征不兼容时,通过查询单元403查询该不兼容的CPU特征是否在预设的名单中,当在预设的名单中时控制单元404将所述虚拟机从所述源物理机热迁移到所述目的物理机。
在本实施例的一些可选的实现方式中,装置400还包括名单生成单元(未示出),配置用于:获取集群计算系统中每个物理机CPU的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;将CPU指令集架构兼容但CPU特征不兼容的物理机CPU作为候选物理机CPU集合;将所述候选物理机CPU集合中的每个物理机CPU之间不兼容的CPU特征添加到名单中。
在本实施例的一些可选的实现方式中,装置400还包括编码单元(未示出),配置用于:对所述名单中的不兼容的CPU特征进行CPU信息编码。
在本实施例的一些可选的实现方式中,控制单元404进一步配置用于:禁用所述名单中的不兼容的CPU特征。
在本实施例的一些可选的实现方式中,获取单元401进一步配置用于:通过CPU汇编指令传入不同的指令参数以获取所述源物理机的CPU信息和所述目的物理机的CPU信息。
在本实施例的一些可选的实现方式中,虚拟机采用物理机近似模式。
在本实施例的一些可选的实现方式中,装置400还包括模式生成单元(未示出),配置用于:获取集群计算系统中每个物理机CPU的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;将每个物理机CPU之间兼容的CPU指令集架构和兼容的CPU特征组合成兼容CPU模式以供每个虚拟机使用。
下面参考图5,其示出了适于用来实现本申请实施例的服务器的计算机系统500的结构示意图。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的方法中限定的上述功能。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、检测单元、查询单元和控制单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“响应于收到将虚拟机从源物理机热迁移到目的物理机的请求,获取所述源物理机的中央处理器CPU信息和所述目的物理机的CPU信息的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:响应于收到将虚拟机从源物理机热迁移到目的物理机的请求,获取所述源物理机的中央处理器CPU信息和所述目的物理机的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;确定所述源物理机的CPU指令集架构和所述目的物理机的CPU指令集架构是否兼容;响应于确定出所述源物理机的CPU指令集架构和所述目的物理机的CPU指令集架构兼容,则进一步确定所述源物理机的CPU特征和所述目的物理机的CPU特征是否兼容;响应于确定出所述源物理机的CPU特征和所述目的物理机的CPU特征不兼容,则进一步确定所述源物理机和所述目的物理机之间不兼容的CPU特征是否在预设的名单中;响应于确定出所述不兼容的CPU特征在预设的名单中,则将所述虚拟机从所述源物理机热迁移到所述目的物理机。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (14)

1.一种用于热迁移虚拟机的方法,其特征在于,所述方法包括:
响应于收到将虚拟机从源物理机热迁移到目的物理机的请求,获取所述源物理机的中央处理器CPU信息和所述目的物理机的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;
确定所述源物理机的CPU指令集架构和所述目的物理机的CPU指令集架构是否兼容;
响应于确定出所述源物理机的CPU指令集架构和所述目的物理机的CPU指令集架构兼容,则进一步确定所述源物理机的CPU特征和所述目的物理机的CPU特征是否兼容;
响应于确定出所述源物理机的CPU特征和所述目的物理机的CPU特征不兼容,则进一步确定所述源物理机和所述目的物理机之间不兼容的CPU特征是否在预设的名单中;
响应于确定出所述不兼容的CPU特征在预设的名单中,则将所述虚拟机从所述源物理机热迁移到所述目的物理机。
2.根据权利要求1所述的用于热迁移虚拟机的方法,其特征在于,所述方法还包括生成预设的名单的步骤,包括:
获取集群计算系统中每个物理机CPU的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;
将CPU指令集架构兼容但CPU特征不兼容的物理机CPU作为候选物理机CPU集合;
将所述候选物理机CPU集合中的每个物理机CPU之间不兼容的CPU特征添加到名单中。
3.根据权利要求2所述的用于热迁移虚拟机的方法,其特征在于,所述方法还包括:
对所述名单中的不兼容的CPU特征进行CPU信息编码。
4.根据权利要求2所述的用于热迁移虚拟机的方法,其特征在于,所述方法还包括:
禁用所述名单中的不兼容的CPU特征。
5.根据权利要求1所述的用于热迁移虚拟机的方法,其特征在于,所述获取所述源物理机的CPU信息和所述目的物理机的CPU信息,包括:
通过CPU汇编指令传入不同的指令参数以获取所述源物理机的CPU信息和所述目的物理机的CPU信息。
6.根据权利要求1所述的用于热迁移虚拟机的方法,其特征在于,所述虚拟机采用物理机近似模式。
7.根据权利要求1所述的用于热迁移虚拟机的方法,其特征在于,所述方法还包括生成兼容CPU模式的步骤,包括:
获取集群计算系统中每个物理机CPU的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;
将每个物理机CPU之间兼容的CPU指令集架构和兼容的CPU特征组合成兼容CPU模式以供每个虚拟机使用。
8.一种用于热迁移虚拟机的装置,其特征在于,所述装置包括:
获取单元,配置用于响应于收到将虚拟机从源物理机热迁移到目的物理机的请求,获取所述源物理机的中央处理器CPU信息和所述目的物理机的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;
检测单元,配置用于确定所述源物理机的CPU指令集架构和所述目的物理机的CPU指令集架构是否兼容;响应于确定出所述源物理机的CPU指令集架构和所述目的物理机的CPU指令集架构兼容,则进一步确定所述源物理机的CPU特征和所述目的物理机的CPU特征是否兼容;
查询单元,配置用于响应于确定出所述源物理机的CPU特征和所述目的物理机的CPU特征不兼容,则进一步确定所述源物理机和所述目的物理机之间不兼容的CPU特征是否在预设的名单中;
控制单元,配置用于响应于确定出所述不兼容的CPU特征在预设的名单中,则将所述虚拟机从所述源物理机热迁移到所述目的物理机。
9.根据权利要求8所述的用于热迁移虚拟机的装置,其特征在于,所述装置还包括名单生成单元,配置用于:
获取集群计算系统中每个物理机CPU的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;
将CPU指令集架构兼容但CPU特征不兼容的物理机CPU作为候选物理机CPU集合;
将所述候选物理机CPU集合中的每个物理机CPU之间不兼容的CPU特征添加到名单中。
10.根据权利要求9所述的用于热迁移虚拟机的装置,其特征在于,所述装置还包括编码单元,配置用于:
对所述名单中的不兼容的CPU特征进行CPU信息编码。
11.根据权利要求9所述的用于热迁移虚拟机的装置,其特征在于,所述控制单元进一步配置用于:
禁用所述名单中的不兼容的CPU特征。
12.根据权利要求9所述的用于热迁移虚拟机的装置,其特征在于,所述获取单元进一步配置用于:
通过CPU汇编指令传入不同的指令参数以获取所述源物理机的CPU信息和所述目的物理机的CPU信息。
13.根据权利要求8所述的用于热迁移虚拟机的装置,其特征在于,所述虚拟机采用物理机近似模式。
14.根据权利要求8所述的用于热迁移虚拟机的装置,其特征在于,所述装置还包括模式生成单元,配置用于:
获取集群计算系统中每个物理机CPU的CPU信息,其中,所述CPU信息包括CPU指令集架构和CPU特征;
将每个物理机CPU之间兼容的CPU指令集架构和兼容的CPU特征组合成兼容CPU模式以供每个虚拟机使用。
CN201610812046.2A 2016-09-09 2016-09-09 用于热迁移虚拟机的方法和装置 Active CN106648826B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610812046.2A CN106648826B (zh) 2016-09-09 2016-09-09 用于热迁移虚拟机的方法和装置
US15/428,941 US10318331B2 (en) 2016-09-09 2017-02-09 Method and apparatus for live-migrating virtual machines

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610812046.2A CN106648826B (zh) 2016-09-09 2016-09-09 用于热迁移虚拟机的方法和装置

Publications (2)

Publication Number Publication Date
CN106648826A true CN106648826A (zh) 2017-05-10
CN106648826B CN106648826B (zh) 2018-06-19

Family

ID=58852956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610812046.2A Active CN106648826B (zh) 2016-09-09 2016-09-09 用于热迁移虚拟机的方法和装置

Country Status (2)

Country Link
US (1) US10318331B2 (zh)
CN (1) CN106648826B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203414A (zh) * 2017-05-27 2017-09-26 郑州云海信息技术有限公司 一种异构cpu服务器集群中虚拟机的热迁移方法及装置
CN107220103A (zh) * 2017-05-27 2017-09-29 郑州云海信息技术有限公司 一种宿主物理机的cpu加速方法及装置
CN107621970A (zh) * 2017-10-16 2018-01-23 郑州云海信息技术有限公司 一种异构cpu的虚拟机迁移方法和装置
CN107678830A (zh) * 2017-09-15 2018-02-09 联想(北京)有限公司 数据迁移方法、设备及其系统
CN112579258A (zh) * 2020-12-14 2021-03-30 科东(广州)软件科技有限公司 一种虚拟机的管理方法、装置、设备及存储介质
CN112653580A (zh) * 2020-12-16 2021-04-13 国网河南省电力公司信息通信公司 网络切片下基于主动探测的虚拟网资源分配方法
CN113010263A (zh) * 2021-02-26 2021-06-22 山东英信计算机技术有限公司 云平台中的虚拟机的创建方法、系统、设备及存储介质
CN113553143A (zh) * 2021-09-18 2021-10-26 云宏信息科技股份有限公司 虚拟化资源池的异构方法、可读存储介质及虚拟化平台

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11080097B1 (en) * 2017-05-30 2021-08-03 Amazon Technologies, Inc. User defined logical spread placement groups for computing resources within a computing environment
US11803407B1 (en) * 2020-09-29 2023-10-31 Amazon Technologies, Inc. Emulation layer for overcoming incompatibilities in virtual machine instance migration
CN113032154B (zh) * 2021-04-19 2023-11-07 深信服科技股份有限公司 一种虚拟cpu的调度方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101382906A (zh) * 2007-09-06 2009-03-11 戴尔产品有限公司 处理器架构之间的虚拟机迁移
CN103455363A (zh) * 2013-08-30 2013-12-18 华为技术有限公司 一种虚拟机的指令处理方法、装置及物理主机
CN103617070A (zh) * 2013-11-27 2014-03-05 华为技术有限公司 虚拟机迁移方法及装置
CN104111867A (zh) * 2013-04-19 2014-10-22 杭州迪普科技有限公司 一种虚拟机迁移装置及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693210B (zh) * 2011-03-21 2017-03-01 中兴通讯股份有限公司 一种处理器间传递参数的方法及装置
US9928107B1 (en) * 2012-03-30 2018-03-27 Amazon Technologies, Inc. Fast IP migration in a hybrid network environment
WO2016074166A1 (en) * 2014-11-12 2016-05-19 Intel Corporation Live migration of virtual machines from/to host computers with graphics virtualization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101382906A (zh) * 2007-09-06 2009-03-11 戴尔产品有限公司 处理器架构之间的虚拟机迁移
CN104111867A (zh) * 2013-04-19 2014-10-22 杭州迪普科技有限公司 一种虚拟机迁移装置及方法
CN103455363A (zh) * 2013-08-30 2013-12-18 华为技术有限公司 一种虚拟机的指令处理方法、装置及物理主机
CN103617070A (zh) * 2013-11-27 2014-03-05 华为技术有限公司 虚拟机迁移方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
VMWARE: "《EVC 和 CPU 兼容性常见问题解答》", 26 June 2014, HTTPS://KB.VMWARE.COM/ARTICLEVIEW/ARTICLES/ZH_CN/ARTICLE/2081853/P *
VMWARE: "《Intel 处理器的 vMotion CPU 兼容性要求》", 20 June 2016, HTTPS://KB.VMWARE.COM/S/ARTICLE/2020948 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203414A (zh) * 2017-05-27 2017-09-26 郑州云海信息技术有限公司 一种异构cpu服务器集群中虚拟机的热迁移方法及装置
CN107220103A (zh) * 2017-05-27 2017-09-29 郑州云海信息技术有限公司 一种宿主物理机的cpu加速方法及装置
CN107678830A (zh) * 2017-09-15 2018-02-09 联想(北京)有限公司 数据迁移方法、设备及其系统
CN107621970A (zh) * 2017-10-16 2018-01-23 郑州云海信息技术有限公司 一种异构cpu的虚拟机迁移方法和装置
CN107621970B (zh) * 2017-10-16 2021-02-05 郑州云海信息技术有限公司 一种异构cpu的虚拟机迁移方法和装置
CN112579258A (zh) * 2020-12-14 2021-03-30 科东(广州)软件科技有限公司 一种虚拟机的管理方法、装置、设备及存储介质
CN112653580A (zh) * 2020-12-16 2021-04-13 国网河南省电力公司信息通信公司 网络切片下基于主动探测的虚拟网资源分配方法
CN113010263A (zh) * 2021-02-26 2021-06-22 山东英信计算机技术有限公司 云平台中的虚拟机的创建方法、系统、设备及存储介质
CN113553143A (zh) * 2021-09-18 2021-10-26 云宏信息科技股份有限公司 虚拟化资源池的异构方法、可读存储介质及虚拟化平台
CN113553143B (zh) * 2021-09-18 2022-01-07 云宏信息科技股份有限公司 虚拟化资源池的异构方法、可读存储介质及虚拟化平台

Also Published As

Publication number Publication date
US10318331B2 (en) 2019-06-11
CN106648826B (zh) 2018-06-19
US20180074840A1 (en) 2018-03-15

Similar Documents

Publication Publication Date Title
CN106648826B (zh) 用于热迁移虚拟机的方法和装置
EP1934794B1 (en) Apparatus, method and system for rapid delivery of distributed applications
US9952852B2 (en) Automated deployment and servicing of distributed applications
US8762986B2 (en) Advanced packaging and deployment of virtual appliances
US10025615B2 (en) Dynamic guest virtual machine identifier allocation
CN103425511B (zh) 云计算环境中应用软件安装部署的系统及方法
CN103069391B (zh) 用于使能在云计算环境中的控制方法和系统
CN109155743A (zh) 使用机器学习算法来满足sla要求的系统和方法
US11579868B1 (en) Machine learning assisted source code refactoring to mitigate anti-patterns
US20040095387A1 (en) Virtualized and realized user interface controls
US20070011444A1 (en) Method, apparatus and system for bundling virtualized and non-virtualized components in a single binary
CN107783816A (zh) 虚拟机的创建方法及装置、大数据集群创建的方法及装置
CN105573830B (zh) 一种虚拟机迁移方法
CN105955805B (zh) 一种应用容器迁移的方法及装置
CN109656646B (zh) 一种远程桌面控制方法、装置、设备及虚拟化芯片
CN110140108B (zh) 处理兄弟调用
CN107368353A (zh) 一种实现虚拟机内存热添加的方法和装置
EP3701678A1 (en) Methods for defining a network service descriptor (nsd) for a network service (ns), and network functions virtualization (nfv) orchestrator (nfvo) using said nsd
CN113742014A (zh) 界面渲染方法、装置、电子设备及存储介质
CN104077187B (zh) 用于调度应用程序的执行的方法和系统
US11895553B2 (en) Web application with components in different virtual environments
Goethals et al. A functional and performance benchmark of lightweight virtualization platforms for edge computing
CN106843857A (zh) 基于srp实现代码库转换sdk的方法和装置
US20180196928A1 (en) Network visualization for access controls
EP4066174A1 (en) Quantum computing service supporting multiple quantum computing technologies

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