一种实现虚拟机批量调度的预处理方法及系统与流程
- 国知局
- 2024-07-31 22:59:47
本发明属于虚拟机批量调度,具体是一种实现虚拟机批量调度的预处理方法及系统。
背景技术:
1、在商用云计算数据中心环境下,租户通常拥有多个虚拟机,且虚拟机承载的业务相互关联,业务采用高可用部署架构,因此要求虚拟机必须能够快速拉起,实时对外提供服务。
2、随着服务器硬件配置迭代以及商业成本考虑,云环境中的服务器配置可能呈现多样化,cpu或内存均存在差异,租户虚拟机的资源配置也各异(cpu与内存可能存在不同的比例),故虚拟机启动时需要合理的调度选择计算节点,尽可能降低服务器资源碎片的产生以提高经济效益,实现计算资源利用最大化,同时避免开机风暴现象的出现因资源不足导致虚拟机启动失败。
3、现有的虚拟机分批调度、内存拷贝等技术方案已极大提升了单个虚拟机启动的效率,但在大规模虚拟机启动的规划和调度方面仍是采用逐台调度的方式,计算节点资源分配率和调度效率均存在不足。
4、所以在批量启动或迁移虚拟机时,不仅要保证虚拟机被成功启动的数量最多,虚拟机启动的效率最高,同时也需要考虑调度效率的最大化和计算节点的资源利用最大化。
5、实现虚拟机成功启动的数量最大,必须合理规划利用计算资源,确保每个虚拟机都能分配到充足的资源。
6、实现虚拟机启动的效率最高,必须考虑虚拟机镜像资源加载的效率。
7、实现调度效率的最大化,必须考虑减少目标计算节点选取的计算次数以及与计算节点的交互次数。
8、实现计算节点的资源利用最大化,必须考虑合理调度计算资源,减少资源碎片的出现。
9、大规模批量启动虚拟机现有的技术方案主要有以下几种:
10、通过为待启动虚拟机设置优先级,根据优先级排序分批启动,并设置每批虚拟机的数量上限,避免出现启动风暴因磁盘i/o竞争导致虚拟机启动失败的问题。
11、批量启动带相同基础镜像的云主机时,先加载一台虚拟机的镜像至计算集群内存,镜像加载成功后,通过内存拷贝的方式启动同批次的其他虚拟机,此种方式可以实现降低网络资源消耗和减少内存开销,达到快速启动多个虚拟机的目的。
12、批量启动虚拟机时,每启动一台虚拟机均检测所有计算节点的剩余资源,并根据虚拟机所需资源决策目标计算节点,达到资源负载均衡的目的,此种方式调度次数等于虚拟机个数,调度效率不高。
13、以上几种方案的实现存在如下缺点:
14、方案1只考虑了分批调度虚拟机,未考虑计算节点资源负载均衡以及镜像相同时减少磁盘i/o的情况;
15、方案2是在计算节点可用资源充足的情况下才能发挥比较理想的效果,当计算节点的碎片资源较多时,无法达到资源充分利用的目的。且没有考虑虚拟机的配置差异,当批量启动配置不同的虚拟机时,由于分配的内存空间不同,对内存的拷贝可能会失败导致批量启动虚拟机失败。
16、方案3可以很好的利用计算节点资源,但每启动一台都需要促发调度流程,在超大规模计算集群下调度效率低。
17、以上方案均只适用于一次批量启动的场景,无法对虚拟机启动动作进行前置规划和预调度,在大规模云环境中调度效率下降明显。
18、基于此,提供一种技术方案。
技术实现思路
1、本发明旨在至少解决现有技术中存在的技术问题之一;为此,本发明提出了一种实现虚拟机批量调度的预处理方法,该方法具体包括如下步骤:
2、实时收集并记录所有计算节点的剩余可用资源;
3、建立虚拟机待启动或迁移清单,自动根据虚拟机承载业务或系统关系分析并记录调度需求;
4、根据虚拟机调度需求以及计算节点的资源使用情况,制定虚拟机调度策略,同时确定每个虚拟机的目标计算节点,确保虚拟机都能分配所需资源,同时计算节点资源碎片最少;
5、根据调度计划,向所有目标计算节点下发虚拟机加载指令;在计算节点上部署虚拟机。
6、进一步地,根据虚拟机承载业务或系统关系分析并记录调度需求,具体方式为:
7、从每个虚拟机的历史运行时序数据推测该虚拟机的下一个运行时序,加入虚拟机调度队列;
8、根据云环境中正在运行的虚拟机的特征,识别虚拟机启动需求;
9、根据虚拟机启动需求形成虚拟机调度队列。
10、进一步地,制定虚拟机调度策略具体为:
11、将云环境中所有计算节点编号;根据计算节点的运行数据获取剩余资源数据,并将剩余资源数据缓存至资源管理模块,当计算节点运行状态有变化时,实时刷新资源管理模块中的数据,用于任务调度模块生成虚拟机启动计划;
12、任务调度模块根据云环境剩余资源信息动态规划虚拟机调度方案;
13、结合虚拟机启动需求,按照优先级进行排序,提前为属于同一个目标集群下相同启动时间的虚拟机选举出目标计算节点。
14、进一步地,根据调度计划,向所有目标计算节点下发虚拟机加载指令具体方式为:
15、根据调度方案,在相应的时间将虚拟机调度到对应的计算节点,通过传统的虚拟机启动方式进行加载,达到虚拟机快速启动的目的。
16、进一步地,从每个虚拟机的历史运行时序数据推测该虚拟机的下一个运行时序具体方式为:
17、通过调用云管理系统的api接口或宿主机的api接口实时检测当前云环境中正在运行的虚拟机,记录特征数据,特征数据包括虚拟机运行时间段、虚拟机属性,收集虚拟机启动停止次数超过预设值数量的特征数据,特征数据形成虚拟机运行时序特征库;
18、将收集到的虚拟机运行时序特征库作为序列数据输入到循环神经网络模型;通过模型训练,使得模型能够准确预测出需要虚拟机下一次启动的时间,任务管理模块将该预测结果录入虚拟机调度队列。
19、进一步地,循环神经网络模型包括随机矩阵单元和门控循环单元。
20、进一步地,根据云环境中正在运行的虚拟机的特征,识别虚拟机启动需求具体方式为:
21、任务管理模块实时收集云环境中的虚拟机运行状态,提取虚拟机的虚拟特征数据,形成虚拟机特征库模型;虚拟特征数据包括名称、所属集群、cpu利用率、内存利用率、磁盘利用率;
22、通过循环神经网络对大量类似的虚拟机特征库进行模型训练,识别出虚拟机资源变化及状态调度行为依赖,进而预测虚拟机调度需求。
23、进一步地,将云环境中所有计算节点编号的编号方式包括取节点的uuid和自行根据特征编号。
24、进一步地,步骤三中的为属于同一个目标集群下相同启动时间的虚拟机选举出目标计算节点的方法为:
25、获取到群中计算节点的个数;
26、获取到计算节点的实时剩余资源,将其去除每个计算节点所需预留的资源数,得到实际可用资源,将其标记为rhi,i=1、...、n,表示为此处存在n个计算节点;
27、将虚拟机按照计算节点个数划分为相应数量的组,此处划分为n组,获取到每组所需资源总和为rvi,i=1、...、n,此处rvi和rhi为一一对应关系;
28、在满足rvi<rh i的情况下才能保证批量启动的虚拟机都能成功启动,通过分布式场景下的资源排列算法计算得出最佳的批量调度方案,具体方式为:
29、当集群中存在n个计算节点,获取到每个计算节点实时剩余的资源rh i;给每个计算节点预留设定数值x1个vcpu和预设数值x2对应的内存,进rhi中的剩余资源减去预留的数值,得到实际可用资源;
30、在满足调动最少计算节点和rvi<rhi的情况下,将虚拟机进行组合,分配到不同的计算节点中,此处rvi表示为分配到相同计算节点所需的实时资源,rh i则对应表示为实际可用资源。
31、一种实现虚拟机批量调度的预处理方法的系统,该系统包括:
32、任务管理模块,用于基于深度学习算法分析收集虚拟机启动需求并维护一个待调度的虚拟机队列,记录虚拟机基本信息、资源配置、计划启动时间;资源配置包括cpu配置信息、内存配置信息、磁盘配置信息;虚拟机基本信息包括名称;
33、资源管理模块,维护一个计算节点资源剩余可用资源数组,用于保存云环境下所有计算节点的cpu、内存使用率,并实时统计剩余可用资源;
34、任务调度模块,通过设置自动调度机制,将所有待启动的虚拟机进行资源排列精准选择目标计算节点,将每个虚拟机调度到合适的计算节点上,使计算节点资源碎片最少。
35、与现有技术相比,本发明的有益效果是:
36、本发明通过提前预测并及时自动进行云计算资源调度,提高业务弹性伸缩、高可用等场景云业务管理的时效性,减少大规模云平台的人工管理成本;基于深度学习算法通过预测虚拟机自身运行的时间序列以及对云环境中虚拟机进行行为识别两种方法提升预测虚拟机调度需求的准确性,减少资源浪费,降低运营成本。
37、同时本发明利用分布式场景下的资源排列算法统筹规划虚拟机调度策略,智能规划调度路径,统一为大规模虚拟机选择目标计算节点,解决现有技术方案顺序逐台调度带来的资源碎片多的问题,提升计算节点资源利用率,提高云环境经济效益;虚拟机批量调度需求采用提前规划一次调度的方式,由任务调度装置统一处理,基于已有的调度策略一次性直接向计算集群下发调度指令即可,无需重复规划选择计算节点,提升调度效率;
38、资源管理模块统一设置资源预留策略,保证计算节点自身服务稳定运行,解决分布式计算集群策略不统一、管理复杂的问题。
本文地址:https://www.jishuxx.com/zhuanli/20240730/195634.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表