首页 / 专利库 / 软件 / 虚拟机迁移 / 虚拟机分散调度方法、装置以及电子设备、存储介质

虚拟机分散调度方法、装置以及电子设备、存储介质

阅读:437发布:2020-05-08

专利汇可以提供虚拟机分散调度方法、装置以及电子设备、存储介质专利检索,专利查询,专利分析的服务。并且本公开提供了一种 虚拟机 分散调度方法、装置以及 电子 设备、存储介质,涉及 云 计算技术领域,其中的方法包括:当确定集群中的宿主机具有新增资源承载需求时,对位于宿主机上并处于挂起状态的全部第一虚拟机同时启动时对于资源的需求量进行预判,获得运行预占资源信息;基于当前使用资源信息和运行预占资源信息,获得资源的预判资源总量信息以及第一预判利用率,判断是否对宿主机上的虚拟机进行分散调度;本公开的方法、装置以及电子设备、存储介质,通过对挂起虚拟机进行资源占用的预判,将挂起的虚拟机分散在不同的物理主机上,能够有效缓解大量虚拟机同时启动带来的资源压 力 ,提升云资源池的运行效率,可避免非必要的调度迁移。,下面是虚拟机分散调度方法、装置以及电子设备、存储介质专利的具体信息内容。

1.一种虚拟机分散调度方法,包括:
当确定集群中的宿主机具有新增资源承载需求时,在所述宿主机承载所述新增资源后,获取与所述宿主机的资源相对应的当前使用资源信息;
对位于所述宿主机上并处于挂起状态的全部第一虚拟机同时启动时对于所述资源的需求量进行预判,获得与所述资源相对应的运行预占资源信息;
基于所述当前使用资源信息和所述运行预占资源信息,获得所述资源的预判资源总量信息;
根据所述预判资源总量信息和所述资源的资源总量信息,获得所述资源的第一预判利用率;
基于所述第一预判利用率判断是否对所述宿主机上的虚拟机进行分散调度。
2.如权利要求1所述的方法,所述基于所述第一预判利用率判断是否对所述宿主机上的虚拟机进行分散调度包括:
获取与所述资源相对应的利用率阈值
如果所述第一预判利用率大于或等于所述利用率阈值,则将位于所述宿主机上的属于同一目标用户并且处于挂起状态的多个第二虚拟机,在所述集群中进行分散承载。
3.如权利要求2所述的方法,所述获取与所述宿主机的资源相对应的当前使用资源信息包括:
获取位于所述宿主机上并且处于运行状态的全部虚拟机以及所述宿主机自身对于所述资源的当前使用量,将所述当前使用量确定为所述当前使用资源信息。
4.如权利要求3所述的方法,所述对位于所述宿主机上并处于挂起状态的全部第一虚拟机同时启动时对于所述资源的需求量进行预判,获得与所述资源相对应的运行预占资源信息包括:
获取与所述资源相对应的、分配给所述第一虚拟机的分配资源信息;
获取所述第一虚拟机的QOS等级、所述宿主机的性能信息;
基于所述分配资源信息、所述QOS等级以及所述性能信息获得所述第一虚拟机的预判使用资源;
获得全部所述第一虚拟机的预判使用资源之和,作为所述运行预占资源。
5.如权利要求4所述的方法,所述基于所述分配资源信息、所述QOS等级以及所述性能信息获得所述第一虚拟机的预判使用资源包括:
基于所述QOS等级确定与所述第一虚拟机相对应的资源预留系数;
基于所性能信息确定与所述第一虚拟机相对应的资源调整系数;
获得所述虚拟机分配资源、所述资源预留系数和所述资源调整系数的乘积,作为所述预判使用资源。
6.如权利要求5所述的方法,所述基于所述当前使用资源信息和所述运行预占资源信息,获得所述资源的预判资源总量信息包括:
确定所述预判资源总量信息=所述当前使用资源+所述运行预占资源。
7.如权利要求6所述的方法,所述根据所述预判资源总量信息和所述资源的资源总量信息,获得所述资源的第一预判利用率包括:
确定所述第一预判利用率=所述预判资源总量/所述资源的资源总量。
8.一种虚拟机分散调度装置,包括:
资源监控模,包括:
当前使用资源获取单元,用于当确定集群中的宿主机具有新增资源承载需求时,在所述宿主机承载所述新增资源后,获取与所述宿主机的资源相对应的当前使用资源信息;
预占资源获取单元,用于对位于所述宿主机上并处于挂起状态的全部第一虚拟机同时启动时对于所述资源的需求量进行预判,获得与所述资源相对应的运行预占资源信息;
预判使用资源获取单元,用于基于所述当前使用资源信息和所述运行预占资源信息,获得所述资源的预判资源总量信息;
资源利用率获取单元,用于根据所述预判资源总量信息和所述资源的资源总量信息,获得所述资源的第一预判利用率;
管理模块,用于基于所述第一预判利用率判断是否对所述宿主机上的虚拟机进行分散调度。
9.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7任一项所述的方法。
10.一种电子设备,所述电子设备包括:
处理器;用于存储所述处理器可执行指令的存储器
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-7任一项所述的方法。

说明书全文

虚拟机分散调度方法、装置以及电子设备、存储介质

技术领域

[0001] 本公开涉及计算技术领域,尤其涉及一种虚拟机分散调度方法、装置以及电子设备、存储介质。

背景技术

[0002] 随着互联网技术的快速发展,以技术转移服务为代表的科技服务逐渐向“互联网+”的模式发展。基于云计算的基础设施服务,不仅能解决快速部署、异地灾备,还能便捷的获取大数据分析服务及生态工具,成为了科技服务平台的主要选择。在云服务成为新的普及环境下,如何实现高效的云服务调度切换,提升资源利用率,成为云应用新的关注点。
[0003] 云计算是一种新的商业计算模型和服务模式,它将计算任务分布在大量计算机构成的资源池上,使用户能够按需获取计算能、存储空间和信息服务。虚拟化技术则通过允许计算系统按需分配资源和动态迁移工作负载的方式来支持数据中心的资源共享。然而,由系统规模的增加带来系统管理的复杂性和系统内在的动态性,对云计算数据中心中的虚拟机资源管理来说具有很大的挑战性。在现有的虚拟机管理系统中,虚拟机挂起后(虚拟机挂起相当于程序暂停,几乎完全不占用任何资源,且唤醒速度快),系统仅以实际资源占用情况进行统计分析,对挂起的虚拟机没有做再次启动后的压力预判,当大量用户虚拟机同时唤醒时,则很可能造成由于资源不足的唤醒失败,或者启动时间长,影响用户体验。发明内容
[0004] 为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种虚拟机分散调度方法、装置以及电子设备、存储介质。
[0005] 根据本公开实施例的一个方面,提供一种虚拟机分散调度方法,包括:当确定集群中的宿主机具有新增资源承载需求时,在所述宿主机承载所述新增资源后,获取与所述宿主机的资源相对应的当前使用资源信息;对位于所述宿主机上并处于挂起状态的全部第一虚拟机同时启动时对于所述资源的需求量进行预判,获得与所述资源相对应的运行预占资源信息;基于所述当前使用资源信息和所述运行预占资源信息,获得所述资源的预判资源总量信息;根据所述预判资源总量信息和所述资源的资源总量信息,获得所述资源的第一预判利用率;基于所述第一预判利用率判断是否对所述宿主机上的虚拟机进行分散调度。
[0006] 可选地,所述基于所述第一预判利用率判断是否对所述宿主机上的虚拟机进行分散调度包括:获取与所述资源相对应的利用率阈值;如果所述第一预判利用率大于或等于所述利用率阈值,则将位于所述宿主机上的属于同一目标用户并且处于挂起状态的多个第二虚拟机,在所述集群中进行分散承载。
[0007] 可选地,所述获取与所述宿主机的资源相对应的当前使用资源信息包括:获取位于所述宿主机上并且处于运行状态的全部虚拟机以及所述宿主机自身对于所述资源的当前使用量,将所述当前使用量确定为所述当前使用资源信息。
[0008] 可选地,所述对位于所述宿主机上并处于挂起状态的全部第一虚拟机同时启动时对于所述资源的需求量进行预判,获得与所述资源相对应的运行预占资源信息包括:获取与所述资源相对应的、分配给所述第一虚拟机的分配资源信息;获取所述第一虚拟机的QOS等级、所述宿主机的性能信息;基于所述分配资源信息、所述QOS等级以及所述性能信息获得所述第一虚拟机的预判使用资源;获得全部所述第一虚拟机的预判使用资源之和,作为所述运行预占资源。
[0009] 可选地,所述基于所述分配资源信息、所述QOS等级以及所述性能信息获得所述第一虚拟机的预判使用资源包括:基于所述QOS等级确定与所述第一虚拟机相对应的资源预留系数;基于所性能信息确定与所述第一虚拟机相对应的资源调整系数;获得所述虚拟机分配资源、所述资源预留系数和所述资源调整系数的乘积,作为所述预判使用资源。
[0010] 可选地,所述基于所述当前使用资源信息和所述运行预占资源信息,获得所述资源的预判资源总量信息包括:确定所述预判资源总量信息=所述当前使用资源+所述运行预占资源。
[0011] 可选地,所述根据所述预判资源总量信息和所述资源的资源总量信息,获得所述资源的第一预判利用率包括:确定所述第一预判利用率=所述预判资源总量/所述资源的资源总量。
[0012] 可选地,所述在所述集群中进行分散承载包括:在所述集群中选取没有部署属于所述目标用户的虚拟机的其他宿主机,作为候选宿主机;计算当所述候选宿主机上新增一个第二虚拟机时,与所述候选宿主机相对应的第二预判利用率;如果所述第二预判利用率小于所述利用率阈值,则将此第二虚拟机迁移在此候选宿主机上。
[0013] 可选地,在全部所述候选宿主机中选取所述资源的剩余量最大的候选宿主机,作为目标候选宿主机;计算当所述目标候选宿主机上增加一个第二虚拟机时,与所述目标候选宿主机相对应的所述第二预判利用率;如果所述第二预判利用率小于所述利用率阈值,则将此第二虚拟机迁移在此目标候选宿主机上;如果所述第二预判利用率大于或等于所述利用率阈值,则在所述集群中的全部其他宿主机中选取所述资源的剩余量最大的宿主机,作为目标宿主机;计算当所述目标宿主机上增加一个第二虚拟机时,与所述目标宿主机相对应的所述第三预判利用率;如果所述第三预判利用率小于所述利用率阈值,则将此第二虚拟机迁移在此目标宿主机上。
[0014] 可选地,对所述宿主机和所述资源进行资源池化管理;其中,所述资源包括:CPU、内存、缓存、硬盘资源中的至少一项;所述新增资源承载需求包括:对于新虚拟机创建、新虚拟机启动和现有虚拟机的资源扩容中的一种或多种场景的新资源承载需求。
[0015] 根据本公开实施例的另一方面,提供一种虚拟机分散调度装置,包括:资源监控模,包括:当前使用资源获取单元,用于当确定集群中的宿主机具有新增资源承载需求时,在所述宿主机承载所述新增资源后,获取与所述宿主机的资源相对应的当前使用资源信息;预占资源获取单元,用于对位于所述宿主机上并处于挂起状态的全部第一虚拟机同时启动时对于所述资源的需求量进行预判,获得与所述资源相对应的运行预占资源信息;预判使用资源获取单元,用于基于所述当前使用资源信息和所述运行预占资源信息,获得所述资源的预判资源总量信息;资源利用率获取单元,用于根据所述预判资源总量信息和所述资源的资源总量信息,获得所述资源的第一预判利用率;云管理模块,用于基于所述第一预判利用率判断是否对所述宿主机上的虚拟机进行分散调度。
[0016] 可选地,所述云管理模块,用于获取与所述资源相对应的利用率阈值;如果所述第一预判利用率大于或等于所述利用率阈值,则将位于所述宿主机上的属于同一目标用户并且处于挂起状态的多个第二虚拟机,在所述集群中进行分散承载。
[0017] 可选地,所述当前使用资源获取单元,用于获取位于所述宿主机上并且处于运行状态的全部虚拟机以及所述宿主机自身对于所述资源的当前使用量,将所述当前使用量确定为所述当前使用资源信息。
[0018] 可选地,所述预占资源获取单元,包括:信息获取单元,用于获取与所述资源相对应的、分配给所述第一虚拟机的分配资源信息;获取所述第一虚拟机的QOS等级、所述宿主机的性能信息;预判资源单元,用于基于所述分配资源信息、所述QOS等级以及所述性能信息获得所述第一虚拟机的预判使用资源;资源预占确定单元,用于获得全部所述第一虚拟机的预判使用资源之和,作为所述运行预占资源。
[0019] 可选地,所述预判资源单元,用于基于所述QOS等级确定与所述第一虚拟机相对应的资源预留系数;基于所性能信息确定与所述第一虚拟机相对应的资源调整系数;获得所述虚拟机分配资源、所述资源预留系数和所述资源调整系数的乘积,作为所述预判使用资源。
[0020] 可选地,所述预判使用资源获取单元,用于确定所述预判资源总量信息=所述当前使用资源+所述运行预占资源。
[0021] 可选地,所述资源利用率获取单元,用于确定所述第一预判利用率=所述预判资源总量/所述资源的资源总量。
[0022] 可选地,所述云管理模块,包括:宿主机选取单元,用于在所述集群中选取没有部署属于所述目标用户的虚拟机的其他宿主机,作为候选宿主机;资源利用率计算单元,用于计算当所述候选宿主机上新增一个第二虚拟机时,与所述候选宿主机相对应的第二预判利用率;虚拟机调度单元,用于如果所述第二预判利用率小于所述利用率阈值,则将此第二虚拟机迁移在此候选宿主机上。
[0023] 可选地,所述宿主机选取单元,用于在全部所述候选宿主机中选取所述资源的剩余量最大的候选宿主机,作为目标候选宿主机;所述资源利用率计算单元,用于计算当所述目标候选宿主机上增加一个第二虚拟机时,与所述目标候选宿主机相对应的所述第二预判利用率;所述虚拟机调度单元,用于如果所述第二预判利用率小于所述利用率阈值,则将此第二虚拟机迁移在此目标候选宿主机上;所述宿主机选取单元,用于如果所述第二预判利用率大于或等于所述利用率阈值,则在所述集群中的全部其他宿主机中选取所述资源的剩余量最大的宿主机,作为目标宿主机;所述资源利用率计算单元,用于计算当所述目标宿主机上增加一个第二虚拟机时,与所述目标宿主机相对应的所述第三预判利用率;所述虚拟机调度单元,用于如果所述第三预判利用率小于所述利用率阈值,则将此第二虚拟机迁移在此目标宿主机上。
[0024] 可选地,资源池管理模块,用于对所述宿主机和所述资源进行资源池化管理;其中,所述资源包括:CPU、内存、缓存、硬盘资源中的至少一项;所述新增资源承载需求包括:对于新虚拟机创建、新虚拟机启动和现有虚拟机的资源扩容中的一种或多种场景的新资源承载需求。
[0025] 根据本公开实施例的又一方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述的方法。
[0026] 根据本公开实施例的再一方面,提供一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于执行上述的方法。
[0027] 基于本公开上述实施例提供的一种虚拟机分散调度方法、装置以及电子设备、存储介质,通过对挂起虚拟机进行资源占用的预判,将挂起的虚拟机分散在不同的物理主机上,能够有效缓解大量虚拟机同时启动带来的资源压力,提升云资源池的运行效率,可避免非必要的调度迁移,有效的改善了客户体验。
[0028] 下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

附图说明

[0029] 通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征以及优势将变得更加明显。附图用来提供对本公开实施例的进一步的理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
[0030] 图1为本公开的虚拟机分散调度方法的一个实施例的流程图
[0031] 图2为本公开的虚拟机分散调度方法的一个实施例中的确定运行预占资源的流程图;
[0032] 图3为本公开的虚拟机分散调度方法的一个实施例中的迁移虚拟机的流程图;
[0033] 图4A为本公开的虚拟机分散调度方法的另一个实施例中的迁移虚拟机的流程图,图4B为本公开的虚拟机分散调度方法与现有技术中的调度方法的对比示意图;
[0034] 图5为本公开的虚拟机分散调度装置的一个实施例的结构示意图;
[0035] 图6为本公开的虚拟机分散调度装置的一个实施例中的资源监控模块的结构示意图;
[0036] 图7为本公开的虚拟机分散调度装置的一个实施例中的预占资源获取单元的结构示意图;
[0037] 图8为本公开的虚拟机分散调度装置的一个实施例中的云管理模块的结构示意图;
[0038] 图9是本公开的电子设备的一个实施例的结构图。

具体实施方式

[0039] 下面将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
[0040] 应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
[0041] 本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
[0042] 还应理解,在本公开实施例中,“多个”可以指两个或者两个以上,“至少一个”可以指一个、两个或两个以上。
[0043] 还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
[0044] 另外,本公开中术语“和/或”,仅是一种描述关联对象的关联关系,表示可以存在三种关系,如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0045] 还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
[0046] 同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
[0047] 以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
[0048] 对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
[0049] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0050] 本公开的实施例可以应用于终端设备、计算机系统服务器等电子设备,其可与众多其它通用或者专用计算系统环境或配置一起操作。适于与终端设备、计算机系统或者服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境等等。
[0051] 终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施。在分布式云计算环境中,任务可以是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0052] 申请概述
[0053] 在实现本公开的过程中,发明人发现,在现有技术中,通常采用解决多准则决策分析方法中的TOPSIS(Technique for Order Preference by Similarity to an Ideal Solution)方法来选择物理结点,目的是为了均衡系统中多个目标之间的冲突。在虚拟资源管理中,虚拟机部署时选择宿主机的决策直接关系着服务器资源是否被有效利用,常用的选择方法包括轮询分配法、峰值放置分配法等。以Vmware的DRS为例,目前的虚拟机调度方法通常是以CPU、内存资源的利用率为基准,启动尽可能少的物理机。在现有的虚拟机管理系统中,当大量用户虚拟机同时唤醒时,则很可能造成由于资源不足的唤醒失败,或者启动时间长,影响用户体验。
[0054] 本公开提供一种虚拟机分散调度方法,通过对挂起的虚拟机做启动压力预判,将挂起的虚拟机分散在不同的物理主机上,能够有效缓解大量虚拟机同时启动带来的资源压力,提升云资源池的运行效率。
[0055] 示例性方法
[0056] 图1为本公开的虚拟机分散调度方法的一个实施例的流程图,如图1所示的方法包括步骤:S101-S105。下面对各步骤分别进行说明。
[0057] S101,当确定集群中的宿主机具有新增资源承载需求时,在宿主机承载新增资源后,获取与宿主机的资源相对应的当前使用资源信息。
[0058] 在一实施例中,宿主机可以为集群中的物理机等,新增资源承载需求包括:对于新虚拟机创建、新虚拟机启动和现有虚拟机的资源扩容中的一种或多种场景的新资源承载需求。资源包括:CPU、内存、缓存、硬盘资源中的至少一项。可以通过虚拟化软件系统把服务器、存储、网络资源进行资源池化管理,生成虚拟机的服务器资源池。
[0059] S102,对位于宿主机上并处于挂起状态的全部第一虚拟机同时启动时对于资源的需求量进行预判,获得与资源相对应的运行预占资源信息。
[0060] 在一实施例中,虚拟机处于挂起状态是指虚拟机未处于运行状态,但也没有被结束,虚拟机挂起相当于程序暂停、休眠,几乎完全不占用任何资源,且唤醒速度快。获取位于宿主机上并处于挂起状态的全部第一虚拟机,对全部第一虚拟机同时启动时对于CPU、内存、缓存、硬盘资源中的至少一项的需求量进行预判,获得与CPU、内存、缓存、硬盘资源中的至少一项相对应的运行预占资源信息。
[0061] S103,基于当前使用资源信息和运行预占资源信息,获得资源的预判资源总量信息。
[0062] S104,根据预判资源总量信息和资源的资源总量信息,获得资源的第一预判利用率。
[0063] S105,基于第一预判利用率判断是否对宿主机上的虚拟机进行分散调度。
[0064] 在一个实施例中,获取与资源相对应的利用率阈值,如果第一预判利用率大于或等于利用率阈值,则将位于宿主机上的属于同一目标用户并且处于挂起状态的多个第二虚拟机,在集群中进行分散承载。
[0065] 例如,分别获得CPU、内存、缓存、硬盘资源的四个第一预判利用率,获得与CPU、内存、缓存、硬盘资源相对应的四个利用率阈值。如果四个第一预判利用率中的至少一个第一预判利用率大于或等于相对应的利用率阈值,则将多个第二虚拟机在集群中进行分散承载。
[0066] 全部第一虚拟机包括全部用户的处理挂起状态的虚拟机,从全部第一虚拟机中获取属于同一目标用户并且处于挂起状态的多个第二虚拟机,将多个第二虚拟机在集群中进行分散承载。新增的资源承载在宿主机中继续执行,如新启动的虚拟机正常启动等,本公开的调度方法在满足该新增资源承载需求的过程中,进行分散调度,以防止唤醒启动失败。
[0067] 获取与宿主机的资源相对应的当前使用资源信息可以采用多种方法。例如,获取位于宿主机上并且处于运行状态的全部虚拟机以及宿主机自身对于资源的当前使用量,将当前使用量确定为当前使用资源信息,包括:CPU、内存、缓存、硬盘资源中的至少一项的当前使用量信息。
[0068] 获得与资源相对应的运行预占资源信息可以采用多种方法。图2为本公开的虚拟机分散调度方法的一个实施例中的确定运行预占资源的流程图,如图2所示的方法包括步骤:S201-S204。下面对各步骤分别进行说明。
[0069] S201,获取与资源相对应的、分配给第一虚拟机的分配资源信息。
[0070] S202,获取第一虚拟机的QOS等级、宿主机的性能信息。
[0071] S203,基于分配资源信息、QOS等级以及性能信息获得第一虚拟机的预判使用资源。
[0072] 在一实施例中,基于QOS等级确定与第一虚拟机相对应的资源预留系数,基于所性能信息确定与第一虚拟机相对应的资源调整系数,获得虚拟机分配资源、资源预留系数和资源调整系数的乘积,作为预判使用资源。
[0073] S204,获得全部第一虚拟机的预判使用资源之和,作为运行预占资源。
[0074] 获得资源的预判资源总量信息可以采用多种方法,例如,确定预判资源总量信息=当前使用资源+运行预占资源。获得资源的第一预判利用率可以采用多种方法,例如,确定第一预判利用率=预判资源总量/资源的资源总量。
[0075] 本公开的虚拟机分散调度方法,针对现有技术中,在虚拟化资源池环境中,由于虚拟机挂起后,调度系统缺乏对挂起的虚拟机进行启动后的压力预判,当大量用户虚拟机同时唤醒时,可能造成由于资源不足的唤醒失败,或者启动时间长,影响用户体验等问题,提出了一种将挂起虚拟机进行分散调度的方法,将挂起的虚拟机分散到集群中的各个宿主机上;根据虚拟机的QOS等级,设定相应的资源预留系数,并将同一租户挂起的虚拟机进行尽可能的分散,将这些虚拟机调度到集群中的多个宿主机上进行承载,从而避免大量虚拟机同时启动带来的资源暴,加速挂起虚拟机的唤醒速度,提升云资源池服务质量
[0076] 在一个实施例中,当集群中的宿主机上有新增资源承载需求时,例如新的虚拟机创建、新的虚拟机启动或者现有虚拟机的资源扩容等,对挂起的虚拟机进行唤醒后的资源需求量进行预判,分析该挂起的虚拟机在唤醒后,对宿主机和集群可能带来的资源压力。当该宿主机的资源的第一预判利用率超过利用率阈值(例如某单项资源的利用率阈值超过90%),则触发虚拟机的分散调度处理。
[0077] 第一预判利用率是指对于CPU、内存、存储IO、网络IO等中的至少一个资源的预判利用率。根据当前的宿主机资源利用率情况,加上挂起虚拟机启动后的资源预测,可得到第一预判利用率。当前宿主机的资源利用率及预判关系如下表1所示:
[0078] 资源类型 CPU资源(核) 内存(GB) 存储IO(IOPS) 网络IO(kbps)宿主机的资源总量 32 1024 50000 1000
宿主机资源使用量 1 2 500 50
当前资源使用量 16 512 25000 500
挂起虚拟机资源总量 7 254 12000 200
预判利用率 75% 75% 75% 75%
[0079] 表1-宿主机的资源利用率及预判关系
[0080] 预判利用率=(宿主机资源使用量(宿主机自身对于资源的当前使用量)+当前资源使用量(处于运行状态的全部虚拟机对于资源的当前使用量)+挂起虚拟机资源总量(运行预占资源))/宿主机的资源总量(资源的资源总量)。预判使用资源=虚拟机分配资源×资源预留系数×资源调整系数。将各台挂起的虚拟机的各项资源进行预判计算后,获得全部第一虚拟机的预判使用资源之和,作为运行预占资源。
[0081] 例如,宿主机A上有两台挂起的虚拟机P1和P2,其各项资源系数和挂起虚拟机的资源总量如下表所示。
[0082]
[0083]
[0084] 表2-虚拟机的资源信息表
[0085] 虚拟机的QOS等级和资源预留系数通常为一一对应关系,QOS等级越高,资源预留系数越大。资源预留系数是由管理员根据业务的重要性设定,业务重要性越高,资源预留系数就越大,最大为1,表示为该虚拟机保留全部所需的最大资源。资源调整系数是由管理员根据宿主机的硬件性能设定的,比如高频的CPU处理能力比通常的虚拟机CPU高很多,则可以将资源调整系数设置为2,或者3,具体以虚拟机承诺的性能和宿主机硬件性能比例确定,例如,宿主机的硬件CPU为2.4G主频,而虚拟机的CPU承诺性能为1G,则通常可将系数设置为2.4。通常资源调整系数默认设置为1,表示虚拟机的资源性能和宿主机一致。
[0086] 在一个实施例中,根据虚拟机的QOS等级,设定相应的资源预留系数,对于重要的虚拟机要做好百分之百的资源预留,对于权重较低的虚拟机可以按照一定的资源预留系数,计算虚拟机的资源预占情况。例如,单项资源(CPU、内存、缓存、硬盘等)的预判利用率值超过90%(利用率阈值),则将该宿主机上同一用户的虚拟机分散在集群中的其他宿主机上,并且从整个集群的度确保挂起的虚拟机足够分散。
[0087] 在一个实施例中,在集群中进行分散承载可以采用多种方法。图3为本公开的虚拟机分散调度方法的一个实施例中的迁移虚拟机的流程图,如图3所示的方法包括步骤:S301-S303。下面对各步骤分别进行说明。
[0088] S301,在集群中选取没有部署属于目标用户的虚拟机的其他宿主机,作为候选宿主机。
[0089] S302,计算当候选宿主机上新增一个第二虚拟机时,与候选宿主机相对应的第二预判利用率。第二预判利用率的定义以及计算方法与第一预判利用率的定义以及计算方法相同。
[0090] S303,如果第二预判利用率小于利用率阈值,则将此第二虚拟机迁移在此候选宿主机上。
[0091] 在一实施例中,分别获得候选宿主机的CPU、内存、缓存、硬盘资源的四个第二预判利用率,获得与CPU、内存、缓存、硬盘资源相对应的四个利用率阈值。如果四个第二预判利用率中的至少一个第二预判利用率小于相对应的利用率阈值,则将此第二虚拟机迁移在此候选宿主机上。
[0092] 通过步骤S301-S303,可以依次将宿主机上的属于同一目标用户并且处于挂起状态的多个第二虚拟机依次迁移在集群中的候选宿主机上,进行分散承载处理。
[0093] 图4A为本公开的虚拟机分散调度方法的另一个实施例中的迁移虚拟机的流程图,如图4A所示的方法包括步骤:S401-S406。下面对各步骤分别进行说明。
[0094] S401,在全部候选宿主机中选取资源的剩余量最大的候选宿主机,作为目标候选宿主机。目标候选宿主机的数量可以为一个或多个,优选为1个。
[0095] S402,计算当目标候选宿主机上增加一个第二虚拟机时,与目标候选宿主机相对应的第二预判利用率。
[0096] S403,如果第二预判利用率小于利用率阈值,则将此第二虚拟机迁移在此目标候选宿主机上。
[0097] 在一个实施例中,获取准备重新挂起到其他宿主机的虚拟机所属的目标租户,从未承载当前目标租户的虚拟机的其他宿主机中,筛选出没有承载该目标租户的虚拟机的宿主机清单。根据宿主机清单,对于资源使用剩余量最大的宿主机,按照上述方法计算当宿主机新增一个第二虚拟机的一个或多个第二预判利用率,如果至少一个第二预判利用率不超过利用率阈值,则选择该宿主机。
[0098] S404,如果第二预判利用率大于或等于利用率阈值,则在集群中的全部其他宿主机中选取资源的剩余量最大的宿主机,作为目标宿主机。
[0099] 在一实施例中,如果一个或多个第二预判利用率都大于或等于相对应的利用率阈值,则放弃“同租户分散原则”,在集群中的全部其他宿主机中选取资源的剩余量最大的宿主机,作为目标宿主机。
[0100] S405,计算当目标宿主机上增加一个第二虚拟机时,与目标宿主机相对应的第三预判利用率。第三预判利用率的定义以及计算方法与第一预判利用率的定义以及计算方法相同。
[0101] S406,如果第三预判利用率小于利用率阈值,则将此第二虚拟机迁移在此目标宿主机上。
[0102] 在一实施例中,分别获得目标宿主机的CPU、内存、缓存、硬盘资源的四个第三预判利用率,获得与CPU、内存、缓存、硬盘资源相对应的四个利用率阈值。如果四个第三预判利用率中的至少一个第三预判利用率小于相对应的利用率阈值,则将此第二虚拟机迁移在此目标宿主机上。
[0103] 通过步骤S401-S406,可以依次将宿主机上的属于同一目标用户并且处于挂起状态的多个第二虚拟机依次迁移在集群中的候选宿主机上,进行分散承载处理。
[0104] 在一个实施例中,当某宿主机将其挂起的虚拟机分散到其他宿主机之后,其他挂起的虚拟机也可以迁移到该宿主机上,在完成虚拟机分散调度后,该宿主机可以成为新的虚拟机挂起的优选对象;可以有效提升资源预判下的分配效率和虚拟机唤醒的速度,提升用户体验。
[0105] 在一个实施例中,如图4B所示,图4B中的所有虚拟机均处于挂起状态,非挂起状态下的虚拟机没有在图中进行标出。在三台宿主机(物理机1、物理机2和物理机3)上,有三个不同用户(租户/部)的虚拟机原来分别承载在三台物理机上。各台虚拟机的QOS等级根据其承载的业务重要性,由系统管理员进行设定,本实施例各虚拟机等级如下表3所示。
[0106]
[0107]
[0108] 表3-虚拟机的等级表
[0109] 假设系统的资源阈值(利用率阈值)为85%,各虚拟机的QOS等级、资源预留系数、所属租户信息如上表3所示。资源调整系数为1。当集群中的宿主机1承载了新的虚拟机之后,触发分散调度方法执行的启动。判断宿主机的资源利用的预判利用率是否超过利用率阈值。例如,宿主机1的CPU的预判利用率为90%,达到系统设定的阈值85%,则对挂起的虚拟机进行分散调度。各虚拟机的资源信息如下表4所示:
[0110]
[0111] 表4-虚拟机的资源信息表
[0112] 判断集群中的宿主机3的CPU剩余资源量为10核,是集群中资源剩余量最大的宿主机,则将挂起的虚拟机2重新挂起到宿主机3。执行后,当宿主机3具有新增资源承载需求时,宿主机3的CPU的预判利用率达到86%,则触发第二次执行本方法,判断集群中宿主机2的CPU的剩余资源量为8核,是集群中资源剩余量最大的宿主机,将宿主机3上的虚拟机5重新挂起到宿主机2。
[0113] 执行后,当宿主机2具有新增资源承载需求时,发现宿主机2的CPU的预判利用率达到90%,进而触发第三次执行本方法,判断集群中,宿主机3的CPU剩余资源量为12核,是集群中资源剩余量最大的宿主机,将宿主机2上的虚拟机3重新挂起到宿主机1。执行后,当宿主机1具有新增资源承载需求时,确定宿主机1的CPU的预判利用率达到70%,没有达到系统设定的阈值。各个宿主机的预判资源利用率都没有达到系统设定的阈值,集群资源可满足所有挂起虚拟机的随时启动,实现了三个不同用户的挂起虚拟机都分散到不同物理机上,不管是任何一个用户需要启动挂起的所有虚拟机,都能只在一台物理机上启动一台虚拟机,可以有效保障虚拟机的唤醒速度。此外,在调度后的资源预判利用率也得到比较好的缓解。
[0114] 示例性装置
[0115] 在一个实施例中,如图5所示,本公开提供一种虚拟机分散调度装置,包括:资源监控模块50、云管理模块51和资源池管理模块52。如图6所示,资源监控模块50包括:当前使用资源获取单元501、预占资源获取单元502、预判使用资源获取单元503和资源利用率获取单元504。
[0116] 当前使用资源获取单元501当确定集群中的宿主机具有新增资源承载需求时,在宿主机承载新增资源后,获取与宿主机的资源相对应的当前使用资源信息。预占资源获取单元502对位于宿主机上并处于挂起状态的全部第一虚拟机同时启动时对于资源的需求量进行预判,获得与资源相对应的运行预占资源信息。预判使用资源获取单元503基于当前使用资源信息和运行预占资源信息,获得资源的预判资源总量信息。资源利用率获取单元504根据预判资源总量信息和资源的资源总量信息,获得资源的第一预判利用率。云管理模块51基于第一预判利用率判断是否对宿主机上的虚拟机进行分散调度。
[0117] 资源池管理模块52对宿主机和资源进行资源池化管理;其中,资源包括:CPU、内存、缓存、硬盘资源中的至少一项;新增资源承载需求包括:对于新虚拟机创建、新虚拟机启动和现有虚拟机的资源扩容中的一种或多种场景的新资源承载需求。资源池管理模块52通过虚拟化软件系统把服务器、存储、网络资源进行资源池化管理,可用于创新虚拟机的服务器资源池。
[0118] 云管理模块51获取与资源相对应的利用率阈值,如果第一预判利用率大于或等于利用率阈值,则将位于宿主机上的属于同一目标用户并且处于挂起状态的多个第二虚拟机,在集群中进行分散承载。当前使用资源获取单元501获取位于宿主机上并且处于运行状态的全部虚拟机以及宿主机自身对于资源的当前使用量,将当前使用量确定为当前使用资源信息。
[0119] 在一个实施例中,如图7所示,预占资源获取单元502包括:信息获取单元5021、预判资源单元5022和资源预占确定单元5023。信息获取单元5021获取与资源相对应的、分配给第一虚拟机的分配资源信息;获取第一虚拟机的QOS等级、宿主机的性能信息。预判资源单元5022基于分配资源信息、QOS等级以及性能信息获得第一虚拟机的预判使用资源。资源预占确定单元5023获得全部第一虚拟机的预判使用资源之和,作为运行预占资源。
[0120] 预判资源单元5022基于QOS等级确定与第一虚拟机相对应的资源预留系数;基于所性能信息确定与第一虚拟机相对应的资源调整系数,获得虚拟机分配资源、资源预留系数和资源调整系数的乘积,作为预判使用资源。预判使用资源获取单元503确定预判资源总量信息=当前使用资源+运行预占资源。资源利用率获取单元504确定第一预判利用率=预判资源总量/资源的资源总量。
[0121] 如图8所示,云管理模块51包括:宿主机选取单元511、资源利用率计算单元512和虚拟机调度单元513。宿主机选取单元511在集群中选取没有部署属于目标用户的虚拟机的其他宿主机,作为候选宿主机。资源利用率计算单元512计算当候选宿主机上新增一个第二虚拟机时,与候选宿主机相对应的第二预判利用率。如果第二预判利用率小于利用率阈值,则虚拟机调度单元513将此第二虚拟机迁移在此候选宿主机上。
[0122] 在一个实施例中,宿主机选取单元511在全部候选宿主机中选取资源的剩余量最大的候选宿主机,作为目标候选宿主机。资源利用率计算单元512计算当目标候选宿主机上增加一个第二虚拟机时,与目标候选宿主机相对应的第二预判利用率。如果第二预判利用率小于利用率阈值,则虚拟机调度单元512将此第二虚拟机迁移在此目标候选宿主机上;如果第二预判利用率大于或等于利用率阈值,则宿主机选取单元511在集群中的全部其他宿主机中选取资源的剩余量最大的宿主机,作为目标宿主机。资源利用率计算单元512计算当目标宿主机上增加一个第二虚拟机时,与目标宿主机相对应的第三预判利用率;如果第三预判利用率小于利用率阈值,则虚拟机调度单元513将此第二虚拟机迁移在此目标宿主机上。
[0123] 图9是本公开的电子设备的一个实施例的结构图,如图9所示,电子设备91包括一个或多个处理器911和存储器912。
[0124] 处理器911可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备91中的其他组件以执行期望的功能。
[0125] 存储器912可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器,例如,可以包括:随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器,例如,可以包括:只读存储器(ROM)、硬盘以及闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器911可以运行程序指令,以实现上文的本公开的各个实施例的虚拟机分散调度方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
[0126] 在一个示例中,电子设备91还可以包括:输入装置913以及输出装置914等,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。此外,该输入设备913还可以包括例如键盘鼠标等等。该输出装置914可以向外部输出各种信息。该输出设备914可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
[0127] 当然,为了简化,图9中仅示出了该电子设备91中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备91还可以包括任何其他适当的组件。
[0128] 除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的虚拟机分散调度方法中的步骤。
[0129] 所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
[0130] 此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的虚拟机分散调度方法中的步骤。
[0131] 所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列举)可以包括:具有一个或者多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0132] 以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势以及效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
[0133] 上述实施例中的虚拟机分散调度方法、装置以及电子设备、存储介质,通过对挂起虚拟机进行资源占用的预判,能有效避免虚拟机唤醒时带来的资源紧张,以及可能存在的临时性迁移,导致唤醒速度慢等不良用户体验;通过对同一用户的挂起虚拟机进行分散调度,并以资源预判为调度的触发条件,可避免非必要的调度迁移,同时也能有效应对同一用户大量虚拟机同时启动带来的资源压力,能弥补动态资源调度中缺乏对挂起虚拟机资源预判的不足,有效的改善了客户体验。
[0134] 本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0135] 本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备以及系统。诸如“包括”、“包含、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
[0136] 可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
[0137] 还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
[0138] 提供所公开的方面的以上描述,以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改等对于本领域技术人员而言,是非常显而易见的,并且在此定义的一般原理可以应用于其他方面,而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
[0139] 为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式中。尽管以上已经讨论了多个示例方面以及实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈