虚拟化资源池的异构方法、可读存储介质及虚拟化平台与流程

文档序号:27095891发布日期:2021-10-27 16:54阅读:350来源:国知局

1.本发明涉及云计算领域,特别涉及一种虚拟化资源池的异构方法、虚拟化平台和计算机可读存储介质,计算机可读存储介质被处理器执行时能实现虚拟化资源池的异构方法。


背景技术:

2.云计算的出现,带来了全新的it基础架构建设、使用和交付模式。云服务器供应商通过服务器虚拟化技术得到虚拟机并将其作为业务服务器提供给用户使用,可以实现更细粒度的资源利用。相比传统物理机,虚拟机的部署更为方便快捷,而且可以在不同物理机之间迁移,提高了资源调度的灵活性。
3.在私有云的建设过程中,有的资源池对硬件的要求较高,需要运行在具有高性能的物理服务器上,由于资源池对硬件的依赖性较强,因此,不便于对不同的资源池进行统一管理,现有的资源池管理方式,为了对不同的资源池进行管理,需要构建多套管理系统,不但系统的构建过程复杂,而且资源管理成本也较高。


技术实现要素:

4.本发明所要解决的技术问题是提供一种虚拟化资源池的异构方法,存储有被执行时实现上述方法的计算机程序的计算机可读存储介质,包括该存储介质的虚拟化平台,该方法能够实现资源池异构。
5.提供一种虚拟化资源池的异构方法,包括如下步骤:特征值获取步骤,使用cpuid指令获取各个主机的cpu特征值;特性指令集获取步骤,计算所获取的全部主机cpu特征值的每个字段的交集,记为特性指令集;虚拟机特性配置步骤,将特性指令集作为虚拟机特性cpufeatureset配置给资源池内的全部虚拟机。
6.优选地,包括新主机入池步骤:获取申请入池的新主机信息,根据所获取信息中的features字段提取该新主机的cpu特征值,计算新主机的cpu特征值与特性指令集的交集,将计算得到的交集作为新的特性指令集分配给各个虚拟机。
7.优选地,包括在所述新主机入池步骤之前执行的预检步骤:获取当前申请入池的新主机的cpu特征值,判断所获取的cpu特征值是否偏离资源池的特性指令集达到预设程度,若判断结果为是则发出提醒。
8.优选地,在所述预检步骤中,若判断结果是向上偏离达到预设程度,则再判断当前资源池资源使用量是否占据资源池的资源总量达到预设程度,若判断结果为是则所述预检步骤不发出提醒。
9.优选地,包括在获取cpu特征值之前执行的配置检测步骤:判断主机的bios配置中是否存在关闭的cpu特性,若判断结果为存在则发出提醒。
10.优选地,包括硬件识别步骤:对新申请加入资源池的主机,判断其硬件配置是否偏离预设的标准配置达到预设程度,若判断结果为是则发出提醒。
11.优选地,所述硬件配置是指网卡数和/或hba卡速率。
12.优选地,所述特征值获取步骤中,获取各个主机的cpu特征值具体是:获取主机的features字段,提取其记录的主机的特征值。
13.还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时能够实现上述虚拟化资源池的异构方法。
14.还提供一种虚拟化平台,虚拟化平台,包括多个虚拟机和处理器,处理器获取虚拟机的资源信息和调整虚拟机的参数,处理器内预先存储有上述计算机可读存储介质,该计算机可读存储介质上的计算机程序可被处理器执行。
15.有益效果:该自动化的虚拟化资源池的异构方法,在构建资源池时,先计算出全部主机cpu特征值的每个字段的交集,即特性指令集,然后将该计算得到的特性指令集作为虚拟机特性cpufeatureset配置给资源池内的全部虚拟机,相当于屏蔽了高版本的cpu主机的部分功能,各个主机运行的虚拟机保持相同的虚拟机特性cpufeatureset,也就是说虚拟机运行在任何主机上都是对等的,使得异构资源池上全部虚拟机能够不受不同主机之间的执行运行差异而实现从一个主机迁移到另外一个主机的在线平滑迁移,并且不需要构建多套管理系统对全部虚拟机及其工作的主机进行管理。
具体实施方式
16.以下结合具体实施方式对本发明创造作进一步详细说明。
17.虚拟化平台由在多主机上构建的多个虚拟机组成,虚拟化平台通过虚拟化资源池的异构方法来管理这些虚拟机。
18.在构建异构资源池时执行该虚拟化资源池的异构方法的步骤如下。
19.特征值获取步骤:使用cpuid指令获取各个主机的cpu特征值。
20.特性指令集获取步骤:计算所获取的全部主机cpu特征值的每个字段的交集,记为特性指令集。
21.虚拟机特性配置步骤:将特性指令集作为虚拟机特性cpufeatureset配置给资源池内的全部虚拟机。
22.通过如上步骤实现的虚拟化资源池的异构方法,相当于在构建资源池时屏蔽了高版本的cpu主机的部分功能,各个主机运行的虚拟机保持相同的虚拟机特性cpufeatureset,也就是说虚拟机运行在任何主机上都是对等的,使得异构资源池上全部虚拟机能够不受不同主机之间的执行运行差异而实现从一个主机迁移到另外一个主机的在线平滑迁移,并且不需要构建多套管理系统对全部虚拟机及其工作的主机进行管理。
23.虚拟机平台执行该虚拟化资源池的异构方法,通过自动计算虚拟机的cpu特性指令集的方式来对全部虚拟机进行控制,具体步骤详述如下。
24.首先,执行特征值获取步骤,使用cpuid指令获取运行各个虚拟机的主机的cpu特征值。获取各个主机的cpu特征值具体是:通过cpuid指令获取主机的xe host

cpu

info中的features字段,提取其记录的主机的特征值。
25.cpuid指令由eax寄存器获得输入参数,再将输出参数给到寄存器eax、ebx、ecx、edx。使用cpuid指令获取的全部主机的cpu特征值(cpufeatures)并返回到eax、ebx、ecx以及edx寄存器,如cpu特征值:17cbfbff

95ba2223

2993fbff

00000003

00000001

00000000

00000000

00000000

00000000,cpu特征值用横线间隔,两个横线之间的数据为一段,其中每一段功能所得到的信息格式是不一样的。
26.以上面获取的cpu特征值为例。
27.第一段:输入参数eax是0x1,ecx清零,输出参数edx//cpufeatures;第二段:输入参数eax是0x1,ecx清零,输出参数ecx//cpufeatures;第三段:输入参数eax是0x80000001,ecx清零,输出参数edx//cpuexternfeatures;第四段:输入参数eax是0x80000001,ecx清零,输出参数ecx//cpuexternfeatures;第五段:输入参数eax是0xd,ecx是1,输出参数eax//thesizeinbytesofthexsaveareacontainingallstatesenabledbyxcro|ia32_xss;第六段:输入参数eax是0x7,ecx是0,输出参数ebx//structuredextendedfeatureflagsenumerationleaf;第七段:输入参数eax是0x7,ecx是0,输出参数ecx//structuredextendedfeatureflagsenumerationleaf;第八段:输入参数eax是0x80000007,ecx清零,输出参数edx//bit08:invarianttscavailableif1;第九段:输入参数eax是0x80000008,ecx清零,输出参数ebx//0。
28.将主机的物理cpu的全部cpuid0x1与cpuid0x80000001执行的返回值按照相同的寄存器值做并集操作,所得到的并集作为该主机的cpu指令集。
29.然后执行特性指令集获取步骤,计算所获取的全部主机cpu特征值的每个字段的交集,具体地,识别各个主机cpu指令集中相同的字段,将识别出的全部的相同字段记为该资源池的特性指令集。
30.不同的型号的cpu或者相同型号的cpu在不同的配置的情况下,获取到的特征值将存在差异,如以下两个cpu的值:17c9cbf5

f6f83203

2191cbf5

00000123

00000007

018c0b39

00000000

00000000

00000000(1);17cbfbff

f7fa3223

2d93fbff

00000123

0000000f

019c4fbb

00000008

00000000

00000000(2);若将这两个cpu组成一个资源池,那么计算他们的每个字段的交集,获得17c9cbf5

f6f83203

2191cbf5

00000123

00000007

018c0b39

00000000

00000000

00000000(1),并将该值传给虚拟化平台的虚拟机监视器hypervisor,hypervisor保存该值以备调取。
31.最后执行虚拟机特性配置步骤,调取保存在hypervisor中的特性指令集作为虚拟机特性cpufeatureset配置给资源池内的全部虚拟机。当虚拟机内部执行cpuid指令vmexit退出至hypervisor时,hypervisor模拟虚拟机的cpuid的执行,并在虚拟机查询cpu
features时,将实际的物理cpu的cpuid返回值与计算所得的对应字段进行与运算后的结果作为虚拟机cpuid的返回值。
32.该自动化的虚拟化资源池的异构方法,在构建资源池时,先计算出全部主机cpu特征值的每个字段的交集,即特性指令集,然后将该计算得到的特性指令集作为虚拟机特性cpufeatureset配置给资源池内的全部虚拟机,相当于屏蔽了高版本的cpu主机的部分功能,各个主机运行的虚拟机保持相同的虚拟机特性cpufeatureset,也就是说虚拟机运行在任何主机上都是对等的,使得异构资源池上全部虚拟机能够不受不同主机之间的执行运行差异而实现从一个主机迁移到另外一个主机的在线平滑迁移,并且不需要构建多套管理系统对全部虚拟机及其工作的主机进行管理。
33.虚拟平台在以下三种情况下执行上述的虚拟化资源池的异构方法:有新主机申请加入资源池;有主机退出资源池;有资源池内主机重启后重新连接资源池内主机。
34.在有新主机申请加入资源池的情况下,先执行新主机入池步骤:获取申请入池的新主机信息,根据所获取信息中的xehost

cpu

info中的features字段提取该新主机的cpu特征值,计算新主机的cpu特征值与特性指令集的交集,将计算得到的交集作为新的特性指令集分配给各个虚拟机。
35.另外,在新主机入池步骤之前执行预检步骤:获取当前申请入池的新主机的cpu特征值,判断所获取的cpu特征值是否偏离(向上偏离或向下偏离)资源池的特性指令集达到预设程度,若判断结果为是则发出提醒。
36.在预检步骤中,若判断结果是向下偏离达到预设程度,则说明新主机版本较低且与资源池内主机的feature值差异过大,将较低版本的cpu主机加入资源池进入高版本的cpu主机资源池中后,可能出现cpu主机关机后无法开机的情况在预检步骤中,若判断结果是向上偏离达到预设程度,则说明新主机版本较高且与资源池内主机的feature值差异过大,将较高版本的cpu主机加入资源池到较低版本的cpu资源池中,无法发挥出高版本cpu主机的新特性,因此不适合将该新主机加入该资源池内。但此时为避免当前资源池急需新主机的资源,需再判断当前资源池资源使用量是否占据资源池的资源总量达到预设程度,若判断结果为是则预检步骤不发出提醒,而是将该新主机加入资源池内。
37.其中,在执行新主机入池步骤之前执行硬件识别步骤,对新申请加入资源池的主机,判断其硬件配置(如网卡数和hba卡速率)是否偏离预设的标准配置达到预设程度(如低于标准配置的70%),若判断结果为是则发出提醒。标准配置是资源池中已有的全部主机的硬件配置的平均值。
38.其中,在特征值获取步骤和新主机入池步骤中,还包括在获取cpu特征值之前执行的配置检测步骤:判断主机的bios配置中是否存在关闭的cpu特性,若判断结果为存在,则将该主机加入资源池后,会导致在整个资源池的全部主机上运行的虚拟机都不能使用这些cpu特性的,如走主机关闭了vt

x,那么资源池中的全部主机将无法运行全虚虚拟机,因此,虚拟化平台发出提醒来提示管理员/用户查看是否可以打开当前处于关闭状态的cpu特性。
39.其中,加入到资源池的主机都采用相同厂商的cpu,不会出现intel和amd的cpu混合使用的场景,且在全部主机上安装同一个虚拟化管理中心版本,同时各个主机的patch也保持一致。
40.如上仅为本发明创造的实施方式,不以此限定专利保护范围。本领域技术人员在本发明创造的基础上作出非实质性的变化或替换,仍落入专利保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1