CN102929701B - 一种批量虚拟机的调度方法及装置 - Google Patents

一种批量虚拟机的调度方法及装置 Download PDF

Info

Publication number
CN102929701B
CN102929701B CN201210394922.6A CN201210394922A CN102929701B CN 102929701 B CN102929701 B CN 102929701B CN 201210394922 A CN201210394922 A CN 201210394922A CN 102929701 B CN102929701 B CN 102929701B
Authority
CN
China
Prior art keywords
virtual machine
weight coefficient
physical server
rickle
scheduling
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.)
Active
Application number
CN201210394922.6A
Other languages
English (en)
Other versions
CN102929701A (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 Sohu New Media Information Technology Co Ltd
Original Assignee
Beijing Sohu New Media Information 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 Sohu New Media Information Technology Co Ltd filed Critical Beijing Sohu New Media Information Technology Co Ltd
Priority to CN201210394922.6A priority Critical patent/CN102929701B/zh
Publication of CN102929701A publication Critical patent/CN102929701A/zh
Application granted granted Critical
Publication of CN102929701B publication Critical patent/CN102929701B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请实施例公开了一种批量虚拟机的调度方法及装置。该方法包括:获取用户提交的待部署的批量虚拟机的个数和所述批量虚拟机的配置文件;所述批量虚拟机的配置文件包括:单个虚拟机所需的内存和硬盘大小;将所述批量虚拟机的配置文件信息作为过滤条件,从物理服务器池过滤掉不符合所述过滤条件的物理服务器以得到候选物理服务器集合;依据所述候选物理服务器集合中各个候选物理服务器的虚拟机调度参数计算所述各个候选物理服务器的初始调度开销值;依据所述初始调度开销值实现所述批量虚拟机的调度。本申请实施例可以提高虚拟机调度的部署时间效率。

Description

一种批量虚拟机的调度方法及装置
技术领域
本申请涉及云计算领域,特别涉及一种云计算系统中批量虚拟机的调度方法及装置。
背景技术
云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。在云计算系统中,由调度系统将批量部署虚拟机的请求分发给相应的物理服务器,在这个过程中,首先要保证物理服务器资源的均衡使用,避免某些物理服务器资源被大量使用而其他物理服务器资源大量闲置的情况;其次结合具体的用户需求和应用场景,比如高密集型计算类型的虚拟机应当部署在CPU使用率相对低的物理服务器上;最后,应保证批量虚机的部署操作并行性高,使部署任务尽可能分散给不同物理服务器,从而使当前部署任务的时间开销尽量小。
现有技术中对批量虚拟机进行调度分为两个阶段:第一个阶段是虚拟机部署过程中的调度,第二个阶段是物理服务器集群运行过程中,虚拟机的热迁移。第一个阶段注重物理服务器资源的均衡使用,第二个阶段注重物理服务器池的负载均衡。
其中,第一阶段在对虚拟机进行部署时,可先根据可用硬盘大小、可用内存大小等硬性条件过滤初始物理服务器,再从候选物理服务器中选取目标物理服务器,一般是从候选物理服务器中随机选取一台物理服务器作为当前待部署虚拟机的目标服务器。第二阶段是虚拟机初步部署完成后,在实际运行环境中,通过热迁移调整虚拟机与物理服务器之间的映射关系。根据各物理服务器的性能数据,可以量化地分析物理服务器池整体负载情况,当个别物理服务器的负载远远大于其他物理服务器时,调度系统将该物理服务器上的虚拟机通过热迁移的方式转移到负载相对低的物理服务器上。
发明人在研究过程中发现,在第一阶段中,对待部署虚拟机的调度时,对于批量虚拟机的每一个虚拟机,均需要遍历候选物理服务器集合,从而能从中选出负载最小的物理服务器部署当前虚拟机。假如需部署M个虚拟机,服务器池中含有N个服务器,此时调度的最小时间复杂度是O(M*N),当物理服务器池中的物理服务器数量较大时,这是一个比较大的时间开销。而在第二阶段中,虽然热迁移使得服务器池的负载实现动态均衡,并且用户在使用虚机过程中并不会受到底层虚机漂移的影响,但热迁移的弊端是在迁移过程中,大量占用带宽,一段时间内影响其他应用的网络传输。因此热迁移虽然以动态方式增强了虚拟机调度效果,但在实际应用场景中,为保证服务的稳定性和系统安全,应尽量避免在虚拟机运行时的迁移,而更多地侧重于虚拟机部署开始前的调度。
发明内容
为解决上述技术问题,本申请实施例提供了一种批量虚拟机的调度方法及其相应装置,以减小批量虚拟机的调度空间,进而提高海量小文件的访问效率。
本申请实施例提供的批量虚拟机的调度方法包括:
获取用户提交的待部署的批量虚拟机的个数、所述批量虚拟机的配置文件;所述配置文件包括:单个虚拟机所需的内存和硬盘大小;
将所述批量虚拟机的配置文件作为过滤条件,从物理服务器池过滤掉不符合所述过滤条件的物理服务器以得到候选物理服务器集合;
依据所述候选物理服务器集合中各个候选物理服务器的虚拟机调度参数计算所述各个候选物理服务器的初始调度开销值;
依据所述初始调度开销值实现所述批量虚拟机的调度。
优选的,所述依据所述初始调度开销值实现所述批量虚拟机的调度,包括:
依据所述初始调度开销值建立与所述候选物理服务器集合对应的初始最小堆;
依据所述初始最小堆的堆顶元素依次对所述批量虚拟机中的各个虚拟机进行调度。
优选的,所述依据所述初始最小堆的堆顶元素依次对所述批量虚拟机中的各个虚拟机进行调度,包括:
获取所述批量虚拟机中的任一虚拟机作为当前虚拟机,以所述初始最小堆作为当前最小堆;
依据所述当前虚拟机和所述当前最小堆触发循环调度流程,所述循环调度流程包括:
获取所述当前最小堆的堆顶元素对应的堆顶物理服务器;
将所述堆顶物理服务器的初始可用分配资源减去所述当前虚拟机消耗的分配资源,得到所述堆顶物理服务器在下一个虚拟机调度时的可用分配资源;
判断所述堆顶服务器在下一个虚拟机调度时的可用分配资源是否大于至少一个其他虚拟机需消耗的分配资源,如果否,则将所述堆顶服务器从所述初始最小堆中删除,并依据所述候选物理服务器集合中除了所述堆顶服务器之外的其他候选物理服务器的当前调度开销值更新所述初始最小堆以得到更新的最小堆,并确定所述批量虚拟机中的其他任一未被调度的虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,触发所述循环调度流程;
如果是,则依据所述堆顶服务器的当前调度开销值更新所述初始最小堆得到更新的最小堆;并确定所述批量虚拟机中的其他任一未被调度的虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,触发所述循环调度流程。
优选的,所述虚拟机调度参数包括:CPU使用率、内存使用率、磁盘IO字节数、网卡IO字节数和待部署虚拟机个数;则依据所述候选物理服务器集合中各个候选物理服务器的虚拟机调度参数计算所述各个候选物理服务器的初始调度开销值,包括:
获取物理服务器的调度开销值计算公式,所述调度开销值计算公式为:调度开销值=CPU使用率*第一权重系数+内存使用率*第二权重系数+磁盘IO字节数*第三权重系数+网卡IO字节数*第四权重系数+当前待部署虚拟机个数*第五权重系数;
其中,所述“CPU使用率*第一权重系数”、“内存使用率*第二权重系数”、“磁盘IO字节数*第三权重系数”、“网卡IO字节数*第四权重系数”和“当前待部署虚拟机个数*第五权重系数”的数量级一致;
采用所述调度开销值计算公式计算各个物理服务器的初始调度开销值。
优选的,还包括:
获取用户提交的所述批量虚拟机的部署策略,所述部署策略包括:需调整所述第一权重系数的低CPU使用率优先的策略,需调整所述第二权重系数的低内存使用率优先的策略,需调整所述第三权重系数的低磁盘IO字节数优先的策略,需调整所述第四权重系数的低网卡IO字节数优先的策略,或者,需调整所述第五权重系数的部署操作低延迟优先的策略;
则所述依据所述候选物理服务器集合中各个候选物理服务器的虚拟机调度参数计算所述各个候选物理服务器的初始调度开销值,包括:
依据所述部署策略调整所述调度开销值计算公式中的第一权重系数、第二权重系数、第三权重系数、第四权重系数或第五权重系数;
采用调整之后的调度开销值计算公式计算各个物理服务器的初始调度开销值。
本申请实施例提供的批量虚拟机的调度装置包括:
接收单元,用于获取用户提交的待部署的批量虚拟机的个数和所述批量虚拟机的配置文件;所述配置文件包括:单个虚拟机所需的内存和硬盘大小;过滤单元,用于将所述批量虚拟机的配置文件作为过滤条件,从物理服务器池过滤掉不符合所述过滤条件的物理服务器以得到候选物理服务器集合;
计算单元,用于依据所述候选物理服务器集合中各个候选物理服务器的虚拟机调度参数计算所述各个候选物理服务器的初始调度开销值;
调度单元,用于依据所述初始调度开销值实现所述批量虚拟机的调度。
优选的,所述调度单元包括:
建立模块,用于依据所述初始调度开销值建立与所述候选物理服务器集合对应的初始最小堆;
调度模块,用于依据所述初始最小堆的堆顶元素依次对所述批量虚拟机中的各个虚拟机进行调度。
优选的,所述调度模块包括:
获取子模块,用于获取所述批量虚拟机中的任一虚拟机作为当前虚拟机,以所述初始最小堆作为当前最小堆;
调度执行子模块,用于依据所述当前虚拟机和所述当前最小堆触发循环调度流程,所述循环调度流程包括:
获取所述当前最小堆的堆顶元素对应的堆顶物理服务器;
将所述堆顶物理服务器的初始可用分配资源减去所述当前虚拟机消耗的分配资源,得到所述堆顶物理服务器在下一个虚拟机调度时的可用分配资源;
判断所述堆顶服务器在下一个虚拟机调度时的可用分配资源是否大于至少一个其他虚拟机需消耗的分配资源;
如果否,则将所述堆顶服务器从所述初始最小堆中删除,并依据所述候选物理服务器集合中除了所述堆顶服务器之外的其他候选物理服务器的当前调度开销值更新所述初始最小堆以得到更新的最小堆,并确定所述批量虚拟机中的下一个虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,触发所述循环调度流程;
如果是,则依据所述堆顶服务器的当前调度开销值更新所述初始最小堆得到更新的最小堆;并确定所述批量虚拟机中的其他任一未被调度的虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,触发所述循环调度流程。
优选的,所述虚拟机调度参数包括:CPU使用率、内存使用率、磁盘IO字节数、网卡IO字节数和待部署虚拟机个数;则所述计算单元包括:
获取模块,用于获取目标物理服务器的调度开销值计算公式,所述调度开销值计算公式为:调度开销值=CPU使用率*第一权重系数+内存使用率*第二权重系数+磁盘IO字节数*第三权重系数+网卡IO字节数*第四权重系数+当前待部署虚拟机个数*第五权重系数;其中,所述“CPU使用率*第一权重系数”、“内存使用率*第二权重系数”、“磁盘IO字节数*第三权重系数”、“网卡IO字节数*第四权重系数”和“当前待部署虚拟机个数*第五权重系数”的数量级一致;
计算模块,用于采用所述调度开销值计算公式计算各个物理服务器的初始调度开销值。
优选的,还包括:
获取部署策略单元,用于获取用户提交的所述批量虚拟机的部署策略,所述部署策略包括:需调整所述第一权重系数的低CPU使用率优先的策略,需调整所述第二权重系数的低内存使用率优先的策略,需调整所述第三权重系数的低磁盘IO字节数优先的策略,需调整所述第四权重系数的低网卡IO字节数优先的策略,或者,需调整所述第五权重系数的部署操作低延迟优先的策略;
则所述计算单元,还包括:
调整模块,用于调整依据所述部署策略调整所述调度开销值计算公式中的第一权重系数、第二权重系数、第三权重系数、第四权重系数或第五权重系数;
相应的,所述计算模块具体用于采用调整之后的调度开销值计算公式计算各个物理服务器的初始调度开销值。
本申请实施例中,通过对各个候选物理服务器的调度开销值的计算,可以将CPU负载、内存使用率、硬盘IO负载、网卡IO负载以及当前部署虚拟机个数作为参考因素,就能使得调度过程更为合理;并且,在候选服务器集合中选取最优物理服务器时,通过一次性建立最小堆,后续不断更新堆的方式减小遍历候选服务器的次数,同时通过更新最小堆的方式减少排序比较的次数,提高虚拟机调度执行的效率。
本申请实施例在时间上维持Max(O(NlogN,MlogN))的时间复杂度,比现有技术的效率更高,并且,本实施例在虚拟机部署开始前,通过物理服务器动态性能数据,使虚拟机在部署时最大程度趋向合理,避免在运行时的热迁移,尽量保证虚拟机上运行的服务的稳定性。
在本申请实施例中,对批量虚拟机的调度过程也受用户选择的调度策略的影响(低CPU负载优先、低IO负载优先、低磁盘IO优先、低网络IO优先或低部署延迟优先的物理服务器优先策略),从而使得虚机运行的服务器环境尽量能满足应用场景的实际需求。并且,将批量部署的虚拟机切分成单个的虚拟机,进行逐个调度,最终把整体调度结果组合后再返回,这样使得虚拟机调度的原子粒度更大,并且虚拟机部署的目标物理服务器更加分散,从而使调度的灵活性和部署的并发性提高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一的批量虚拟机的调度方法流程图;
图2为本申请实施例一中步骤103的流程图;
图3为本申请实施例一中步骤104的流程图;
图4为本申请实施例一中步骤302的流程图;
图5为本申请实施例二的批量虚拟机的调度方法流程图;
图6为本申请实施例二中候选物理服务器的参数示意图;
图7a、图7b和图7c分别为本申请实施例二中初始最小堆和分别调整两次之后的最小堆的示意图;
图8为本申请实施例三的批量虚拟机的调度装置的结构框图;
图9为本申请实施例三中计算单元803的结构框图;
图10为本申请实施例三中调度单元804的结构框图;
图11为本申请实施例三中调度模块902的结构框图;
图12为本申请实施例四的批量虚拟机的调度装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参见图1,该图示出了本申请实施例一的批量虚拟机的调度方法的流程。该实施例包括:
步骤101:获取用户提交的待部署的批量虚拟机的个数和所述批量虚拟机的配置文件;所述批量虚拟机的配置文件包括:单个虚拟机所需的内存和硬盘大小。
本实施例中,用户会将批量虚拟机的调度请求发给调度系统,调度系统会将收到的调度请求放入调度请求等待队列中,每次按照时间顺序从该队列中取出一个当前调度请求进行执行。调度系统从调度请求等待队列中取出批量虚拟机的调度请求,并从该调度请求中获取批量虚拟机的个数,和批量虚拟机的配置文件及调度策略,其中,批量虚拟机的配置文件可以包括:单个虚拟机所需的内存和硬盘大小。当然,该配置文件信息也可以包括物理服务器的可用虚拟CPU个数等,其中,调度策略也可以包括:低CPU使用率优先、低内存使用率优先、低硬盘IO优先、低网卡IO优先或低延迟优先等调度策略。
步骤102:将所述批量虚拟机的配置文件作为过滤条件,从物理服务器池过滤掉不符合所述过滤条件的物理服务器以得到候选物理服务器集合。
获取到批量虚拟机的配置文件之后,将所述批量虚拟机的配置文件作为过滤条件,将物理服务器池中的候选物理服务器按照物理服务器的剩余可用内存大小和剩余可用硬盘大小进行筛选,过滤掉不符合所述过滤条件的物理服务器之后剩余的物理服务器组成候选物理服务器集合。
参考表1所示,为物理服务器在调度系统中对应的信息,其中包括物理服务器的用于计算调度开销值的数据,包括CPU使用率、内存使用率、磁盘IO字节数、网卡IO字节数和当前待部署虚机个数,具体计算调度开销值的过程将在后面的步骤中详细介绍;也包括用于筛选的数据:剩余可用硬盘大小和剩余可用内存大小。
表1物理服务器在调度系统中对应的元素
步骤103:根据所述候选物理服务器集合中各个候选物理服务器的虚拟机调度参数计算所述各个候选物理服务器的初始调度开销值。
对于候选物理服务器集合中各物理服务器,依据各个候选物理服务器的虚拟机调度参数,在本实施例中即是用于计算调度开销值的数据,计算所述各个候选物理服务器的初始调度开销值,其中当前待部署虚拟机个数可以初始化为0。
如果虚拟机调度参数包括:CPU使用率、内存使用率、磁盘IO字节数、网卡IO字节数和待部署虚拟机个数;则步骤S103,参考图2所示,在实际应用中具体可以包括:
步骤201:获取物理服务器的调度开销值计算公式,所述调度开销值计算公式为:调度开销值=CPU使用率*第一权重系数+内存使用率*第二权重系数+磁盘IO字节数*第三权重系数+网卡IO字节数*第四权重系数+当前待部署虚拟机个数*第五权重系数。
其中,第一权重系数为CPU使用率因子的权重;第二权重系数为内存使用率因子的权重;第三权重系数为磁盘IO字节因子的权重;第四权重系数为网卡IO字节因子的权重;第五权重系数为当前待部署虚机个数因子的权重。并且,所述“CPU使用率*第一权重系数”、“内存使用率*第二权重系数”、“磁盘IO字节数*第三权重系数”、“网卡IO字节数*第四权重系数”和“当前待部署虚拟机个数*第五权重系数”的数量级一致。
步骤202:采用所述调度开销值计算公式计算各个候选物理服务器的初始调度开销值。
再采用步骤201获取到的调度开销值计算公式计算各个物理服务器的初始调度开销值。在实施本步骤时,各个权重系数的初始化方式可以参考如下内容:因为CPU使用率和内存使用率是0-100之间的数值,而当前待部署虚拟机个数是大于或等于1的整数,因此第一权重系数、第二权重系数和第五权重系数是数量级相对固定的值;而第三权重系数和第四权重系数的数量级,则可以分别由实际部署环境中磁盘IO字节数和网卡IO字节数的具体数量级决定。因为调度开销值的计算必须综合考虑上述5个因素的综合影响,因此在实施本申请实施例的实际过程中,各权重值的确定可以由本领域技术人员根据实际的调度结果进行调节和优化,在此不做具体数值的限定。
在本申请实施例中,调度策略也会影响调度开销值计算公式的各个权重系数,具体将在下一个实施例中详细阐述。
步骤S104:依据所述初始调度开销值实现所述批量虚拟机的调度。
在具体实施时,按照各个候选物理服务器的初始调度开销值,可以将批量虚拟机调度至目标物理服务器。例如,可以将上述各个候选物理服务器按照调度开销值建立最小堆,从最小堆中取出堆顶元素对应的候选物理服务器作为当前虚拟机部署的目标,并从该候选物理服务器中减去当前虚拟机耗费的内存和硬盘资源,此时,如果该候选物理服务器的剩余资源不足以满足至少一个虚拟机的部署要求,则将该候选物理服务器从最小堆中删除,并按照其他候选物理服务器的调度开销值重新调整最小堆,如果该候选物理服务器的剩余资源满足至少一个虚拟机的部署要求,则将该候选物理服务器的待部署虚拟机个数加一,并重新计算该候选物理服务器的调度开销值并重新调整最小堆。
下面参考图3对步骤104进行详细介绍,所述步骤S104具体可以包括:
步骤301:依据初始调度开销值建立与所述候选物理服务器集合对应的初始最小堆。
其中,堆是一种经过排序的树形数据结构,每个结点都有一个值,通常也把堆称为二叉堆。其中,堆被分为最小堆和最大堆,最小堆是指父节点比左右子节点的值都小的堆,而最大堆是指父节点比左右子节点的值都大的堆。
本申请中按照各个候选物理服务器的初始调度开销值建立初始最小堆,则该初始最小堆中堆顶元素对应的候选物理服务器初始调度开销值是最小的。
步骤302:依据所述初始最小堆的堆顶元素依次对所述批量虚拟机中的各个虚拟机进行调度。
然后再依据初始最小堆的堆顶元素对应的候选物理服务器,依次实现对批量虚拟机中的各个虚拟机进行调度的目的,将批量虚拟机部署到目标物料服务器中。
为了方便本领域技术人员对于步骤302的理解,参考图4所示,所述步骤302具体可以包括:
步骤401:获取所述批量虚拟机中的任一虚拟机作为当前虚拟机,以所述初始最小堆作为当前最小堆;
在本步骤中,从批量虚拟机中获取任一虚拟机作为当前虚拟机,并将初始最小堆作为当前最小堆;
步骤402:依据所述当前虚拟机和所述当前最小堆触发循环调度流程,所述循环调度流程包括:
步骤4021:获取所述当前最小堆的堆顶元素对应的堆顶物理服务器;
在具体实施时,如果初始最小堆的大小为零,则不再执行循环调度流程,如果初始最小堆的大小不为零,则从初始最小堆中取出堆顶元素,获得其对应的堆顶物理服务器。
步骤4022:将所述堆顶物理服务器的初始可用分配资源减去所述当前虚拟机消耗的分配资源,得到所述堆顶物理服务器在下一个虚拟机调度时的可用分配资源;
然后将该堆顶物理服务器的初始可用分配资源减去所述当前虚拟机消耗的分配资源,得到所述堆顶物理服务器在下一个虚拟机调度时的可用分配资源,即是将当前虚拟机部署至该堆顶物理服务器之后,看该堆顶物理服务器在下一个虚拟机调度时的可用分配资源是否还能满足其他虚拟机的部署需求;其中,可用分配资源包括可用磁盘大小和可用内存大小;
在实际应用中,对批量虚拟机的部署结果可以保存在哈希表中,例如,将物理服务器的IP地址作为key,而将该物理服务器待部署的虚拟机个数作为value保存至哈希表中。如果堆顶物理服务器的IP地址在哈希表(HashMap)中存在,则取出其对应的value值,增加1,表示当前虚拟机部署在该堆顶物理服务器上;如果不存在,则插入一条新的哈希记录,其key为服务器IP,value值为1。
步骤4023:判断所述堆顶服务器的当前可用分配资源是否大于至少一个其他虚拟机需消耗的分配资源,如果否,则进入步骤4024;如果是,则进入步骤4026;
本步骤继续判断堆顶服务器的当前可用分配资源(可用磁盘大小和可用内存大小)是否满足至少一个虚拟机的资源需求,如果满足的话,说明该堆顶物理服务器可以继续部署虚拟机;
步骤4024:将所述堆顶服务器从所述初始最小堆中删除,并依据所述候选物理服务器集合中除了所述堆顶服务器之外的其他候选物理服务器的当前调度开销值更新所述初始最小堆以得到更新的最小堆;
如果堆顶服务器的当前可用分配资源(可用磁盘大小和可用内存大小)不满足至少一个虚拟机的资源需求,将该堆顶物理服务器对应的堆顶元素从最小堆中删除,并依据所述候选物理服务器集合中除了所述堆顶服务器之外的其他候选物理服务器的当前调度开销值更新所述初始最小堆以得到更新的最小堆。
步骤4025:确定所述批量虚拟机中的其他任一未被调度的虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,返回步骤4021;
再次确定批量虚拟机中的其他任一未被调度的虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,并返回步骤4021触发所述循环调度流程;在具体实施时,依次选取虚拟机进行调度也可以按照某种固定顺序来逐一进行调度;
步骤4026:依据所述堆顶服务器的当前调度开销值更新所述初始最小堆得到更新的最小堆,确定所述批量虚拟机中的其他任一未被调度的虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,返回步骤4021。
依据开销调度值计算公式重新堆顶服务器的当前调度开销值,并依据所述堆顶服务器的当前调度开销值更新所述初始最小堆得到更新的最小堆,确定所述批量虚拟机中的其他任一未被调度的虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,并返回步骤4021触发所述循环调度流程。
在经过上述步骤401~步骤402部署完毕虚拟机之后,可以从哈希表中取出当前批量待部署虚拟机的决策结果,即是哪一个虚拟机在哪一个物理服务器上部署的结果,来确定各物理服务器在后续部署过程中实际承担的待部署虚机个数。
可以理解的是,批量虚拟机调度过程中用户可选择的执行策略和其应用场景的对应关系如下所示:(一)部分满足执行策略:调度系统中物理服务器的资源只能满足调度请求的批量虚拟机中的部分虚拟机时,也会执行部署操作。例如,用户请求批量部署10台虚拟机,而实际的调度系统只能满足8台虚拟机的部署资源,假如用户在发起需求时选定部分满足执行策略,调度系统会默认将此调度结果交给部署模块,开始执行8台虚拟机的部署操作。(二)全部满足执行策略:只有调度系统中物理服务器的资源能全部满足批量虚拟机的部署时,视调度结果有效。例如,用户请求部署10台虚拟机,而实际系统只能满足8台虚拟机的资源,这时视调度结果无效,返回描述信息给用户,系统资源匮乏,不能够满足当前用户请求,则此时不会触发本申请实施例中的虚拟机调度方法。
本申请实施例中,通过对各个候选物理服务器的调度开销值的计算,可以将CPU负载、内存使用率、硬盘IO负载、网卡IO负载以及当前部署虚拟机个数作为参考因素,就能使得调度过程更为合理;并且,在候选服务器集合中选取最优物理服务器时,通过一次性建立最小堆,后续不断更新堆的方式减小遍历候选服务器的次数,同时通过更新最小堆的方式减少排序比较的次数,提高虚拟机调度执行的效率。假设一次批部署时要求部署M个虚机,而指定的服务器池中有N台服务器,则建立最小堆的时间是NlogN;在M次对最小堆的取堆顶元素过程中,时间是MlogN。因此整个调度模块的时间复杂度为:
当M>N时,T(N)=O(MlogN);当M<N时,T(N)=O(NlogN),其中M为批量部署虚拟机的个数,N为物理服务器池中物理服务器的个数。
可见本申请实施例在时间上维持Max(O(NlogN,MlogN))的时间复杂度,比现有技术效率更高,因此,本实施例在虚拟机部署开始前,通过物理服务器动态性能数据,使虚拟机在部署时最大程度趋向合理,避免在运行时的热迁移,尽量保证虚拟机上运行的服务的稳定性。
参考图5该图示出了本申请实施例二的批量虚拟机的调度方法的流程。该实施例包括:
步骤501:获取用户提交的待部署的批量虚拟机的个数和所述批量虚拟机的配置文件;所述批量虚拟机的配置文件包括:单个虚拟机所需的内存和硬盘大小。
本实施例以具体实例进行介绍。假设物理服务器池中有A、B、C、D和E共五台物理服务器,需要批量部署2台虚拟机。该2台虚拟机的配置文件信息表示其需要的剩余可用硬盘大小为30000M,剩余可用内存大小为1024M。如图6所示,为五台物理服务器对应的参数的各项信息的示意图,其中:“disk_free”列示意了剩余磁盘大小(以M为单位),“mem_free”列示意了剩余内存大小(以M为单位),“cpu_usage”列示意了CPU使用率(数值在0至0.001之间),“mem_usage”列示意了内存使用率(数值在0至100之间),“disk_io”列示意了磁盘IO强度(数值在0至10之间),“network_io”列示意了网卡IO强度(数值在0至10之间),“vm_todo”列示意了当前待部署虚拟机个数(单位为个),“cost_value”列示意了计算得到的调度开销值。图6分别示意了3次计算调度开销值的A、B、C、D和E的具体参数。
步骤502:将所述批量虚拟机的配置文件信息作为过滤条件,从物理服务器池过滤掉不符合所述过滤条件的物理服务器以得到候选物理服务器集合。
在本实施例中,A、B、C、D和E共五台物理服务器均满足批量虚拟机的过滤条件,因此得到的候选物理服务器集合为{A、B、C、D、E}。
步骤503:获取用户提交的所述批量虚拟机的部署策略,所述部署策略包括:需调整所述第一权重系数的低CPU使用率优先的策略,需调整所述第二权重系数的低内存使用率优先的策略,需调整所述第三权重系数的低磁盘IO字节数优先的策略,需调整所述第四权重系数的低网卡IO字节数优先的策略,或者,需调整所述第五权重系数的部署操作低延迟优先的策略。
在本实施例中,批量虚拟机部署过程中用户可选择的部署策略及其对应的应用场景可以有五种。第一种是低CPU使用率的物理服务器优先策略,如果用户选择这种优先策略需调整第一权重系数,在应用场景为目标虚拟机运行高密度计算的应用时(计算密集型),可以采用此种策略。第二种是低内存使用率的物理服务器优先策略,如果用户选择这种优先策略需调整第二权重系数,在应用场景为目标虚拟机运行的应用需要大量内存时(内存密集型),可以采用此种策略。第三种为低磁盘IO字节数的物理服务器优先策略,如果用户选择这种优先策略需调整第三权重系数,在应用场景为目标虚拟机运行频繁的磁盘读写类型应用时(IO密集型),可以采用此种策略。第四种为低网卡IO字节数的物理服务器优先策略,在应用场景为目标虚拟机运行的应用会频繁地网络传输时(网络密集型),可以采用此种策略。第五种为部署操作低延迟的物理服务器优先策略,在用户希望虚拟机批量部署操作的等待时间尽量短时,可以采用此种策略。
而用户选择哪一种优先策略对调度开销值计算的影响主要有以下几个方面:用户选择的5种优先策略分别对应着CPU使用率、磁盘IO字节数、内存使用率、网卡IO字节数和部署操作低延迟共五个方面的侧重,因此当用户对优先策略进行选择时,系统会增大对应的权重系数。例如当用户选择低CPU使用率的服务器的优先策略时,第一权重系数将增大。
步骤504:获取物理服务器的调度开销值计算公式,所述调度开销值计算公式为:调度开销值=CPU使用率*第一权重系数+内存使用率*第二权重系数+磁盘IO字节数*第三权重系数+网卡IO字节数*第四权重系数+待部署虚拟机个数*第五权重系数。
在本实施例中,为均量平衡各个因素对于调度开销值的影响,可以将调度开销值计算公式初始化为:
调度开销值=CPU使用率*100000+内存使用率*1+磁盘IO字节数*10+网卡IO字节数*10+待部署虚拟机个数*10。
其中,第一权重系数为100000,第二权重系数为1,第三权重系数、第四权重系数和第五权重系数均为10。
步骤505:依据所述部署策略调整所述调度开销值计算公式中的第一权重系数、第二权重系数、第三权重系数、第四权重系数或第五权重系数。
而当用户选择五种优先策略之一时,其对应参数的权重值可以变为原来的两倍。例如在本实例中,如果用户选择低CPU使用率的物理服务器优先策略,则此时CPU使用率的第一权重系数可以调整为200000,此时的调度开销值的计算公式则调整为:
调度开销值=CPU使用率*200000+内存使用率*1+磁盘IO字节数*10+网卡IO字节数*10+待部署虚拟机个数*10。
参考图6所示,结合图6中的各个参数,则实际上调度开销值的计算方式为:
cost_value=cpu_usage*200000+mem_usage*1+disk_io*10+network_io*10+vm_todo*10。
步骤506:采用调整之后的调度开销值计算公式计算各个物理服务器的初始调度开销值。
采用步骤505中调整第一权重系数之后的公式计算各个物理服务器的初始调度开销值。参考图6所示,在计算初始调度开销值的时候,物理服务器A的开销值最小,为53.394869。此时建立的初始最小堆为图7a所示的最小堆示意图。
步骤507:依据所述初始调度开销值实现所述批量虚拟机的调度。
因为在本申请实施例中,计算调度开销值的过程中同时考虑用户选择的优先策略产生的影响。在按照图7a所示的初始最小堆对第一台虚拟机进行调度时,取出初始最小堆的堆顶元素A作为当前部署物理服务器(开销值最小,为53.394869),此时调整A的剩余磁盘大小值(disk_free)和剩余内存大小值(mem_free),以及将A的待部署虚拟机个数值加1(vm_todo),从而得到图6所示的第二组候选物理服务器的参数值。在本申请实施例中,因为A的“disk_free”和“mem_free”至少还能满足一台虚拟机的部署需求,即是A的剩余可用硬盘大小大于30000M,剩余可用内存大小大于1024M,则此时重新计算A的调度开销值,并按照开销值重新调整初始最小堆,参考图7b所示,为按照第二组候选物理服务器的参数值重新调整初始最小堆的示意图。而继续对第二台虚拟机进行决策时,按照图7b所示的调整后的最小堆进行调度,此时取出堆顶元素B作为当前部署物理服务器(开销值最小,为55.918)。此时,对于两台批量虚拟机部署的调度完成,2台虚拟机将分别在物理服务器A和B上分别部署。
需要说明的是,在物理服务器A上部署第一台虚拟机之后,如果A的“disk_free”和“mem_free”不满足一台虚拟机的部署,则会将A从初始最小堆中抛出。而部署两台批量虚拟机之后,重新计算B的调度开销值之后,可以得到如图6所示的第三组各个候选物理服务器的参数值,此时物理服务器C的调度开销值最小,因此,此时再次调整最小堆之后可以得到图7c所示的最小堆示意图。如果后续还有虚拟机需要部署,则可以选择C作为当前部署服务器。
在本申请实施例中,对批量虚拟机的调度过程也受用户选择的调度策略的影响(计算密集型,内存密集型,IO密集型,网络密集型,或者部署操作低延迟的物理服务器优先策略),从而使得虚机运行的服务器环境尽量能满足应用场景的实际需求。并且,将批量部署的虚拟机切分成单个的虚拟机,进行逐个调度,最终把整体调度结果组合后再返回,这样使得虚拟机调度的原子粒度更大,并且虚拟机部署的目标物理服务器更加分散,从而使调度的灵活性和部署的并发性提高。
上述叙述内容均是对本申请方法实施例的描述,相应地,本申请实施例还提供了批量虚拟机的调度装置。参见附图8,该图示出了本申请实施例三的批量虚拟机的调度装置的结构框架。该装置实施例具体可以包括:
接收单元801,用于获取用户提交的待部署的批量虚拟机的个数和所述批量虚拟机的配置文件;所述批量虚拟机的配置文件包括:单个虚拟机所需的内存和硬盘大小。
过滤单元802,用于将所述批量虚拟机的配置文件作为过滤条件,从物理服务器池过滤掉不符合所述过滤条件的物理服务器以得到候选物理服务器集合。
计算单元803,用于依据所述候选物理服务器集合中各个候选物理服务器的虚拟机调度参数计算所述各个候选物理服务器的初始调度开销值。
所述虚拟机调度参数具体可以包括:CPU使用率、内存使用率、磁盘IO字节数、网卡IO字节数和待部署虚拟机个数;则参考图9所示,所述计算单元803包括:
获取模块901,用于获取调度开销值计算公式,所述调度开销值计算公式为:调度开销值=CPU使用率*第一权重系数+内存使用率*第二权重系数+磁盘IO字节数*第三权重系数+网卡IO字节数*第四权重系数+当前待部署虚拟机个数*第五权重系数;其中,所述“CPU使用率*第一权重系数”、“内存使用率*第二权重系数”、“磁盘IO字节数*第三权重系数”、“网卡IO字节数*第四权重系数”和“当前待部署虚拟机个数*第五权重系数”的数量级一致;
计算模块902,用于采用所述调度开销值计算公式计算各个物理服务器的初始调度开销值。
调度单元804,用于依据所述初始调度开销值实现所述批量虚拟机的调度。
参考图10所示,所述调度单元804具体可以包括:
建立模块1001,用于依据所述初始调度开销值建立与所述候选物理服务器集合对应的初始最小堆;
调度模块1002,用于依据所述初始最小堆的堆顶元素依次对所述批量虚拟机中的各个虚拟机进行调度。
其中,参考图11所示,所述调度模块1002具体可以包括:
获取子模块1101,用于获取所述批量虚拟机中的任一虚拟机作为当前虚拟机,以所述初始最小堆作为当前最小堆;
调度执行子模块1102,用于依据所述当前虚拟机和所述当前最小堆触发循环调度流程,所述循环调度流程包括:获取所述当前最小堆的堆顶元素对应的堆顶物理服务器;将所述堆顶物理服务器的初始可用分配资源减去所述当前虚拟机消耗的分配资源,得到所述堆顶物理服务器在下一个虚拟机调度时的可用分配资源;判断所述堆顶服务器在下一个虚拟机调度时的可用分配资源是否大于至少一个其他虚拟机需消耗的分配资源,如果否,则将所述堆顶服务器从所述初始最小堆中删除,并依据所述候选物理服务器集合中除了所述堆顶服务器之外的其他候选物理服务器的当前调度开销值更新所述初始最小堆以得到更新的最小堆,并确定所述批量虚拟机中的其他任一未被调度的虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,触发所述循环调度流程;如果是,则依据所述堆顶服务器的当前调度开销值更新所述初始最小堆得到更新的最小堆;并确定所述批量虚拟机中的其他任一未被调度的虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,触发所述循环调度流程。
本申请实施例中,通过对各个候选物理服务器的调度开销值的计算,可以将CPU负载、内存使用率、硬盘IO负载、网卡IO负载以及当前部署虚拟机个数作为参考因素,就能使得调度过程更为合理;并且,在候选服务器集合中选取最优物理服务器时,通过一次性建立最小堆,后续不断更新堆的方式减小遍历候选服务器的次数,就能减少排序的次数,提高虚拟机调度的部署时间效率。本实施例在虚拟机部署开始前,通过物理服务器动态性能数据,使虚拟机在部署时最大程度趋向合理,避免在运行时的热迁移,尽量保证虚拟机上运行的服务的稳定性。
参见附图12,该图示出了本申请实施例三的批量虚拟机的调度装置的结构框架。该装置实施例具体可以包括:
接收单元801,用于获取用户提交的待部署的批量虚拟机的个数和所述批量虚拟机的配置文件;所述批量虚拟机的配置文件包括:单个虚拟机所需的内存和硬盘大小。
过滤单元802,用于将所述批量虚拟机的配置文件作为过滤条件,从物理服务器池过滤掉不符合所述过滤条件的物理服务器以得到候选物理服务器集合。
获取模块901,用于获取调度开销值计算公式,所述调度开销值计算公式为:调度开销值=CPU使用率*第一权重系数+内存使用率*第二权重系数+磁盘IO字节数*第三权重系数+网卡IO字节数*第四权重系数+当前待部署虚拟机个数*第五权重系数;其中,所述“CPU使用率*第一权重系数”、“内存使用率*第二权重系数”、“磁盘IO字节数*第三权重系数”、“网卡IO字节数*第四权重系数”和“当前待部署虚拟机个数*第五权重系数”的数量级一致。
获取部署策略单元1201,用于获取用户提交的所述批量虚拟机的部署策略,所述部署策略包括:需调整所述第一权重系数的低CPU使用率优先的策略,需调整所述第二权重系数的低内存使用率优先的策略,需调整所述第三权重系数的低磁盘IO字节数优先的策略,需调整所述第四权重系数的低网卡IO字节数优先的策略,或者,需调整所述第五权重系数的部署操作低延迟优先的策略。
调整模块1202,用于调整依据所述部署策略调整所述第一权重系数、第二权重系数、第三权重系数、第四权重系数或第五权重系数。
计算模块902,用于采用调整之后的调度开销值计算公式计算各个物理服务器的初始调度开销值。
调度单元804,用于依据所述初始调度开销值实现所述批量虚拟机的调度。
在本申请实施例中,对批量虚拟机的调度过程也受用户选择的调度策略的影响(计算密集型,内存密集型,IO密集型,网络密集型,或者部署操作低延迟的物理服务器优先策略),从而使得虚机运行的服务器环境尽量能满足应用场景的实际需求。并且,将批量部署的虚拟机切分成单个的虚拟机,进行逐个调度,最终把整体调度结果组合后再返回,这样使得虚拟机调度的原子粒度更大,并且虚拟机部署的目标物理服务器更加分散,从而使调度的灵活性和部署的并发性提高。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (6)

1.一种批量虚拟机的调度方法,其特征在于,所述方法包括:
获取用户提交的待部署的批量虚拟机的个数、所述批量虚拟机的配置文件;所述配置文件包括:单个虚拟机所需的内存和硬盘大小;
将所述批量虚拟机的配置文件作为过滤条件,从物理服务器池过滤掉不符合所述过滤条件的物理服务器以得到候选物理服务器集合;
依据所述候选物理服务器集合中各个候选物理服务器的虚拟机调度参数计算所述各个候选物理服务器的初始调度开销值;
依据所述初始调度开销值实现所述批量虚拟机的调度;
其中,所述依据所述初始调度开销值实现所述批量虚拟机的调度,包括:
依据所述初始调度开销值建立与所述候选物理服务器集合对应的初始最小堆;和,依据所述初始最小堆的堆顶元素依次对所述批量虚拟机中的各个虚拟机进行调度;
其中,所述依据所述初始最小堆的堆顶元素依次对所述批量虚拟机中的各个虚拟机进行调度,包括:
获取所述批量虚拟机中的任一虚拟机作为当前虚拟机,以所述初始最小堆作为当前最小堆;依据所述当前虚拟机和所述当前最小堆触发循环调度流程,所述循环调度流程包括:获取所述当前最小堆的堆顶元素对应的堆顶物理服务器;将所述堆顶物理服务器的初始可用分配资源减去所述当前虚拟机消耗的分配资源,得到所述堆顶物理服务器在下一个虚拟机调度时的可用分配资源;判断所述堆顶服务器在下一个虚拟机调度时的可用分配资源是否大于至少一个其他虚拟机需消耗的分配资源,如果否,则将所述堆顶服务器从所述初始最小堆中删除,并依据所述候选物理服务器集合中除了所述堆顶服务器之外的其他候选物理服务器的当前调度开销值更新所述初始最小堆以得到更新的最小堆,并确定所述批量虚拟机中的其他任一未被调度的虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,触发所述循环调度流程;如果是,则依据所述堆顶服务器的当前调度开销值更新所述初始最小堆得到更新的最小堆;并确定所述批量虚拟机中的其他任一未被调度的虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,触发所述循环调度流程。
2.根据权利要求1所述的方法,其特征在于,所述虚拟机调度参数包括:CPU使用率、内存使用率、磁盘IO字节数、网卡IO字节数和待部署虚拟机个数;则依据所述候选物理服务器集合中各个候选物理服务器的虚拟机调度参数计算所述各个候选物理服务器的初始调度开销值,包括:
获取物理服务器的调度开销值计算公式,所述调度开销值计算公式为:调度开销值=CPU使用率*第一权重系数+内存使用率*第二权重系数+磁盘IO字节数*第三权重系数+网卡IO字节数*第四权重系数+当前待部署虚拟机个数*第五权重系数;
其中,所述“CPU使用率*第一权重系数”、“内存使用率*第二权重系数”、“磁盘IO字节数*第三权重系数”、“网卡IO字节数*第四权重系数”和“当前待部署虚拟机个数*第五权重系数”的数量级一致;
采用所述调度开销值计算公式计算各个物理服务器的初始调度开销值。
3.根据权利要求2所述的方法,其特征在于,还包括:
获取用户提交的所述批量虚拟机的部署策略,所述部署策略包括:需调整所述第一权重系数的低CPU使用率优先的策略,需调整所述第二权重系数的低内存使用率优先的策略,需调整所述第三权重系数的低磁盘IO字节数优先的策略,需调整所述第四权重系数的低网卡IO字节数优先的策略,或者,需调整所述第五权重系数的部署操作低延迟优先的策略;
则所述依据所述候选物理服务器集合中各个候选物理服务器的虚拟机调度参数计算所述各个候选物理服务器的初始调度开销值,包括:
依据所述部署策略调整所述调度开销值计算公式中的第一权重系数、第二权重系数、第三权重系数、第四权重系数或第五权重系数;
采用调整之后的调度开销值计算公式计算各个物理服务器的初始调度开销值。
4.一种批量虚拟机的调度装置,其特征在于,该装置包括:
接收单元,用于获取用户提交的待部署的批量虚拟机的个数和所述批量虚拟机的配置文件;所述配置文件包括:单个虚拟机所需的内存和硬盘大小;过滤单元,用于将所述批量虚拟机的配置文件作为过滤条件,从物理服务器池过滤掉不符合所述过滤条件的物理服务器以得到候选物理服务器集合;
计算单元,用于依据所述候选物理服务器集合中各个候选物理服务器的虚拟机调度参数计算所述各个候选物理服务器的初始调度开销值;
调度单元,用于依据所述初始调度开销值实现所述批量虚拟机的调度;所述调度单元包括:
建立模块,用于依据所述初始调度开销值建立与所述候选物理服务器集合对应的初始最小堆;和,调度模块,用于依据所述初始最小堆的堆顶元素依次对所述批量虚拟机中的各个虚拟机进行调度;
其中,所述调度模块包括:
获取子模块,用于获取所述批量虚拟机中的任一虚拟机作为当前虚拟机,以所述初始最小堆作为当前最小堆;调度执行子模块,用于依据所述当前虚拟机和所述当前最小堆触发循环调度流程,所述循环调度流程包括:获取所述当前最小堆的堆顶元素对应的堆顶物理服务器;将所述堆顶物理服务器的初始可用分配资源减去所述当前虚拟机消耗的分配资源,得到所述堆顶物理服务器在下一个虚拟机调度时的可用分配资源;判断所述堆顶服务器在下一个虚拟机调度时的可用分配资源是否大于至少一个其他虚拟机需消耗的分配资源;如果否,则将所述堆顶服务器从所述初始最小堆中删除,并依据所述候选物理服务器集合中除了所述堆顶服务器之外的其他候选物理服务器的当前调度开销值更新所述初始最小堆以得到更新的最小堆,并确定所述批量虚拟机中的下一个虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,触发所述循环调度流程;如果是,则依据所述堆顶服务器的当前调度开销值更新所述初始最小堆得到更新的最小堆;并确定所述批量虚拟机中的其他任一未被调度的虚拟机作为当前虚拟机,以及确定所述更新的最小堆作为当前最小堆,触发所述循环调度流程。
5.根据权利要求4所述的装置,其特征在于,所述虚拟机调度参数包括:CPU使用率、内存使用率、磁盘IO字节数、网卡IO字节数和待部署虚拟机个数;则所述计算单元包括:
获取模块,用于获取目标物理服务器的调度开销值计算公式,所述调度开销值计算公式为:调度开销值=CPU使用率*第一权重系数+内存使用率*第二权重系数+磁盘IO字节数*第三权重系数+网卡IO字节数*第四权重系数+当前待部署虚拟机个数*第五权重系数;其中,所述“CPU使用率*第一权重系数”、“内存使用率*第二权重系数”、“磁盘IO字节数*第三权重系数”、“网卡IO字节数*第四权重系数”和“当前待部署虚拟机个数*第五权重系数”的数量级一致;
计算模块,用于采用所述调度开销值计算公式计算各个物理服务器的初始调度开销值。
6.根据权利要求5所述的装置,其特征在于,还包括:
获取部署策略单元,用于获取用户提交的所述批量虚拟机的部署策略,所述部署策略包括:需调整所述第一权重系数的低CPU使用率优先的策略,需调整所述第二权重系数的低内存使用率优先的策略,需调整所述第三权重系数的低磁盘IO字节数优先的策略,需调整所述第四权重系数的低网卡IO字节数优先的策略,或者,需调整所述第五权重系数的部署操作低延迟优先的策略;
则所述计算单元,还包括:
调整模块,用于调整依据所述部署策略调整所述调度开销值计算公式中的第一权重系数、第二权重系数、第三权重系数、第四权重系数或第五权重系数;
相应的,所述计算模块具体用于采用调整之后的调度开销值计算公式计算各个物理服务器的初始调度开销值。
CN201210394922.6A 2012-10-17 2012-10-17 一种批量虚拟机的调度方法及装置 Active CN102929701B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210394922.6A CN102929701B (zh) 2012-10-17 2012-10-17 一种批量虚拟机的调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210394922.6A CN102929701B (zh) 2012-10-17 2012-10-17 一种批量虚拟机的调度方法及装置

Publications (2)

Publication Number Publication Date
CN102929701A CN102929701A (zh) 2013-02-13
CN102929701B true CN102929701B (zh) 2015-04-29

Family

ID=47644510

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210394922.6A Active CN102929701B (zh) 2012-10-17 2012-10-17 一种批量虚拟机的调度方法及装置

Country Status (1)

Country Link
CN (1) CN102929701B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239341A (zh) * 2017-05-27 2017-10-10 郑州云海信息技术有限公司 一种资源折算方法、系统及虚拟机资源调度系统

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683408A (zh) * 2013-11-29 2015-06-03 中国科学院深圳先进技术研究院 OpenStack云计算管理平台建立虚拟机实例的方法和系统
CN104484155B (zh) * 2014-11-24 2018-05-01 北京奇安信科技有限公司 一种虚拟化平台下下发指令的方法和装置
CN104580194B (zh) * 2014-12-31 2017-11-24 北京四达时代软件技术股份有限公司 面向视频应用的虚拟化资源管理方法及装置
CN106161539A (zh) * 2015-04-12 2016-11-23 北京典赞科技有限公司 基于arm服务器的虚拟主机的调度创建节能优化方法
CN106325999A (zh) * 2015-06-30 2017-01-11 华为技术有限公司 一种分配宿主机资源的方法和装置
CN105260235A (zh) * 2015-09-23 2016-01-20 浪潮集团有限公司 一种云平台中基于应用场景的资源调度方法及装置
CN105653369A (zh) * 2015-12-29 2016-06-08 曙光信息产业(北京)有限公司 虚拟机的资源分配方法和装置
US10382518B2 (en) * 2016-03-22 2019-08-13 Google Llc Low latency applications using multiple servers
CN107479950B (zh) * 2016-06-08 2021-03-05 阿里巴巴集团控股有限公司 一种虚拟机调度方法、设备及系统
CN106020937A (zh) * 2016-07-07 2016-10-12 腾讯科技(深圳)有限公司 一种创建虚拟机的方法、装置及系统
CN107547275B (zh) * 2017-08-23 2020-05-15 北京北纬通信科技股份有限公司 PaaS云平台上的部署与交互方法
CN107656796B (zh) * 2017-09-04 2021-02-12 顺丰科技有限公司 一种虚拟机冷迁移方法、系统及设备
CN107643939A (zh) * 2017-09-14 2018-01-30 郑州云海信息技术有限公司 一种分配虚拟机的方法及系统
CN109597673B (zh) * 2017-09-30 2022-10-04 华为云计算技术有限公司 创建虚拟机的方法及调度设备
CN108255580A (zh) * 2018-01-11 2018-07-06 上海有云信息技术有限公司 一种云平台构建虚拟机的方法及装置
CN109634714B (zh) * 2018-11-02 2023-10-31 北京奇虎科技有限公司 一种智能调度的方法及装置
CN110941440A (zh) * 2019-10-31 2020-03-31 北京浪潮数据技术有限公司 一种虚拟机批量更新方法、装置、设备及可读存储介质
CN113835826A (zh) * 2021-08-13 2021-12-24 奇安信科技集团股份有限公司 虚拟机处理方法、装置、电子设备、程序产品及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111337A (zh) * 2011-03-14 2011-06-29 浪潮(北京)电子信息产业有限公司 任务调度方法和系统
CN102185759A (zh) * 2011-04-12 2011-09-14 田文洪 一种满足需求特性的多物理服务器负载均衡的方法及装置
CN102611622A (zh) * 2012-02-28 2012-07-25 清华大学 一种弹性云计算平台下工作负载的调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111337A (zh) * 2011-03-14 2011-06-29 浪潮(北京)电子信息产业有限公司 任务调度方法和系统
CN102185759A (zh) * 2011-04-12 2011-09-14 田文洪 一种满足需求特性的多物理服务器负载均衡的方法及装置
CN102611622A (zh) * 2012-02-28 2012-07-25 清华大学 一种弹性云计算平台下工作负载的调度方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239341A (zh) * 2017-05-27 2017-10-10 郑州云海信息技术有限公司 一种资源折算方法、系统及虚拟机资源调度系统
CN107239341B (zh) * 2017-05-27 2020-09-18 苏州浪潮智能科技有限公司 一种资源折算方法、系统及虚拟机资源调度系统

Also Published As

Publication number Publication date
CN102929701A (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
CN102929701B (zh) 一种批量虚拟机的调度方法及装置
Zhong et al. A cost-efficient container orchestration strategy in kubernetes-based cloud computing infrastructures with heterogeneous resources
Srirama et al. Application deployment using containers with auto-scaling for microservices in cloud environment
CN102232282B (zh) 一种实现数据中心资源负载均衡的方法及装置
Ardagna et al. SLA based resource allocation policies in autonomic environments
CN109684074B (zh) 物理机资源分配方法及终端设备
Asghari et al. Online scheduling of dependent tasks of cloud’s workflows to enhance resource utilization and reduce the makespan using multiple reinforcement learning-based agents
Ghit et al. Balanced resource allocations across multiple dynamic MapReduce clusters
Seth et al. Dynamic heterogeneous shortest job first (DHSJF): a task scheduling approach for heterogeneous cloud computing systems
CN103491024A (zh) 一种面向流式数据的作业调度方法及装置
Pasdar et al. Hybrid scheduling for scientific workflows on hybrid clouds
Raj et al. Enhancement of hadoop clusters with virtualization using the capacity scheduler
Sonkar et al. A review on resource allocation and VM scheduling techniques and a model for efficient resource management in cloud computing environment
CN111666158A (zh) 一种基于Kubernetes的容器调度方法、装置、存储介质及电子设备
Zhou et al. Goldilocks: Adaptive resource provisioning in containerized data centers
Amalarethinam et al. Customer facilitated cost-based scheduling (CFCSC) in cloud
Seth et al. Dynamic threshold-based dynamic resource allocation using multiple VM migration for cloud computing systems
Thai et al. Budget constrained execution of multiple bag-of-tasks applications on the cloud
Jeyaraj et al. Optimizing MapReduce task scheduling on virtualized heterogeneous environments using ant colony optimization
Rathinaraja et al. Dynamic ranking-based MapReduce job scheduler to exploit heterogeneous performance in a virtualized environment
Rawas et al. LECC: Location, energy, carbon and cost-aware VM placement model in geo-distributed DCs
Aarthee et al. Energy-aware heuristic scheduling using bin packing mapreduce scheduler for heterogeneous workloads performance in big data
Czarnul A model, design, and implementation of an efficient multithreaded workflow execution engine with data streaming, caching, and storage constraints
Kumar et al. A Case for {Performance-Centric} Network Allocation
CN115756740A (zh) 容器虚拟机资源管理方法、装置和电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 100086 12, 1201, 3 building, 2 South Road, Haidian District Academy of Sciences, Beijing.

Patentee after: Beijing Sohu New Media Information Technology Co., Ltd.

Address before: 100084 Room 802, 8 floor, cyber building, Haidian District East Road, Beijing No. 1, Haidian District, Zhongguancun.

Patentee before: Beijing Sohu New Media Information Technology Co., Ltd.