一种跨代CPU云主机热迁移的方法、系统、设备和存储介质技术方案

技术编号:38151753 阅读:7 留言:0更新日期:2023-07-13 09:16
本发明专利技术提供一种跨代CPU云主机热迁移的方法、系统、设备和存储介质,方法包括:在集群内周期性计算所有主机的最小指令集,并将所述最小指令集保存在数据库中;响应于创建虚拟机,根据需求将使能跨代迁移属性保存在虚拟机的元数据中;响应于启动虚拟机,读取所述虚拟机的元数据中的使能跨代迁移属性,并根据所述使能跨代迁移属性判断所述虚拟机是否具备跨代迁移能力;以及响应于所述虚拟机具备跨代迁移能力,使用所述数据库中保存的所述最小指令集启动所述虚拟机。本发明专利技术基于集群的最小指令集启动虚拟机,实现虚拟机在集群内跨代CPU的主机之间相互进行热迁移。机之间相互进行热迁移。机之间相互进行热迁移。

【技术实现步骤摘要】
一种跨代CPU云主机热迁移的方法、系统、设备和存储介质


[0001]本专利技术涉及虚拟机领域,更具体地,特别是指一种跨代CPU云主机热迁移的方法、系统、设备和存储介质。

技术介绍

[0002]在虚拟化场景中,虚拟机热迁移是一个使用效率很高的运维操作。由于热迁移操作需要将虚拟机的CPU状态(如寄存器等)从源主机迁移到目标主机,当源主机和目标主机CPU代次不同时,会因为指令集不同而迁移失败。但是经常由于各种原因,客户现场集群内物理主机的CPU代次不尽相同,这就给现场热迁移操作带来了极大的失败概率。OpenStack云平台启动虚拟机时默认以CPU模式为主机模式启动虚拟机,虚拟机CPU拥有跟物理主机CPU相同的特性,如果要热迁移的目标主机跟源主机CPU的代次不同,那么两个CPU特性必然存在差异,因此热迁移操作将无法成功执行。现有技术中进行热迁移采用的技术手段是通过对特定CPU缺失某些指令异常时对指令的模拟来实现,不具有通用性。

技术实现思路

[0003]有鉴于此,本专利技术实施例的目的在于提出一种跨代CPU云主机热迁移的方法、系统、计算机设备及计算机可读存储介质,本专利技术基于预置的CPU架构白名单,将指令集的大小转化为对应的数值比较,以此来计算集群的最小指令集,基于集群的最小指令集启动虚拟机,实现虚拟机在集群内跨代CPU的主机之间相互进行热迁移,极大提高了热迁移的成功率,并且具有通用性。
[0004]基于上述目的,本专利技术实施例的一方面提供了一种跨代CPU云主机热迁移的方法,包括如下步骤:在集群内周期性计算所有主机的最小指令集,并将所述最小指令集保存在数据库中;响应于创建虚拟机,根据需求将使能跨代迁移属性保存在虚拟机的元数据中;响应于启动虚拟机,读取所述虚拟机的元数据中的使能跨代迁移属性,并根据所述使能跨代迁移属性判断所述虚拟机是否具备跨代迁移能力;以及响应于所述虚拟机具备跨代迁移能力,使用所述数据库中保存的所述最小指令集启动所述虚拟机。
[0005]在一些实施方式中,所述在集群内周期性计算所有主机的最小指令集包括:根据CPU代次指令集白名单列表和每个主机支持的指令集列表确定所有主机的最小指令集。
[0006]在一些实施方式中,所述根据CPU代次指令集白名单列表和每个主机支持的指令集列表确定所有主机的最小指令集包括:计算当前主机支持的指令集列表与CPU代次指令集白名单列表的交集,并计算所述交集中编号最小的指令集;判断所述编号最小的指令集是否小于当前最小指令集;以及响应于所述编号最小的指令集小于当前最小指令集,将所述编号最小的指令集设置为当前最小指令集,并重复上述步骤直到集群中所有主机均处理完成。
[0007]在一些实施方式中,方法还包括:初始化集群最小指令集为所述CPU代次指令集白名单列表中最大的指令集。
[0008]在一些实施方式中,所述根据需求将使能跨代迁移属性保存在虚拟机的元数据中包括:响应于开启虚拟机的跨代迁移能力,在数据库元数据实例表中使能所述虚拟机的跨代迁移能力。
[0009]在一些实施方式中,所述使用所述数据库中保存的所述最小指令集启动所述虚拟机包括:以自定义CPU模式等于最小指令集启动所述虚拟机。
[0010]在一些实施方式中,方法还包括:响应于所述虚拟机不具备跨代迁移能力,以CPU模式等于主机模式启动所述虚拟机。
[0011]本专利技术实施例的另一方面,提供了一种跨代CPU云主机热迁移的系统,包括:计算模块,配置用于在集群内周期性计算所有主机的最小指令集,并将所述最小指令集保存在数据库中;保存模块,配置用于响应于创建虚拟机,根据需求将使能跨代迁移属性保存在虚拟机的元数据中;读取模块,配置用于响应于启动虚拟机,读取所述虚拟机的元数据中的使能跨代迁移属性,并根据所述使能跨代迁移属性判断所述虚拟机是否具备跨代迁移能力;以及执行模块,配置用于响应于所述虚拟机具备跨代迁移能力,使用所述数据库中保存的所述最小指令集启动所述虚拟机。
[0012]本专利技术实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。
[0013]本专利技术实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
[0014]本专利技术具有以下有益技术效果:有跨代迁移诉求的虚拟机以集群的最小指令集启动,可以实现虚拟机在集群内跨代CPU主机上相互热迁移,极大提高了热迁移在此场景的成功率;如果某虚拟机没有跨代迁移的诉求,可以在启动时不选择使能跨代迁移能力,可以保留虚拟机最接近物理主机的CPU性能;可以同时兼容跨代CPU迁移和较高CPU性能两种虚拟机使用场景,通用性更强。
附图说明
[0015]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0016]图1为本专利技术提供的跨代CPU云主机热迁移的方法的实施例的示意图;
[0017]图2为本专利技术提供的跨代CPU云主机热迁移的系统的实施例的示意图;
[0018]图3为本专利技术提供的跨代CPU云主机热迁移的计算机设备的实施例的硬件结构示意图;
[0019]图4为本专利技术提供的跨代CPU云主机热迁移的计算机存储介质的实施例的示意图。
具体实施方式
[0020]为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。
[0021]需要说明的是,本专利技术实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本专利技术实施例的限定,后续实施例对此不再一一说明。
[0022]本专利技术实施例的第一个方面,提出了一种跨代CPU云主机热迁移的方法的实施例。图1示出的是本专利技术提供的跨代CPU云主机热迁移的方法的实施例的示意图。如图1所示,本专利技术实施例包括如下步骤:
[0023]S1、在集群内周期性计算所有主机的最小指令集,并将所述最小指令集保存在数据库中;
[0024]S2、响应于创建虚拟机,根据需求将使能跨代迁移属性保存在虚拟机的元数据中;
[0025]S3、响应于启动虚拟机,读取所述虚拟机的元数据中的使能跨代迁移属性,并根据所述使能跨代迁移属性判断所述虚拟机是否具备跨代迁移能力;以及
[0026]S4、响应于所述虚拟机具备跨代迁移能力,使用所述数据库中保存的所述最小指令集启动所述虚拟机。
[0027]OpenStack:是一个开源的云计算管理平台项目,是一系列开源软件项目的组合。Nova:是OpenStack项目中负责虚拟机计算资源管理的项目。跨代C本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种跨代CPU云主机热迁移的方法,其特征在于,包括如下步骤:在集群内周期性计算所有主机的最小指令集,并将所述最小指令集保存在数据库中;响应于创建虚拟机,根据需求将使能跨代迁移属性保存在虚拟机的元数据中;响应于启动虚拟机,读取所述虚拟机的元数据中的使能跨代迁移属性,并根据所述使能跨代迁移属性判断所述虚拟机是否具备跨代迁移能力;以及响应于所述虚拟机具备跨代迁移能力,使用所述数据库中保存的所述最小指令集启动所述虚拟机。2.根据权利要求1所述的跨代CPU云主机热迁移的方法,其特征在于,所述在集群内周期性计算所有主机的最小指令集包括:根据CPU代次指令集白名单列表和每个主机支持的指令集列表确定所有主机的最小指令集。3.根据权利要求2所述的跨代CPU云主机热迁移的方法,其特征在于,所述根据CPU代次指令集白名单列表和每个主机支持的指令集列表确定所有主机的最小指令集包括:计算当前主机支持的指令集列表与CPU代次指令集白名单列表的交集,并计算所述交集中编号最小的指令集;判断所述编号最小的指令集是否小于当前最小指令集;以及响应于所述编号最小的指令集小于当前最小指令集,将所述编号最小的指令集设置为当前最小指令集,并重复上述步骤直到集群中所有主机均处理完成。4.根据权利要求1所述的跨代CPU云主机热迁移的方法,其特征在于,方法还包括:初始化集群最小指令集为所述CPU代次指令集白名单列表中最大的指令集。5.根据权利要求1所述的跨代CPU云主机热迁移的方法,其特征在于,所述根据需求将使能跨代迁移属性保存在虚拟机的元数据中...

【专利技术属性】
技术研发人员:安国明徐源浩张晨光李东世
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1