CN115952008A - 一种服务器集群资源的统一调度方法和装置 - Google Patents
一种服务器集群资源的统一调度方法和装置 Download PDFInfo
- Publication number
- CN115952008A CN115952008A CN202310247734.9A CN202310247734A CN115952008A CN 115952008 A CN115952008 A CN 115952008A CN 202310247734 A CN202310247734 A CN 202310247734A CN 115952008 A CN115952008 A CN 115952008A
- Authority
- CN
- China
- Prior art keywords
- host
- container
- state
- node
- server
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种服务器集群资源的统一调度方法和装置,该方法针对服务器资源调度的增量实时调度和全量碎片整理,合并简化了调度方法,实现了方法的复用;该方法包括以下步骤:获取当前时刻服务器集群状态的快照;根据快照,获取集群中的所有在运行的服务器集合,并根据优先级进行降序排列;依次遍历所排序的服务器集合,对每台服务器,通过弹射链和蒙特卡洛树搜索方法,依次判断所部署的容器是否可迁移至其它低优先级的服务器,并执行相应操作。本发明能获得完整的迁移路径和过程态,对服务器集群的资源进行整理,提高了资源的使用率,优化集群性能,降低功耗,助力实现数据中心的低碳节能、绿色环保的追求。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种服务器集群资源的统一调度方法和装置。
背景技术
资源调度是指当用户在申请容器所需的计算资源时,从集群中挑选出满足各项要求的宿主机来部署这些容器。
调度方法需要综合考虑资源(CPU、内存、磁盘等)、亲和-反亲和、迁移链长度等多种约束,以及均衡性、分配率、异构机型(GPU、FPGA)等多目标。
在云计算的环境下,调度系统帮助完成应用从部署、扩展、升级、下线的整个生命周期的管理,并负责应用的稳定、容灾和高可用。
不同的调度策略和规则,会导致最终得到的宿主机资源分配率存在差异。
随着AI业务的版本迭代、服务上下线,集群中会出现不可被分配出去的资源,造成集群中的宿主机出现资源碎片,碎片可能出现在多个维度(如显存、算力),任何一个维度的资源分配不合理,都可能导致其他资源成为碎片,造成浪费。
对于以上问题,现有技术可以通过调度后弹性伸缩迁移的方法解决,平衡宿主机负载和整理资源碎片。
通常,按照在对集群中服务器进行调度部署时是否有待分配的容器,调度场景可分为增量场景(存在待分配容器,即在线实时分配)和全量场景(无待分配容器,即离线碎片整理)。
现有的调度系统和方法基于亲和、反亲和、污点和容忍等约束机制,通过静态机器属性隐式地支持约束,缺乏一定的灵活性,导致较高的约束违规率和服务器资源碎片;基于人工方式或系统性能监测的自动弹性伸缩分别存在成本高效率低和缺乏迁移操作前后关联的缺陷。
同时,应用容器的部署和迁移顺序也对资源利用率和约束违规率有着重要的影响,现有调度系统拥有的队列类型以及队列管理功能,缺乏全局性和连续性,如何通过调度和弹性伸缩的结合实现高质量的容器部署成为集群服务器资源调度问题的新挑战。
此外,在现有公开的服务器集群资源调度方面的比赛和研究成果中,均只考虑腾挪的终态,在问题规模允许的范围内,都可抽象为指派问题并建模求解,迁移路径可能无法保证可执行。
本发明提出的调度方法和装置将全量场景和增量场景进行统一,会考虑过程态以及完整的迁移路径,其基本思想是基于弹射链,用于弹射宿主机上的容器从而对增量部署或者全量腾空的目的,同时会结合蒙特卡洛树搜索(Mento Carlo Tree Search,MCTS)的思想来提高弹射的可预见性。本发明通过一套高性能的调度装置和方案,可支撑云计算集群的任务编排、碎片整理和负载均衡,提高资源利用率。
发明内容
本发明的目的在于针对现有技术的不足,提供一种服务器集群资源的统一调度方法和装置。本发明能够有效提高资源利用率,优化集群性能,助力实现数据中心的低碳节能、绿色环保的追求。
本发明的目的是通过以下技术方案来实现的:本发明实施例第一方面提供了一种服务器集群资源的统一调度方法,包括以下步骤:
(1)确定服务器集群中在运行的所有宿主机,获取集群状态快照;
(2)根据状态快照判断服务器集群调度场景是否为增量场景,若是增量场景,则将待分配的容器视为预先放置在一个最高优先级、容量无限大的虚拟主机中,以将增量场景转化为全量场景并将所有宿主机按优先级进行降序排列;若不是增量场景,则直接将所有宿主机按优先级进行降序排列;
(3)在降序排列的宿主机中选择一台宿主机作为源宿主机,应用弹射链方法和蒙特卡洛树搜索方法判断源宿主机上的容器是否可以全部迁移至其它低优先级的宿主机,若能全部迁出,则执行迁移动作清空宿主机并将该宿主机的状态标记为“空闲”;否则,将该宿主机的状态标记为“不可清空”;
(4)重复所述步骤(3),直至降序排列的所有宿主机的容器是否可以全部迁移的判断完成为止。
可选地,所述步骤(1)包括以下子步骤:
(1.1)获取服务器集群中的宿主机信息,宿主机信息包括宿主机的状态以及宿主机与容器的容斥信息、资源占用情况;所述宿主机的状态分为“空闲”或者“在运行”;
(1.2)获取各宿主机上已部署的容器信息,所述容器信息包括与请求对象容器的容斥信息;
(1.3)根据宿主机的状态为“在运行”,获取集群状态快照。
可选地,所述状态快照为某时刻采集到的集群运行状态,包括:在各宿主机中部署的容器信息、各项资源使用量、各项资源使用率和集群调度队列信息。
可选地,所述步骤(2)中获取宿主机的优先级的方法具体为:根据服务器的资源价值、服务器资源占用状态、服务器资源使用率、部署的容器数、是否为异构机型和预先指定的优先级标准,计算宿主机的优先级。
可选地,所述步骤(3)包括以下子步骤:
(3.1)在降序排列的宿主机中选择一台宿主机作为源宿主机,选择源宿主机上的一个容器进行弹射链操作;
(3.2)在当前集群状态下,对选定的容器使用蒙特卡洛树搜索找到最佳迁移方案;
(3.3)判断最佳迁移方案是否可行,若迁移方案可行,则记录迁移方案,选择一个新的容器进行弹射链操作,返回所述步骤(3.2),直至源宿主机上的所有容器均已完成弹射链操作为止,并执行迁移方案对应的迁移动作,以清空宿主机并将该宿主机的状态标记为“空闲”;若迁移方案不可行,则对迁移方案的目标宿主机进行资源约束松弛;
(3.4)判断松弛对应的方案是否可行,若可行,则将弹射深度减一,选择目标宿主机中的容器作为待操作容器,将待操作容器作为选定的容器返回所述步骤(3.2);若不可行,则返回空值,将当前宿主机的状态标记为“不可清空”。
可选地,所述步骤(3.2)包括以下子步骤:
(3.2.1)将选定的容器和集群状态作为搜索树的根节点,其中,所述搜索树是以集群状态为节点、迁移动作为边的多叉树数据结构;
(3.2.2)判断当前是否还有搜索预算,若有搜索预算,则进入下一步;否则,则停止搜索过程并返回已得到的搜索树的最佳迁移动作,根据最佳迁移动作获取最佳迁移方案;
(3.2.3)从根节点出发,判断当前节点是否为叶子节点,若是,则选择当前节点作为叶子节点,并进入下一步;否则,则当前节点存在子节点,根据节点的UCT值选择最小值的子节点作为当前节点,并返回当前步骤;
(3.2.4)判断步骤(3.2.3)中得到的叶子节点的状态是否为终止状态,若为终止状态,则当前的叶子节点的状态不存在候选迁移动作,并直接进入下一步;否则,则获取该状态下的候选迁移动作,从中随机选择一个动作,执行该动作,产生新的状态并创建新的节点,加入当前节点的子节点列表,以获取扩展节点;
(3.2.5)通过贪心规则快速模拟调度迁移动作至终止状态,以得到模拟得分;
(3.2.6)从当前节点开始将模拟得到的分数沿搜索树向上传播,以对蒙特卡洛树搜索进行反向传播;
(3.2.7)返回步骤(3.2.2)。
可选地,所述步骤(3.2.6)包括以下子步骤:
(3.2.6.1)判断当前节点是否为根节点,若是,则停止反向传播过程;否则,对当前节点更新模拟分数和模拟次数;
(3.2.6.2)将当前节点的父节点作为下一次反向传播的节点;
(3.2.6.3)将所述步骤(3.2.6.2)得到的下一次反向传播的节点作为当前节点,返回所述步骤(3.2.6.1)。
可选地,所述弹射链方法用于判断指定容器是否能迁移至其它宿主机并获取最佳迁移方案;所述蒙特卡洛树搜索方法用于提高迁移的可预见性并扩大搜索域。
本发明实施例第二方面提供了一种服务器集群资源的统一调度装置,用于实现上述的服务器集群资源的统一调度方法,所述统一调度装置包括:
多台服务器,组成了集群,用于提供运行环境;
服务器资源监控装置,用于实时监测服务器各种资源的使用情况,采集宿主机和容器的资源数据的状态快照;
服务器能耗监测装置,用于实时监测当前服务器的能耗状态;
识别装置,用于从多台所述服务器中选择一台或多台作为目标宿主机;
容器调度迁移决策装置,用于根据请求容器的资源消耗量及约束从候选宿主机中选择最匹配的宿主机,以生成调度和迁移方案;和
执行装置,用于将所述容器调度迁移决策装置的决策方案的中的容器和宿主机进行绑定并执行该决策方案。
本发明实施例第三方面提供了一种计算机可读存储介质,其上存储有程序,该程序被执行时,用于实现上述的服务器集群资源的统一调度方法。
本发明的有益效果是,本发明将增量场景中待分配的容器视为预先放置在一个容量无限大的虚拟主机中,通过迁移尽可能减少虚拟主机中的容器,将增量场景转化为尽量清空虚拟主机的全量场景,在保证效果的基础上合并简化了调度方法在不同场景中的应用,达到了方法的复用。其次,通过获取当前时刻的集群状态快照;再根据状态快照,获取服务器集群中的所有“在运行”的宿主机集合,并根据优先级进行降序排列;依次遍历所排序的宿主机集合,对每台宿主机,通过弹射链方法,依次判断所部署的容器是否可迁移至其它低优先级的宿主机;对当前宿主机,若所有容器均可迁出,则执行相应操作将该服务器标记为“已清空”并调整至“空闲”,否则标记为“不可清空”,弹射堆栈的迁移路径保证了方案的可执行性。本发明对服务器集群的资源进行整理,提高了服务器资源的使用率,优化集群性能,降低空闲服务器功耗,有助于实现数据中心的低碳节能、绿色环保的追求。
附图说明
图1是本发明的调度方法主流程图;
图2是本发明的迁移链示例图;
图3是本发明的增量转化为全量示例图;
图4是本发明的弹射链算法流程图;
图5是本发明的蒙特卡洛树搜索算法流程图;
图6是本发明的集群状态获取示意图;
图7是本发明的蒙特卡洛树构建示意图;
图8是本发明的服务器集群资源的统一调度装置的一种实施例的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中的服务器集群资源的统一调度方法,针对全量场景和增量场景,该统一调度方法将增量场景容器队列中待分配的容器视为预先放置在一个最高优先级、容量无限大的虚拟主机中,通过迁移尽可能减少虚拟主机中的容器,将增量场景转化为尽量清空虚拟主机的全量场景。该方法的核心是基于弹射链和蒙特卡洛树搜索,其目的在于通过一套高性能的调度系统,支撑云计算集群的任务编排、碎片整理和负载均衡,提高资源利用率,优化集群性能,助力实现数据中心的低碳节能、绿色环保的追求。如图1所示,具体包括以下步骤:
(1)确定服务器集群中在运行的所有宿主机,获取集群状态快照。
其中,状态快照为某时刻采集到的集群运行状态,包括:在各宿主机中部署的容器信息、各项资源使用量、各项资源使用率、集群调度队列信息等,如图6所示。
(1.1)获取服务器集群中的宿主机信息,宿主机信息包括宿主机的状态以及宿主机与容器的容斥信息、资源占用情况;其中,宿主机的状态分为“空闲”或者“在运行”。
(1.2)获取各宿主机上已部署的容器信息,其中,容器信息包括与请求对象容器的容斥信息等。
(1.3)根据宿主机的状态为“在运行”,获取集群状态快照。
可选地,所述“在运行”指所述的宿主机已部署有至少一个容器。
(2)根据状态快照判断服务器集群调度场景是否为增量场景,若是增量场景,则将待分配的容器视为预先放置在一个最高优先级、容量无限大的虚拟主机中,以将增量场景转化为全量场景并将所有宿主机按优先级进行降序排列;若不是增量场景,则直接将所有宿主机按优先级进行降序排列。
通常,服务器集群可以是指由多台服务器组成的资源池,通过为各类应用对象提供资源,以支持不同的功能和服务的运行。当应用对象上下线,集群中会出现不可被分配出去的资源,造成集群中的宿主机出现资源碎片,碎片可能出现在多个维度(如显存、算力),任何一个维度的资源分配不合理,都可能导致其他资源成为碎片,造成浪费,为了提高资源利用率,需要对服务器进行资源调度、碎片整理,达到负载均衡。按照在调度部署时是否有待分配的容器,调度场景可分为增量场景和全量场景。
进一步地,增量场景,表示存在待分配容器,可以在线实时分配,通过对当前集群上已经运行的容器进行迁移从而为新的需求腾挪空间;全量场景,表示无待分配容器,可以做离线碎片整理,对服务器资源进行整理以腾挪出空闲主机。
全量场景的资源调度面向的对象均为服务器中已部署的容器,相比之下,增量场景增加了待分配的容器,优先为待分配容器找到合适的宿主机进行部署,此场景会触发对已部署容器的腾挪。
因此,服务器资源调度可以分为增量调度场景和全量调度场景。
具体地,如图6所示,根据获取到的状态快照,识别服务器集群调度场景为增量场景或全量场景。调度场景的识别,即判断依据于集群状态快照中的调度容器队列中是否有请求待分配的容器应用对象,若有,则为增量场景;否则,则为全量场景。
当调度场景为增量场景时,将增量场景容器队列中待分配的容器视为预先放置在一个最高优先级、容量无限大的虚拟主机中,通过迁移尽可能减少虚拟主机中的容器,将增量场景转化为尽量清空虚拟主机的全量场景。
具体地,如图3所示,将增量场景转化为全量场景,包括如下步骤:
(a1)识别增量场景:原本的增量场景中,新请求的待部署容器在容器队列中等待调度,需要待部署到适合的宿主机上。
(a2)设置虚拟主机:设置一个具有最高优先级、无限大容量的虚拟主机,将容器队列中的容器放置(不考虑容器间互斥等约束)在其中,通过宿主机间的迁移尽量清空虚拟机,完成将增量场景转化为全量场景的步骤。
反之,当调度场景不为增量场景(即调度场景为全量场景)时,将所有宿主机按优先级进行降序排列。
具体地,根据服务器的资源价值(例如异构机型相较其他资源更贵)、服务器资源占用状态、服务器资源使用率、部署的容器数、是否为异构机型、预先指定的优先级等标准,计算宿主机的优先级,然后对在运行的服务器按优先级进行降序排序,供后续操作使用。其中,对服务器i其优先级的计算公式为:
(3)在降序排列的宿主机中选择一台宿主机作为源宿主机,应用弹射链方法和蒙特卡洛树搜索方法判断源宿主机上的容器是否可以全部迁移至其它低优先级的宿主机,若能全部迁出,则执行迁移动作清空宿主机并将该宿主机的状态标记为“空闲”;否则,将该宿主机的状态标记为 “不可清空”。
本实施例中,弹射链方法用于判断指定容器是否能迁移至其它服务器并获取最佳迁移方案,其中,最佳迁移方案是指通过蒙特卡洛树搜索流程得到的最优调度结果所对应的最佳迁移动作。
迁移动作是指将请求对象容器从其源宿主机迁移到目标宿主机所对应的操作。
最优迁移链是将迁移动作按照先进后出顺序连接构成的栈结构的链条,且各迁移动作依次执行的总迁移代价最低。
本实施例中,蒙特卡洛树搜索方法用于提高迁移的可预见性,可以扩大搜索域。
具体地,结合图2所示,若能全部迁出,执行的相应操作具体为:从宿主机2中选择一个容器C3,将其弹射出宿主机2,紧接着需要为该容器选择一个新的宿主机3,并进行迁移(step 1),由此宿主机2中出现了释放的资源,可以容纳一个新的容器,因此将宿主机1中的容器C1迁移(step 2)到宿主机2。如此,构成了一条长度为2的迁移链,清空了高优先级的宿主机1。
(3.1)在降序排列的宿主机中选择一台宿主机作为源宿主机,选择源宿主机上的一个容器进行弹射链操作。
应当理解的是,需要依次遍历步骤(2)中降序排列的宿主机,在每个循环中选择一台宿主机,对该宿主机上的容器依次进行弹射链操作,如图4所示。
(3.2)在当前集群状态下,对选定的容器使用蒙特卡洛树搜索找到最佳迁移方案。
应当理解的是,“在运行”的宿主机上至少有一个容器,当仅有一个容器时,选定的容器就是当前这个容器;当有多个容器时,需要对多个容器依次进行弹射链操作,例如,当选择第一个容器进行弹射链操作时,那么选定的容器指的就是第一个容器,当选择第四个容器进行弹射链操作时,那么选定的容器指的就是第四个容器。
(3.2.1)将选定的容器和集群状态作为搜索树的根节点,其中,搜索树是以集群状态为节点、迁移动作为边的多叉树数据结构。例如,搜索树如图7所示,其中,根节点为0号节点。
(3.2.2)判断当前是否还有搜索预算,若有搜索预算,则进入下一步;否则,则停止搜索过程并返回已得到的搜索树的最佳迁移动作,根据最佳迁移动作获取最佳迁移方案,如图5所示。
具体地,根据算法设计,搜索预算是一个有限的资源,可通过实数(例如,迭代次数)表示,在搜索流程中,每一轮会使其数值减少,当该数值小于等于0时,代表搜索预算耗尽,表示没有搜索预算,即可停止搜索过程。
(3.2.3)从根节点出发,判断当前节点是否为叶子节点,若是,则选择当前节点作为叶子节点,并进入下一步;否则,则当前节点存在子节点,根据节点的UCT值选择最小值的子节点作为当前节点,并返回当前步骤。
很容易理解的是,直至找到叶子节点,即可跳出当前循环。
本实施例中,节点属性中包括“子节点”列表,若其内容为空,则表示当前节点为叶子节点。
本实施例中,UCT值是指根据上限置信区间算法 (Upper Confidence Bounds ToTrees)计算得到的节点得分。UCT的表达式为:
示例性地,以图7示意图选择步骤为例,从0号根节点出发,根据子节点判断和UCT值选择,先选定1号节点,再选择了5号节点,为当前最优节点,即为叶子节点。
(3.2.4)判断步骤(3.2.3)中得到的叶子节点的状态是否为终止状态,若为终止状态,则当前的叶子节点的状态不存在候选迁移动作,并直接进入下一步;否则,则获取该状态下的候选迁移动作,从中随机选择一个动作,执行该动作,产生新的状态并创建新的节点,加入当前节点的子节点列表,以获取扩展节点。
具体地,终止状态是指当前节点所代表的集群中各宿主机资源利用率达到阈值区间的紧凑要求(例如,磁盘利用率阈值区间设定为最低80%-最高90%)。若叶子节点达到该紧凑要求,即达到终止状态。应当理解的是,当各资源无法同时满足该要求时,满足高优先级的资源紧凑要求,即代表达到终止状态。
其中,若当前的叶子节点的状态未到达终止状态,这代表该被选节点的状态可以通过迁移动作继续变换到其他状态,获取该状态下的候选迁移动作,从中随机选择一个动作,执行该动作,产生新的状态并创建新的节点,加入当前节点的子节点列表,作为扩展节点返回给下一操作,此时,创建的新节点即为扩展节点。
示例性地,在图7示意图扩展步骤中,选中的5号节点不为终止状态,从其候选迁移动作中选取一个动作,产生9号节点,作为扩展节点,执行接下来的模拟步骤。
(3.2.5)通过贪心规则快速模拟调度迁移动作至终止状态,以得到模拟得分。
具体地,首先将叶子节点或者扩展节点作为当前节点,获取当前节点的当前状态下的候选迁移动作列表;然后快速随机选择动作执行到下一状态,直到终止状态;最后对于模拟得到的终止状态进行评估,获得叶子节点或者扩展节点的模拟得分。应当理解的是,将叶子节点作为当前节点的时候,由于根据步骤(3.2.4)得到的叶子节点的状态此时已经处于终止状态,前述步骤不需要再进行,只需要对叶子节点的终止状态进行评估,获取叶子节点的模拟得分即可。
本实施例中,模拟得分指的是节点的状态到终止状态时的迁移成本总和。
进一步地,迁移成本总和指的是将集群状态改变至终止状态的迁移动作的成本之和。
更进一步地,迁移动作的成本是指将容器从源宿主机迁移到目标宿主机的成本。
示例性地,在图7示意图模拟步骤中,通过贪心规则快速模拟调度,到达终止状态,计算得分(以△表示)。
(3.2.6)从当前节点开始将模拟得到的分数沿搜索树向上传播,以对蒙特卡洛树搜索进行反向传播。
(3.2.6.1)判断当前节点是否为根节点,若是,则停止反向传播过程;否则,对当前节点更新模拟分数和模拟次数。
(3.2.6.2)将当前节点的父节点作为下一次反向传播的节点。
(3.2.6.3)将步骤(3.2.6.2)得到的下一次反向传播的节点作为当前节点,返回步骤(3.2.6.1)。
示例性地,在图7示意图反向传播步骤中,沿着此前的0-1-5-9的反方向9-5-1-0,逐步将模拟得分更新给各节点,完成一轮蒙特卡洛树搜索循环,进入下一循环。
(3.2.7)返回步骤(3.2.2)。
应当理解的是,本步骤返回步骤(3.2.2),然后循环步骤(3.2.2)-步骤(3.2.6),直到耗尽搜索预算,停止搜索过程,并将已得到的搜索树的最佳迁移动作返回给弹射链流程,此时,最佳迁移动作所对应的就是如图5所示使用蒙特卡洛树搜索找到的最佳迁移方案。
(3.3)判断最佳迁移方案是否可行,若迁移方案可行,则记录迁移方案,选择一个新的容器进行弹射链操作,返回步骤(3.2),直至源宿主机上的所有容器均已完成弹射链操作为止,并执行迁移方案对应的迁移动作,以清空宿主机并将该宿主机的状态标记为“空闲”;若迁移方案不可行,则对迁移方案的目标宿主机进行资源约束松弛。
应当理解的是,当迁移方案可行的时候,仅需要记录该迁移方案,将源宿主机上的所有容器都判断完成以后,再依次执行迁移方案所对应的迁移动作。
示例性地,对于A(30/100){a1(20),a2(50)},宿主机A的容量为100,它的剩余容量为30,宿主机A上部署有两个容器a1、a2,使用弹射链方法,依次判断a1和a2是否可迁出,即二者对应的迁移方案是否可行。每一次判断之后,不进行迁移,仅仅记录对应的迁移方案;若a1和a2都判断完,都可以迁移,再依次执行迁移操作。假设a1判断完,可以迁移,随即进行迁移操作;再判断a2,若a2不能迁移,那么宿主机A仍然不能清空,即不能将所有容器迁出、不能回到空闲状态。那么a1的迁移是无效的。所以当所有容器都弹射判断可以迁移后,再执行操作。
(3.4)判断松弛对应的方案是否可行,若可行,则将弹射深度减一,选择目标宿主机中的容器作为待操作容器,将待操作容器作为选定的容器返回所述步骤(3.2);若不可行,则返回空值,将当前宿主机的状态标记为“不可清空”。
应当理解的是,空值表示无可行迁移方案,容器不可迁移到其他低优先级宿主机中。
本实施例中,松弛是指对资源约束进行一定的放松,即暂时不考虑资源约束条件,所对应的方案就是松弛方案。
示例性地,有两个服务器A、B,容量分别为100、75,各自已经部署有容器(资源需求):a1(20)、a2(50)、b1(30)、b2(40),使用 A(30/100){a1(20),a2(50)}、B(5/75){b1(30),b2(40)}表示服务器资源使用情况。那么,第一种情况,将b1(30)从B迁移到A,由于“A剩余容量30 ≥ b1需求30”,该迁移方案是可行的;第二种情况,将a1(20)从A迁移到B的迁移方案是不可行的,因为“B剩余容量5 < a1需求20”。故对第二种情况下的目标宿主机进行资源约束松弛,即暂时不考虑服务器B的剩余容量仅为5的条件,将a1迁移到B,那么当前服务器资源使用情况为:A(50/100){ a2(50)},B(-15/75){b1(30),b2(40),a1(20)}。
由于引入了松弛,B剩余容量为-15仍然是可行的。接下来,由于a1的迁入引发弹射,将B中的一个容器(b1或b2,根据算法决定,本例子随意选取b1)弹射出容器,迁移至其他服务器C,则B的状态变为B(15/75){b2(40),a1(20)},此时取消其松弛,B的剩余容量15≥0,满足可行条件,则该松弛方案“将a1从A迁移至B再将b1迁移至C”是可行的,则返回一个堆栈;反之如果在弹射b1后B的剩余容量仍然小于0,则该松弛方案不可行。
另外,因为堆栈是先进后出的,则实际操作顺序是相反的,即先将b1从B迁移到C,此时状态变为B(35/75){b2(40)},然后将a1从A迁移到B,此时状态变为A(50/100){a2(50)},B(15/75){a1(20),b2(40)}。
以上两次判断均需(递归)调用蒙特卡洛树搜索的方法来寻找可行的迁移方案。第二次的弹射深度需要减1。
以上操作中,为将a1从A迁移到B,实际上需要两步迁移操作:先将b1从B迁出,预留一部分空间;然后将a1从A迁移到B。
迁移链长度是最多允许的迁移步数,和弹射深度有对应关系。通过限制迁移链的长度,可以加速容器的部署和迁移,快进快出。
(4)重复步骤(3),直至降序排列的所有宿主机的容器是否可以全部迁移的判断完成为止。
本发明将增量场景中待分配的容器视为预先放置在一个容量无限大的虚拟主机中,通过迁移尽可能减少虚拟主机中的容器,将增量场景转化为尽量清空虚拟主机的全量场景,在保证效果的基础上合并简化了调度方法在不同场景中的应用,达到了方法的复用。其次,通过获取当前时刻的集群状态快照;再根据状态快照,获取服务器集群中的所有“在运行”的宿主机集合,并根据优先级进行降序排列;依次遍历所排序的宿主机集合,对每台宿主机,通过弹射链方法,依次判断所部署的容器是否可迁移至其它低优先级的宿主机;对当前宿主机,若所有容器均可迁出,则执行相应操作将该服务器标记为“已清空”并调整至“空闲”,否则标记为“不可清空”,弹射堆栈的迁移路径保证了方案的可执行性。本发明对服务器集群的资源进行整理,提高了服务器资源的使用率,优化集群性能,降低空闲服务器功耗,有助于实现数据中心的低碳节能、绿色环保的追求。
值得一提的是,本发明实施例还提供了一种服务器集群资源的统一调度装置。
参见图8,该统一调度装置包括多台服务器、服务器资源监控装置、服务器能耗监测装置、识别装置、容器调度迁移决策装置和执行装置。
其中,多台服务器组成了集群,用于提供运行环境;服务器资源监控装置用于实时监测服务器各种资源的使用情况,采集宿主机和容器的资源数据的状态快照;服务器能耗监测装置用于实时监测当前服务器的能耗状态;识别装置用于从多台服务器中选择一台或多台作为目标宿主机;容器调度迁移决策装置可以根据请求容器的资源消耗量及约束,从候选宿主机中选择最匹配的宿主机,生成调度和迁移方案;执行装置用于将容器调度迁移决策装置的决策方案的中的容器和宿主机进行绑定并执行该决策方案。
上述统一调度装置中各个装置单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被执行时,实现上述实施例中的服务器集群资源的统一调度方法。
可选地,在本实施例中,所述计算机可读存储介质可以用于保存前述实施例所提供的服务器集群资源的统一调度方法所执行的程序代码。
所述计算机可读存储介质可以是任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(FlashCard)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。所述计算机可读存储介质包括U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种服务器集群资源的统一调度方法,其特征在于,包括以下步骤:
(1)确定服务器集群中在运行的所有宿主机,获取集群状态快照;
(2)根据状态快照判断服务器集群调度场景是否为增量场景,若是增量场景,则将待分配的容器视为预先放置在一个最高优先级、容量无限大的虚拟主机中,以将增量场景转化为全量场景并将所有宿主机按优先级进行降序排列;若不是增量场景,则直接将所有宿主机按优先级进行降序排列;
(3)在降序排列的宿主机中选择一台宿主机作为源宿主机,应用弹射链方法和蒙特卡洛树搜索方法判断源宿主机上的容器是否可以全部迁移至其它低优先级的宿主机,若能全部迁出,则执行迁移动作清空宿主机并将该宿主机的状态标记为“空闲”;否则,将该宿主机的状态标记为“不可清空”;
(4)重复所述步骤(3),直至降序排列的所有宿主机的容器是否可以全部迁移的判断完成为止。
2.根据权利要求1所述的服务器集群资源的统一调度方法,其特征在于,所述步骤(1)包括以下子步骤:
(1.1)获取服务器集群中的宿主机信息,宿主机信息包括宿主机的状态以及宿主机与容器的容斥信息、资源占用情况;所述宿主机的状态分为“空闲”或者“在运行”;
(1.2)获取各宿主机上已部署的容器信息,所述容器信息包括与请求对象容器的容斥信息;
(1.3)根据宿主机的状态为“在运行”,获取集群状态快照。
3.根据权利要求1或2所述的服务器集群资源的统一调度方法,其特征在于,所述状态快照为某时刻采集到的集群运行状态,包括:在各宿主机中部署的容器信息、各项资源使用量、各项资源使用率和集群调度队列信息。
4.根据权利要求1所述的服务器集群资源的统一调度方法,其特征在于,所述步骤(2)中获取宿主机的优先级的方法具体为:根据服务器的资源价值、服务器资源占用状态、服务器资源使用率、部署的容器数、是否为异构机型和预先指定的优先级标准,计算宿主机的优先级。
5.根据权利要求1所述的服务器集群资源的统一调度方法,其特征在于,所述步骤(3)包括以下子步骤:
(3.1)在降序排列的宿主机中选择一台宿主机作为源宿主机,选择源宿主机上的一个容器进行弹射链操作;
(3.2)在当前集群状态下,对选定的容器使用蒙特卡洛树搜索找到最佳迁移方案;
(3.3)判断最佳迁移方案是否可行,若迁移方案可行,则记录迁移方案,选择一个新的容器进行弹射链操作,返回所述步骤(3.2),直至源宿主机上的所有容器均已完成弹射链操作为止,并执行迁移方案对应的迁移动作,以清空宿主机并将该宿主机的状态标记为“空闲”;若迁移方案不可行,则对迁移方案的目标宿主机进行资源约束松弛;
(3.4)判断松弛对应的方案是否可行,若可行,则将弹射深度减一,选择目标宿主机中的容器作为待操作容器,将待操作容器作为选定的容器返回所述步骤(3.2);若不可行,则返回空值,将当前宿主机的状态标记为“不可清空”。
6.根据权利要求5所述的服务器集群资源的统一调度方法,其特征在于,所述步骤(3.2)包括以下子步骤:
(3.2.1)将选定的容器和集群状态作为搜索树的根节点,其中,所述搜索树是以集群状态为节点、迁移动作为边的多叉树数据结构;
(3.2.2)判断当前是否还有搜索预算,若有搜索预算,则进入下一步;否则,则停止搜索过程并返回已得到的搜索树的最佳迁移动作,根据最佳迁移动作获取最佳迁移方案;
(3.2.3)从根节点出发,判断当前节点是否为叶子节点,若是,则选择当前节点作为叶子节点,并进入下一步;否则,则当前节点存在子节点,根据节点的UCT值选择最小值的子节点作为当前节点,并返回当前步骤;
(3.2.4)判断步骤(3.2.3)中得到的叶子节点的状态是否为终止状态,若为终止状态,则当前的叶子节点的状态不存在候选迁移动作,并直接进入下一步;否则,则获取该状态下的候选迁移动作,从中随机选择一个动作,执行该动作,产生新的状态并创建新的节点,加入当前节点的子节点列表,以获取扩展节点;
(3.2.5)通过贪心规则快速模拟调度迁移动作至终止状态,以得到模拟得分;
(3.2.6)从当前节点开始将模拟得到的分数沿搜索树向上传播,以对蒙特卡洛树搜索进行反向传播;
(3.2.7)返回步骤(3.2.2)。
7.根据权利要求6所述的服务器集群资源的统一调度方法,其特征在于,所述步骤(3.2.6)包括以下子步骤:
(3.2.6.1)判断当前节点是否为根节点,若是,则停止反向传播过程;否则,对当前节点更新模拟分数和模拟次数;
(3.2.6.2)将当前节点的父节点作为下一次反向传播的节点;
(3.2.6.3)将所述步骤(3.2.6.2)得到的下一次反向传播的节点作为当前节点,返回所述步骤(3.2.6.1)。
8.根据权利要求1所述的服务器集群资源的统一调度方法,其特征在于,所述弹射链方法用于判断指定容器是否能迁移至其它宿主机并获取最佳迁移方案;所述蒙特卡洛树搜索方法用于提高迁移的可预见性并扩大搜索域。
9.一种服务器集群资源的统一调度装置,用于实现权利要求1-8中任一项所述的服务器集群资源的统一调度方法,其特征在于,所述统一调度装置包括:
多台服务器,组成了集群,用于提供运行环境;
服务器资源监控装置,用于实时监测服务器各种资源的使用情况,采集宿主机和容器的资源数据的状态快照;
服务器能耗监测装置,用于实时监测当前服务器的能耗状态;
识别装置,用于从多台所述服务器中选择一台或多台作为目标宿主机;
容器调度迁移决策装置,用于根据请求容器的资源消耗量及约束从候选宿主机中选择最匹配的宿主机,以生成调度和迁移方案;和
执行装置,用于将所述容器调度迁移决策装置的决策方案的中的容器和宿主机进行绑定并执行该决策方案。
10.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被执行时,用于实现权利要求1-8中任一项所述的服务器集群资源的统一调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310247734.9A CN115952008B (zh) | 2023-03-15 | 2023-03-15 | 一种服务器集群资源的统一调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310247734.9A CN115952008B (zh) | 2023-03-15 | 2023-03-15 | 一种服务器集群资源的统一调度方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115952008A true CN115952008A (zh) | 2023-04-11 |
CN115952008B CN115952008B (zh) | 2023-06-16 |
Family
ID=85891462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310247734.9A Active CN115952008B (zh) | 2023-03-15 | 2023-03-15 | 一种服务器集群资源的统一调度方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115952008B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041264A (zh) * | 2023-10-08 | 2023-11-10 | 广东省科技基础条件平台中心 | 一种基于数据处理的区块链资源管理系统及方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104010028A (zh) * | 2014-05-04 | 2014-08-27 | 华南理工大学 | 一种云平台下性能加权的虚拟资源动态管理策略方法 |
US20150081911A1 (en) * | 2013-09-18 | 2015-03-19 | Sap Ag | Migration event scheduling management |
CN109358964A (zh) * | 2018-09-21 | 2019-02-19 | 中建材信息技术股份有限公司 | 一种服务器集群资源调度方法 |
CN110457131A (zh) * | 2019-07-31 | 2019-11-15 | 华中科技大学 | 基于Docker容器的电力系统超算平台任务调度方法 |
CN110780998A (zh) * | 2019-09-29 | 2020-02-11 | 武汉大学 | 基于Kubernetes的动态负载均衡资源调度方法 |
US20200272511A1 (en) * | 2019-02-26 | 2020-08-27 | Sap Se | Server resource orchestration based on application priority |
CN112199193A (zh) * | 2020-09-30 | 2021-01-08 | 北京达佳互联信息技术有限公司 | 资源调度方法、装置、电子设备和存储介质 |
CN113760553A (zh) * | 2021-09-09 | 2021-12-07 | 中山大学 | 一种基于蒙特卡洛树搜索的混部集群任务调度方法 |
CN114356515A (zh) * | 2021-12-15 | 2022-04-15 | 联奕科技股份有限公司 | 一种数据转换任务的调度方法 |
CN114900522A (zh) * | 2022-05-11 | 2022-08-12 | 重庆大学 | 一种基于蒙特卡洛树搜索的服务功能链迁移方法 |
CN115391023A (zh) * | 2021-05-25 | 2022-11-25 | 中移雄安信息通信科技有限公司 | 多任务容器集群的计算资源优化方法及装置 |
-
2023
- 2023-03-15 CN CN202310247734.9A patent/CN115952008B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150081911A1 (en) * | 2013-09-18 | 2015-03-19 | Sap Ag | Migration event scheduling management |
CN104010028A (zh) * | 2014-05-04 | 2014-08-27 | 华南理工大学 | 一种云平台下性能加权的虚拟资源动态管理策略方法 |
CN109358964A (zh) * | 2018-09-21 | 2019-02-19 | 中建材信息技术股份有限公司 | 一种服务器集群资源调度方法 |
US20200272511A1 (en) * | 2019-02-26 | 2020-08-27 | Sap Se | Server resource orchestration based on application priority |
CN110457131A (zh) * | 2019-07-31 | 2019-11-15 | 华中科技大学 | 基于Docker容器的电力系统超算平台任务调度方法 |
CN110780998A (zh) * | 2019-09-29 | 2020-02-11 | 武汉大学 | 基于Kubernetes的动态负载均衡资源调度方法 |
CN112199193A (zh) * | 2020-09-30 | 2021-01-08 | 北京达佳互联信息技术有限公司 | 资源调度方法、装置、电子设备和存储介质 |
CN115391023A (zh) * | 2021-05-25 | 2022-11-25 | 中移雄安信息通信科技有限公司 | 多任务容器集群的计算资源优化方法及装置 |
CN113760553A (zh) * | 2021-09-09 | 2021-12-07 | 中山大学 | 一种基于蒙特卡洛树搜索的混部集群任务调度方法 |
CN114356515A (zh) * | 2021-12-15 | 2022-04-15 | 联奕科技股份有限公司 | 一种数据转换任务的调度方法 |
CN114900522A (zh) * | 2022-05-11 | 2022-08-12 | 重庆大学 | 一种基于蒙特卡洛树搜索的服务功能链迁移方法 |
Non-Patent Citations (3)
Title |
---|
KAI LI; CHUNLEI CHANG; KAI YUN; JIANYE ZHANG: "\"Research on Container Migration Mechanism of Power Edge Computing on Load Balancing\"", 《2021 IEEE 6TH INTERNATIONAL CONFERENCE ON CLOUD COMPUTING AND BIG DATA ANALYTICS (ICCCBDA)》 * |
季莉莉;李烨;: "云环境下基于迁移的虚拟机集群优化算法", 电子科技 * |
尹飞;龙玲莉;孔峥;邵涵;李鑫;钱柱中: ""面向动态负载的集群容器部署方法"", 《 计算机应用》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041264A (zh) * | 2023-10-08 | 2023-11-10 | 广东省科技基础条件平台中心 | 一种基于数据处理的区块链资源管理系统及方法 |
CN117041264B (zh) * | 2023-10-08 | 2024-01-12 | 广东省科技基础条件平台中心 | 一种基于数据处理的区块链资源管理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115952008B (zh) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103136243B (zh) | 基于云存储的文件系统去重方法及装置 | |
CN115220918A (zh) | 一种神经网络的内存分配方法及装置 | |
CN112416585B (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
CN109901786B (zh) | 数据迁移方法、系统、装置及计算机可读存储介质 | |
CN109146081B (zh) | 一种用于机器学习平台中创建模型项目的方法及装置 | |
CN104133775A (zh) | 一种用于管理存储器的方法和装置 | |
CN108153594B (zh) | 一种人工智能云平台的资源碎片整理方法及电子设备 | |
US10838767B2 (en) | Distributed computing utilizing a recovery site | |
CN106055622A (zh) | 一种数据搜索方法及系统 | |
CN115952008A (zh) | 一种服务器集群资源的统一调度方法和装置 | |
CN109558456A (zh) | 一种文件迁移方法、装置、设备及可读存储介质 | |
CN111930716A (zh) | 一种数据库扩容方法、装置及系统 | |
CN111143039A (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
Liu et al. | An improved hadoop data load balancing algorithm | |
JP5515889B2 (ja) | 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム | |
CN113609090B (zh) | 数据存储方法及装置、计算机可读存储介质、电子设备 | |
JPWO2014033882A1 (ja) | 稼働管理装置、稼働管理方法、及び稼働管理プログラム | |
CN113407343A (zh) | 一种基于资源分配的业务处理方法、装置及设备 | |
CN106293509A (zh) | 数据存储方法及系统 | |
CN107168795B (zh) | 基于cpu-gpu异构复合式并行计算框架的密码子偏差系数模型方法 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN103250139B (zh) | 一种迁移计算节点的方法及装置 | |
CN112631994A (zh) | 数据迁移方法及系统 | |
Shabeera et al. | A novel approach for improving data locality of mapreduce applications in cloud environment through intelligent data placement | |
Tiwari et al. | A PREDICTION BASED MULTI-PHASES LIVE MIGRATION APPROACH TO MINIMIZE THE NUMBER OF TRANSFERRED PAGES, IN CLOUD COMPUTING ENVIRONMENT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |