一种资源调度方法与设备与流程

文档序号:11386260阅读:234来源:国知局
一种资源调度方法与设备与流程

本申请涉及计算机领域,尤其涉及一种资源调度技术。



背景技术:

在云产业中,用户根据自己的需求可购买各式各样的服务。就云产业的底层基础建设而言,每一个服务实际上是按用户需求分配一定资源(cpu、内存、磁盘等可消耗型资源)的虚拟机或者应用程序,又称实例。这些实例分配被承载于实际的物理主机上。大部分用户会拥有多个同种类型或者不同类型的服务。实例资源使用量的动态性,使得集群内主机的资源使用量不均衡,资源使用量高的主机因资源竞争导致故障频发,资源使用量低的主机存在资源浪费。如何合理分配这些实例,使云处于一个良性的环境里,将每台主机的资源都合理地控制在一个稳态中,在遇到异常时将风险降至最低,是影响用户体验的重要问题,也是云计算资源调度的关注点。

然而,现有的云计算资源调度技术普遍没有考虑到用户在物理主机上的分布状况,仅仅是根据资源的现有状况来进行调度。如此进行资源调度会导致将同用户下的所有实例集中在某台或者少许物理主机上,而一旦这些主机发生故障,该用户的所有实例均会受到影响,无法保障服务质量,影响用户体验。



技术实现要素:

本申请的一个目的是提供一种资源调度方法与设备,以解决用户实例分布不均衡的问题。

根据本申请的一个方面,提供了一种资源调度方法,其中,该方法包括:

遍历集群内用户在各主机的用户实例分布;

检测是否满足调整所述用户实例分布的用户调度触发条件;

若满足所述用户调度触发条件,确定对应的一个或多个待迁出用户主机,其中,每个待迁出用户主机上包括至少一个待迁出用户实例;

将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机。

根据本申请的另一个方面,提供了一种资源调度设备,其中,该设备包括:

遍历装置,用于遍历集群内用户在各主机的用户实例分布;

用户检测装置,用于检测是否满足调整所述用户实例分布的用户调度触发条件;

用户确定装置,用于若满足所述用户调度触发条件,确定对应的一个或多个待迁出用户主机,其中,每个待迁出用户主机上包括至少一个待迁出用户实例;

用户迁移装置,用于将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机。

此外,本申请还提供了一种资源调度设备,所述设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:遍历集群内用户在各主机的用户实例分布;检测是否满足调整所述用户实例分布的用户调度触发条件;若满足所述用户调度触发条件,确定对应的一个或多个待迁出用户主机,其中,每个待迁出用户主机上包括至少一个待迁出用户实例;以及将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机。

与现有技术相比,本申请通过遍历集群内用户在各主机的用户实例分布,检测是否满足调整所述用户实例分布的用户调度触发条件,当满足所述用户调度触发条件将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机;本申请基于用户在各主机上的用户实例分布来进行资源调度,从而实现用户实例的均衡分布,避免将同用户的所有用户实例集中于少数主机上,增加防范风险的能力,提升用户体验。进一步地,本申请通过按待迁出用户实例的优先级降序将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机,优化资源调度方案。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请一个方面的一种资源调度方法流程图;

图2示出根据本申请一个优选实施例的一种资源调度方法流程图;

图3示出根据本申请另一个方面的一种资源调度设备示意图;

图4示出根据本申请一个优选实施例的一种资源调度设备示意图;

图5为采用本申请实施例提供的资源调度方法实现资源调度的一种云计算资源的调度系统的示意图;

图6为云计算资源的调度系统进行资源调度时的处理流程图;

图7为本申请实施例提供的另一种资源调度设备的示意图;

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

图1示出根据本申请一个方面的一种资源调度方法流程图。

该方法包括步骤s11、步骤s12、步骤s13和步骤s14。具体地,在步骤s11中,资源调度设备1遍历集群内用户在各主机的用户实例分布;步骤s12中,资源调度设备1检测是否满足调整所述用户实例分布的用户调度触发条件;步骤s13中,资源调度设备1若满足所述用户调度触发条件,确定对应的一个或多个待迁出用户主机,其中,每个待迁出用户主机上包括至少一个待迁出用户实例;步骤s14中,资源调度设备1将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机。

在此,所述资源调度设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、ios操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(asic)、可编程门阵列(fpga)、数字处理器(dsp)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、vpn网络、无线自组织网络(adhoc网络)等。优选地,资源调度设备1还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述资源调度设备1仅为举例,其他现有的或今后可能出现的资源调度设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

资源调度设备1的各个步骤之间是持续不断工作的。具体地,在步骤s11中,资源调度设备1持续遍历集群内用户在各主机的用户实例分布;在步骤s12中,资源调度设备1持续检测是否满足调整所述用户实例分布的用户调度触发条件;在步骤s13中,若满足所述用户调度触发条件,资源调度设备1持续确定对应的一个或多个待迁出用户主机;在步骤s14中,资源调度设备1持续将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机;直至所述资源调度设备1停止工作。

在步骤s11中,资源调度设备1遍历集群内用户在各主机的用户实例分布。

在具体的实施例中,所述用户实例包括在物理机器上分配的虚拟机器或者应用程序;在云产业中,所述用户实例对应于用户购买的服务产品(例如一定量的cpu、内存、磁盘等可消耗型资源)。所述主机指的是物理机器,用于承载若干个所述用户实例。所述集群包括具有相同属性的所述主机的集合。在此,可以采用多种方式进行遍历,例如,按照用户拥有所述用户实例资源的数量由多至少的顺序对集群内所有用户进行遍历,也可以按照用户创建的时间由早至晚的顺序对集群内所有用户进行遍历等。

在优选的实施例中,通过遍历集群内的所有用户,获取每个用户在集群内各主机上的用户实例分布。在此,还获取所述主机、用户实例的消耗型资源(cpu、内存、磁盘等)使用状况以及各用户最大可利用的消耗型资源(即用户购买的服务产品,例如,用户可以选择购买2核cpu、2g内存、500g磁盘的服务规格)。并依此确定每个用户的所述用户实例的均衡期望值、偏离值,以及所述集群的主机资源的均衡期望值、偏离值。

例如,假设集群中有n台主机,对于用户u,其所购买的实例资源总数为i,那么u的所述用户实例的均衡期望值为:

e=[i/n]

即实例资源在集群内各主机上的均值,在此取整数。假设用户u在集群中n台主机{h1,h2,…,hn}上用户拥有的实例数分别为{ih1,ih2,…,ihn},那么所述用户实例的偏离值为:

假设集群中的n台主机的最大可消耗资源分别为{rh1,rh2,…,rhn},当前资源使用量为{urh1,urh2,…,urhn},那么所述集群的主机资源的均衡期望值为:

即该集群资源使用总量与其最大可消耗资源总量之比。所述集群的主机资源的偏离值为:

在步骤s12中,资源调度设备1检测是否满足调整所述用户实例分布的用户调度触发条件。

在此,若所述用户实例分布不够均衡,则可能达到所述用户调度触发条件。

优选地,所述用户调度触发条件包括以下至少任一项:所述用户实例分布中至少一个用户实例高于对应的用户实例阈值信息;所述用户实例分布中至少一个用户实例的偏离值高于对应的用户实例预警阈值信息;所述用户实例分布中至少一个用户实例高于对应的用户实例均衡上限。

例如,接上例,根据用户在集群内各主机的用户实例分布,通过标准差公式计算得到所述用户实例的偏离值,将所述用户实例的偏离值与预定的用户实例预警阈值信息进行比对,确定是否满足所述用户调度触发条件。所述用户实例均衡上限包括所述用户实例均衡区间的上限,例如可以通过下述公式计算所述用户实例均衡区间的上限和下限:用户实例均衡区间上限=用户实例的均衡期望值+预定系数*用户实例的偏离值;用户实例均衡区间下限=用户实例的均衡期望值-预定系数*用户实例的偏离值。其中,若用户实例分布高于所述用户实例均衡区间上限,表明该用户在此台主机上的负载过重;若用户实例分布低于所述用户实例均衡区间下限,表明该用户在此台主机上的负载过轻;若用户实例分布位于所述用户实例均衡区间内(即低于所述用户实例均衡区间上限且高于所述用户实例均衡区间下限),表明该用户在此台主机上的分布是均衡的。在此,还可为用户实例设定所述用户实例阈值信息,例如不能超过用户购买的服务规格。

在步骤s13中,资源调度设备1若满足所述用户调度触发条件,确定对应的一个或多个待迁出用户主机,其中,每个待迁出用户主机上包括至少一个待迁出用户实例。

例如,将满足所述用户调度触发条件的所述用户放入待调度用户列表。根据待调度用户列表中的每位用户在各主机上的用户实例分布,与所述用户实例均衡区间进行比对;若用户实例分布高于其用户实例均衡区间上限,则将该实例所在的主机放入待迁出用户主机列表。

在步骤s14中,资源调度设备1将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机。

例如,接上例,若用户实例分布高于其用户实例均衡区间上限,则该实例为待迁出用户实例;若用户实例分布低于其用户实例均衡区间下限,则将该实例所在的主机放入待迁入用户主机列表。在此,将所述待迁出用户主机上的待迁出用户实例迁移至所述待迁入用户主机。

优选地,在步骤s14中,资源调度设备1按待迁出用户实例的优先级降序将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机。

在具体的实施例中,对于待调度用户列表中的每位用户,按待迁出用户实例的优先级降序,依次将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机。

更优选地,该方法还包括:根据以下至少任一项确定所述待迁出用户实例的优先级:用户待迁出实例的数量信息;用户各实例间的均衡信息;用户实例的资源消耗信息。

例如,用户待迁出实例的数量越多优先级越高,用户各实例间的均衡性越差(例如所述用户实例的偏离值越高)优先级越高,用户实例的资源(cpu、内存、磁盘等)消耗越多优先级越高。

优选地,所述待迁入用户主机包括所述集群中的空闲主机或待迁入用户实例对应的用户可迁入主机。

例如,所述空闲主机包括所述用户实例分布为零的主机;所述可迁入主机包括所述用户实例分布不为零,但是低于其用户实例均衡区间上限的主机。

更优选地,在步骤s14中,资源调度设备1将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机,以使得所述待迁入用户主机在接受所述待迁出用户实例后的主机资源消耗小于或等于对应的消耗资源均衡期望阈值。

在优选的实施例中,对于待调度用户列表中的每位用户,其待迁入用户主机包括所述集群中的空闲主机子群和可迁入主机子群,优先迁入空闲主机子群。对于可迁入主机子群,按照主机消耗资源使用状况由低至高排序,优先迁入主机资源消耗较低的主机。并保证在所述用户实例迁入所述待迁入用户主机后,主机资源消耗小于或等于对应的消耗资源均衡期望阈值(即所述用户实例均衡区间上限)。若不存在对应的待迁入用户主机(例如用户实例分布低于其用户实例均衡区间上限的主机),则对该用户实例不进行迁移。

图2示出根据本申请一个优选实施例的一种资源调度方法流程图。

该方法包括步骤s11’、步骤s12’、步骤s13’、步骤s14’、步骤s15’、步骤s16’和步骤s17’。在此,步骤s11’、步骤s12’、步骤s13’、步骤s14’与图1中步骤s11、步骤s12、步骤s13、步骤s14的内容相同或基本相同,为简明起见,不再赘述。

具体地,在步骤s15’中,资源调度设备1若未满足所述用户调度触发条件,检测所述集群的主机资源的偏离值是否高于对应的资源均衡预警信息;在步骤s16’中,资源调度设备1若所述集群的主机资源的偏离值高于对应的资源均衡预警信息,确定对应的一个或多个待迁出主机;在步骤s17’中,资源调度设备1将所述待迁出主机上的用户实例迁移至一个或多个待迁入主机。

例如,可以根据集群中各主机的最大可消耗资源及当前资源使用量,通过标准差公式计算得到所述集群的主机资源的偏离值。若所述集群的主机资源的偏离值高于对应的资源均衡预警信息,则需要将所述待迁出主机上的用户实例迁移至所述待迁入主机。其中,所述待迁出主机包括集群内消耗资源高于对应的资源消耗阈值的主机,所述待迁入主机包括集群内消耗资源低于对应的资源消耗阈值的主机。

在优选的实施例中,若未满足所述用户调度触发条件,且所述集群的主机资源的偏离值低于对应的资源均衡预警信息,则所述资源调度设备1进入休眠状态;或者,当所述待迁出主机上的用户实例迁移至一个或多个待迁入主机完成后,所述资源调度设备1也将进入休眠状态;当达到预定的休眠时间阈值,通过定时触发器将所述资源调度设备1从休眠状态唤醒至运行状态。

优选地,在步骤s17’中,资源调度设备1按用户实例的资源消耗由高至低的顺序将所述待迁出主机上的用户实例迁移至一个或多个待迁入主机。

在优选的实施例中,根据所述待迁出主机上各用户实例所属用户,按照各用户实例消耗资源由高至低的顺序,优先迁出资源消耗较高的用户实例,优先迁入到资源消耗较低的所述待迁入主机。

优选地,在步骤s17’中,资源调度设备1将所述待迁出主机上的用户实例迁移至一个或多个待迁入主机,以使得所述用户实例所属用户在所述用户实例迁入所述待迁入主机后在所述待迁入主机上的用户实例满足用户实例均衡期望。

例如,需保证在所述用户实例迁入所述待迁入主机后,所述用户实例所属用户在所述待迁入主机上的用户实例分布位于所述用户实例的均衡期望区间之内。

图3示出根据本申请另一个方面的一种资源调度设备1,其中,资源调度设备1包括遍历装置11、用户检测装置12、用户确定装置13和用户迁移装置14。

具体地,所述遍历装置11遍历集群内用户在各主机的用户实例分布;所述用户检测装置12检测是否满足调整所述用户实例分布的用户调度触发条件;所述用户确定装置13若满足所述用户调度触发条件,确定对应的一个或多个待迁出用户主机,其中,每个待迁出用户主机上包括至少一个待迁出用户实例;所述用户迁移装置14将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机。

在此,所述资源调度设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、ios操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(asic)、可编程门阵列(fpga)、数字处理器(dsp)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、vpn网络、无线自组织网络(adhoc网络)等。优选地,资源调度设备1还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述资源调度设备1仅为举例,其他现有的或今后可能出现的资源调度设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地或者按照设定的或实时调整的工作模式要求,例如所述遍历装置11持续遍历集群内用户在各主机的用户实例分布;所述用户检测装置12持续检测是否满足调整所述用户实例分布的用户调度触发条件;若满足所述用户调度触发条件,所述用户确定装置13持续确定对应的一个或多个待迁出用户主机;所述用户迁移装置14持续将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机;直至所述资源调度设备1停止工作。

所述遍历装置11遍历集群内用户在各主机的用户实例分布。

在具体的实施例中,所述用户实例包括在物理机器上分配的虚拟机器或者应用程序;在云产业中,所述用户实例对应于用户购买的服务产品(例如一定量的cpu、内存、磁盘等可消耗型资源)。所述主机指的是物理机器,用于承载若干个所述用户实例。所述集群包括具有相同属性的所述主机的集合。在此,可以采用多种方式进行遍历,例如,按照用户拥有所述用户实例资源的数量由多至少的顺序对集群内所有用户进行遍历,也可以按照用户创建的时间由早至晚的顺序对集群内所有用户进行遍历等。

在优选的实施例中,通过遍历集群内的所有用户,获取每个用户在集群内各主机上的用户实例分布。在此,还获取所述主机、用户实例的消耗型资源(cpu、内存、磁盘等)使用状况以及各用户最大可利用的消耗型资源(即用户购买的服务产品,例如,用户可以选择购买2核cpu、2g内存、500g磁盘的服务规格)。并依此确定每个用户的所述用户实例的均衡期望值、偏离值,以及所述集群的主机资源的均衡期望值、偏离值。

例如,假设集群中有n台主机,对于用户u,其所购买的实例资源总数为i,那么u的所述用户实例的均衡期望值为:

e=[i/n]

即实例资源在集群内各主机上的均值,在此取整数。假设用户u在集群中n台主机{h1,h2,…,hn}上用户拥有的实例数分别为{ih1,ih2,…,ihn},那么所述用户实例的偏离值为:

假设集群中的n台主机的最大可消耗资源分别为{rh1,rh2,…,rhn},当前资源使用量为{urh1,urh2,…,urhn},那么所述集群的主机资源的均衡期望值为:

即该集群资源使用总量与其最大可消耗资源总量之比。所述集群的主机资源的偏离值为:

所述用户检测装置12检测是否满足调整所述用户实例分布的用户调度触发条件。

在此,若所述用户实例分布不够均衡,则可能达到所述用户调度触发条件。

优选地,所述用户调度触发条件包括以下至少任一项:所述用户实例分布中至少一个用户实例高于对应的用户实例阈值信息;所述用户实例分布中至少一个用户实例的偏离值高于对应的用户实例预警阈值信息;所述用户实例分布中至少一个用户实例高于对应的用户实例均衡上限。

例如,接上例,根据用户在集群内各主机的用户实例分布,通过标准差公式计算得到所述用户实例的偏离值,将所述用户实例的偏离值与预定的用户实例预警阈值信息进行比对,确定是否满足所述用户调度触发条件。所述用户实例均衡上限包括所述用户实例均衡区间的上限,例如可以通过下述公式计算所述用户实例均衡区间的上限和下限:用户实例均衡区间上限=用户实例的均衡期望值+预定系数*用户实例的偏离值;用户实例均衡区间下限=用户实例的均衡期望值-预定系数*用户实例的偏离值。其中,若用户实例分布高于所述用户实例均衡区间上限,表明该用户在此台主机上的负载过重;若用户实例分布低于所述用户实例均衡区间下限,表明该用户在此台主机上的负载过轻;若用户实例分布位于所述用户实例均衡区间内(即低于所述用户实例均衡区间上限且高于所述用户实例均衡区间下限),表明该用户在此台主机上的分布是均衡的。在此,还可为用户实例设定所述用户实例阈值信息,例如不能超过用户购买的服务规格。

所述用户确定装置13若满足所述用户调度触发条件,确定对应的一个或多个待迁出用户主机,其中,每个待迁出用户主机上包括至少一个待迁出用户实例。

例如,将满足所述用户调度触发条件的所述用户放入待调度用户列表。根据待调度用户列表中的每位用户在各主机上的用户实例分布,与所述用户实例均衡区间进行比对;若用户实例分布高于其用户实例均衡区间上限,则将该实例所在的主机放入待迁出用户主机列表。

所述用户迁移装置14将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机。

例如,接上例,若用户实例分布高于其用户实例均衡区间上限,则该实例为待迁出用户实例;若用户实例分布低于其用户实例均衡区间下限,则将该实例所在的主机放入待迁入用户主机列表。在此,将所述待迁出用户主机上的待迁出用户实例迁移至所述待迁入用户主机。

优选地,所述用户迁移装置14按待迁出用户实例的优先级降序将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机。

在具体的实施例中,对于待调度用户列表中的每位用户,按待迁出用户实例的优先级降序,依次将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机。

更优选地,资源调度设备1还包括优先级装置(图中未示出);所述优先级装置根据以下至少任一项确定所述待迁出用户实例的优先级:用户待迁出实例的数量信息;用户各实例间的均衡信息;用户实例的资源消耗信息。

例如,用户待迁出实例的数量越多优先级越高,用户各实例间的均衡性越差(例如所述用户实例的偏离值越高)优先级越高,用户实例的资源(cpu、内存、磁盘等)消耗越多优先级越高。

优选地,所述待迁入用户主机包括所述集群中的空闲主机或待迁入用户实例对应的用户可迁入主机。

例如,所述空闲主机包括所述用户实例分布为零的主机;所述可迁入主机包括所述用户实例分布不为零,但是低于其用户实例均衡区间上限的主机。

更优选地,所述用户迁移装置14将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机,以使得所述待迁入用户主机在接受所述待迁出用户实例后的主机资源消耗小于或等于对应的消耗资源均衡期望阈值。

在优选的实施例中,对于待调度用户列表中的每位用户,其待迁入用户主机包括所述集群中的空闲主机子群和可迁入主机子群,优先迁入空闲主机子群。对于可迁入主机子群,按照主机消耗资源使用状况由低至高排序,优先迁入主机资源消耗较低的主机。并保证在所述用户实例迁入所述待迁入用户主机后,主机资源消耗小于或等于对应的消耗资源均衡期望阈值(即所述用户实例均衡区间上限)。若不存在对应的待迁入用户主机(例如用户实例分布低于其用户实例均衡区间上限的主机),则对该用户实例不进行迁移。

图4示出根据本申请一个优选实施例的一种资源调度设备1,其中,资源调度设备1包括遍历装置11’、用户检测装置12’、用户确定装置13’、用户迁移装置14’、主机检测装置15’、主机确定装置16’和主机迁移装置17’。

在此,所述遍历装置11’、用户检测装置12’、用户确定装置13’、用户迁移装置14’与图3中遍历装置11、用户检测装置12、用户确定装置13、用户迁移装置14的内容相同或基本相同,为简明起见,不再赘述。

具体地,所述主机检测装置15’若未满足所述用户调度触发条件,检测所述集群的主机资源的偏离值是否高于对应的资源均衡预警信息;所述主机确定装置16’若所述集群的主机资源的偏离值高于对应的资源均衡预警信息,确定对应的一个或多个待迁出主机;所述主机迁移装置17’将所述待迁出主机上的用户实例迁移至一个或多个待迁入主机。

例如,可以根据集群中各主机的最大可消耗资源及当前资源使用量,通过标准差公式计算得到所述集群的主机资源的偏离值。若所述集群的主机资源的偏离值高于对应的资源均衡预警信息,则需要将所述待迁出主机上的用户实例迁移至所述待迁入主机。其中,所述待迁出主机包括集群内消耗资源高于对应的资源消耗阈值的主机,所述待迁入主机包括集群内消耗资源低于对应的资源消耗阈值的主机。

在优选的实施例中,若未满足所述用户调度触发条件,且所述集群的主机资源的偏离值低于对应的资源均衡预警信息,则所述资源调度设备1进入休眠状态;或者,当所述待迁出主机上的用户实例迁移至一个或多个待迁入主机完成后,所述资源调度设备1也将进入休眠状态;当达到预定的休眠时间阈值,通过定时触发器将所述资源调度设备1从休眠状态唤醒至运行状态。

优选地,所述主机迁移装置17’按用户实例的资源消耗由高至低的顺序将所述待迁出主机上的用户实例迁移至一个或多个待迁入主机。

在优选的实施例中,根据所述待迁出主机上各用户实例所属用户,按照各用户实例消耗资源由高至低的顺序,优先迁出资源消耗较高的用户实例,优先迁入到资源消耗较低的所述待迁入主机。

优选地,所述主机迁移装置17’将所述待迁出主机上的用户实例迁移至一个或多个待迁入主机,以使得所述用户实例所属用户在所述用户实例迁入所述待迁入主机后在所述待迁入主机上的用户实例满足用户实例均衡期望。

例如,需保证在所述用户实例迁入所述待迁入主机后,所述用户实例所属用户在所述待迁入主机上的用户实例分布位于所述用户实例的均衡期望区间之内。

此外,本申请实施例还提供了另一种资源调度设备,所述设备的结构如图7所示,包括处理器710以及被安排成存储计算机可执行指令的存储器720。所述可执行指令在被执行时使所述处理器:遍历集群内用户在各主机的用户实例分布;检测是否满足调整所述用户实例分布的用户调度触发条件;若满足所述用户调度触发条件,确定对应的一个或多个待迁出用户主机,其中,每个待迁出用户主机上包括至少一个待迁出用户实例;以及将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机。

图5示出了一种云计算资源的调度系统,该系统采用本申请实施例提供的资源调度方法实现云计算资源的调度。具体地,所述系统包括数据拉取模块510、指标评估模块520、调度方案演算模块530、实例调度模块540、定时触发器550以及调度任务触发器560。

其中,所述数据拉取模块510用于拉取当前时间段内用户实例资源分布、主机消耗资源、实例消耗资源数据等信息。实际场景中,可以采用遍历的方式来获取上述资源以确定集群内用户在各主机的用户实例分布、以及各个主机的资源使用情况。

指标评估模块520用于计算当前时间段的调度偏离值,以及评估是否满足进行调度的触发条件。在实际场景中,调度期望值可以包含两方面内容,即用户实例的偏离值和主机资源的偏离值。

其中,用户实例的偏离值对应基于用户实例分布的调度检查,即当基于用户实例分布所计算的用户实例的偏离值满足用户调度触发条件时,判断需要进行调度;而主机资源的偏离值则对应基于主机的资源使用情况的调度检查,即当基于主机资源使用情况所计算出的主机资源的偏离值高于对应的资源均衡预警信息时,判断需要进行调度检查。

调度方案演算模块530用于根据集群内用户在各主机的用户实例分布以及各个主机的资源使用情况生成具体的调度方案,即确定哪些主机上的特定用户实例需要被迁移至另一主机上。

实例调度模块540用于根据生成的调度方案对主机上的用户实例进行迁移调度,直至完成调度方案。

定时触发器550用于触发整个系统的运行,例如按照预先定义的时间窗口,将整个系统从休眠状态唤醒至运行状态,当无需进行调度、或者调度完成时,使得系统进入休眠状态。

调度任务触发器560用于根据指标评估模块给出的评估结果来实现调度任务的触发,例如,当指标评估模块给出的结果为需要进行调度检查时,任务调度触发器560则触发调度方案演算模块530和实例调度模块540进行相应的处理;若指标评估模块给出的结果为不需要进行调度检查时,则使得系统进入休眠状态,等待定时触发器550的下一次触发。

对于上述云计算资源的调度系统,其实现资源调度的具体过程如图6所示,具体包括以下处理步骤:

[1]遍历当前集群内的所有用户,获得每个用户的在集群内所有主机上的用户实例分布;同时,获取所有主机上用户实例的资源消耗状况以及主机的资源消耗状况。

[2]根据上述数据,评估出关于每个用户的用户实例的偏离值、以及关于每个主机的主机资源的偏离值。

[3]进入调度检查

[3.1]首先进入用户调度检查,检测是否满足调整所述用户实例分布的用户调度触发条件。具体可以是,当用户实例的偏离值高于用户实例预警阈信息时,触发用户分布资源调度[4.1];否则,进入资源调度检查[3.2]。

[3.2]进入资源调度检查,检测所述集群的主机资源的偏离值是否高于对应的资源均衡预警信息,当集群资源均衡偏差值高于资源均衡预警信息时,触发资源调度[4.2];否则,系统进入休眠状态,不需要进行任何调度,等待休眠时间耗尽,触发下一轮处理。

[4]进入调度

[4.1]用户分布资源调度

[4.1.1]调度启动后,选出[3.1]中用户实例的偏离值高于用户实例预警阈信息的用户,放入待调度用户列表。

[4.1.2]检查待调度中的每位用户在各个主机上的实例分布。对比该用户的实例均衡区间,如果实例分布高于其实例均衡区间上限,那么将该实例所在的主机放入待迁出用户主机列表,其他主机为待迁入用户主机列表。

在待迁入用户主机中,分为完全空闲主机(该用户的实例分布为零),及用户可迁入主机(该用户有实例存在于此主机上)。完全空闲主机在调度迁移时,具有迁入最高优先级。

[4.1.3]对于待调度用户群,按照用户待迁出实例的数量由高至低排序,并根据该顺序,优先迁移均衡性差的用户。

针对每个待调度用户,获取实例的消耗资源使用状况,按照从高至低同一排序,优先迁出消耗资源使用高的实例。

对于每个待调度用户,其待迁入主机列表,分为完全空闲主机和可迁入主机两个子群。对于每个子群,按照主机消耗资源使用状况由低至高排序。优先迁入完全空闲主机子群中,消耗资源使用低的主机,保证实例迁入后,主机消耗资源低于均衡期望区间上限。如果完全空闲主机子群中无合适主机,则移至可迁入主机子群中,寻找合适主机,直到合适主机找到,或者无合适主机。无合适主机情况下,对该实例不进行迁移。

[4.2]资源调度

[4.2.1]调度启动后,选出[3.2]中主机资源的偏离值高于资源预警阈信息的用户,放入待迁出主机列表。

[4.2.2]对于待迁出主机,获取该主机上每个实例的所属用户,按照资源消耗由高至低排序,优先迁出消耗高的实例,迁入到消耗低的主机上,并且迁入后其所属用户在该迁入主机上实例分布依旧保持在均衡区间内。

[5]根据[4]中的方式,遍历所有待调度用户,生成调度方案。

[6]根据调度方案发布调度任务,依次完成各个待迁移实例的迁移处理。

[7]完成调度任务,结束一次资源调度流程,系统进入休眠,等待触发下一轮处理。

与现有技术相比,本申请通过遍历集群内用户在各主机的用户实例分布,检测是否满足调整所述用户实例分布的用户调度触发条件,当满足所述用户调度触发条件将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机;本申请基于用户在各主机上的用户实例分布来进行资源调度,从而实现用户实例的均衡分布,避免将同用户的所有用户实例集中于少数主机上,增加防范风险的能力,提升用户体验。进一步地,本申请通过按待迁出用户实例的优先级降序将所述待迁出用户主机上的待迁出用户实例迁移至一个或多个待迁入用户主机,优化资源调度方案。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1