一种基于装箱模型的集群资源调度方法及装置的制造方法

xiaoxiao2020-10-23  14

一种基于装箱模型的集群资源调度方法及装置的制造方法
【技术领域】
[0001]本发明涉及大规模分布式系统中的集群资源的调度,属于云计算领域,特别涉及一种基于装箱模型的集群资源调度方法及装置。
【背景技术】
[0002]随着互联网的普及和日益发展,我们进入了一个数据爆炸的时代,根据数字宇宙(digital universe)项目统计得出,2011年的数据总量为1.8ZB,并预测在2020年将达到40ZB,每时每刻都有大量的数据需要处理,基于数据密集型应用的计算框架不断出现,从支持离线处理的MapReduce,到支持在线处理的Storm,从迭代式计算框架Spark到流式处理框架S4,这些框架各有所长,各自解决了某一类应用问题。
[0003]各种框架诞生于不同的公司或者实验室,运行在各个集群上,虽然单台计算机的功率并不大,但是在计算机总数庞大的集群中,电力的消耗却相当惊人,一方面,大幅的能量消耗增长会排放出大量的CO2,加剧温室效应;另一方面,不断增长的能源消耗已经成为重要的成本来源。在很多公司中,可能同时采用多种计算框架,考虑到资源利用率、运维成本、数据共享等因素,公司一般希望将所有这些框架都部署到一个公共集群中,让它们共享集群的资源,并对资源进行统一使用,同时采用某种资源隔离方案(如轻量级Cgroups)对各个任务进行隔离,这样便诞生了轻量级弹性计算平台,其中Hadoop YARN便是弹性计算平台的典型代表。多种框架共享集群资源,使得集群资源得到更加充分的利用。为了支持多维资源调度,Hadoop YARN的资源调度器采用了 DRF算法,YARN共有三种调度器,分别是FIFO、Fair Scheduler和Capacity Scheduler,其中FIFO适用于批处理作业的场景,调度顺序按照作业到达的时间顺序确定,先到达的先分配资源;但随着Hadoop的普及,集群中的用户量和应用程序种类不断增加,FIFO的调度机制已经不能满足服务质量要求,需要设计适用于多用户的资源调度算法。Fair scheduler和Capacity Scheduler是多用户调度器,以队列为单位划分资源,每个队列可设置资源上限和下限,每个用户又可以设置资源上限,以防止资源滥用。当一个队列资源有剩余时,可暂时分配给其他队列;而Fair Scheduler除了具有Capacity Scheduler的功能外,还支持多种调度策略。这两种调度器都支持多维资源,目前支持CPU和内存,另外它们对调度语义的支持有限,比如不支持超细粒度资源、动态调整Container资源等。
[0004]发明专利“一种集群资源分配方法及装置”,该发明实施例公开了一种集群资源分配方法及装置,该发明方法包括:按照预置策略将计算机集群划分为第一集群和第二集群;采用负载均衡策略将待创建虚拟机分配给第一集群中的计算机,以在第一集群中的计算机上创建待创建虚拟机;若创建失败,则采用填满策略将待创建虚拟机分配给第二集群中的计算机,以在第二集群中的计算机上创建待创建虚拟机。该发明实施例中,将两种资源分配方法相结合来实现资源分配,能够减少资源碎片,提高集群资源的利用率,保证集群的性能。该发明是一种集群资源分配方法,在集群中部署和创建虚拟机。通过将集群分为两个集群,创建时分别采用不同的策略依次在两个集群中部署每个待创建的虚拟机(两个子集群中只有一个创建成功的同一个虚拟机);结合两种资源分配方式结合来减少资源碎片;而本发明是在一个集群中为用户的应用程序的任务分配系统资源,通过动态确定资源请求的分类,并根据集群节点上分配的资源情况将节点分组,在分配资源时采用装箱算法的思想选择合适的节点为任务分配资源,达到减少资源碎片的目的。
[0005]发明专利“一种提高云计算网络运算资源的方法及系统”,该发明公开了一种提高云计算网络运算资源的方法及系统,所述方法包括:监控云计算网络中的运算资源;确定运算资源的类型;根据运算资源的类型,将运算资源分配给高功率的处理器或低功率的协处理器处理。进一步,所述系统包括:运算资源监控单元;运算资源类型评估单元;运算资源分配单元。根据本发明的一种提高云计算网络运算资源的方法及系统,将云网络中的运算资源进行区分式计算,采用低运算率的协处理器进行休眠系统的状态保存运算,采用高运算率的处理器运算实时运行的虚拟系统,使得云网络的运算速率大幅提高,进而提高了云计算网络的运算资源,并降低了云网络的设备成本。该发明根据运算资源的类型分别将其分配给高功率的处理器或低功率的协处理器处理,而本发明根据资源请求的主资源类型和资源量的大小在不同的服务器组中选择合适的服务器为请求资源的任务分配资源。

【发明内容】

[0006]本发明的目的是解决大规模集群中资源分配时产生资源碎片的问题,本发明在Hamonic装箱模型的基础上设计了一种基于装箱模型的集群资源调度方法及装置。
[0007]为了支持多维度资源的调度,通过计算资源请求中每一维资源所占比例,使用主资源调度算法(Dominant Resource Fit, DRF)确定资源请求的主资源类型,根据不同的主资源类型及资源量的大小将资源请求划分为若干类(资源量大小在同一个范围内的资源请求归为一类),同时,根据每个服务器上满足的资源请求的种类将服务器分组(初始时刻任何服务器上都未分配任务,将所有服务器归为一组),当有资源请求到达时,根据该资源请求的类别,为其选择一个合适的服务器分配任务以满足其需求。
[0008]本发明提出一种基于装箱模型的集群资源调度方法,包括:
[0009]步骤1,获取资源请求,通过主资源调度算法计算所述资源请求中各维度资源数量占所述集群中总资源数量的比重,设置一阈值,将所述比重大于所述阈值的资源请求作为主资源请求;
[0010]步骤2,设置所述资源请求的最大值与规整化单位,将集群资源划分成若干资源区间,其中所述规整化单位作为所述资源区间的值,所述资源区间的值不大于所述资源请求的最大值;
[0011]步骤3,获取新资源请求,并获取所述新资源请求的新主资源请求,查找与所述新主资源请求相对应的所述资源区间,根据所述资源区间,将与所述新资源请求相匹配的物理节点进行分配,以完成集群资源调度。
[0012]所述基于装箱模型的集群资源调度方法,所述步骤I之前还包括:加载并解析配置文件,获取管理员的配置项值。
[0013]所述基于装箱模型的集群资源调度方法,所述资源请求与所述新资源请求包括:内存资源请求与中央处理器资源请求,并将所述内存资源请求与中央处理器资源请求进行染色。
[0014]所述基于装箱模型的集群资源调度方法,所述步骤3还包括:将所述新主资源请求与所述新资源请求中除所述新主资源请求之外的资源请求分配到同一物理节点,其中所述新主资源请求与所述新主资源请求之外的资源请求的和,不大于所述物理节点的资源总量。
[0015]所述基于装箱模型的集群资源调度方法,所述步骤3还包括:当所述物理节点中各资源所占比例相当,则优先分配到与所述物理节点中资源占比更大的资源相匹配的资源请求。
[0016]本发明还提出一种基于装箱模型的集群资源调度装置,包括:
[0017]获取主资源请求模块,用于获取资源请求,通过主资源调度算法计算所述资源请求中各维度资源数量占所述集群中总资源数量的比重,设置一阈值,将所述比重大于所述阈值的资源请求作为主资源请求;
[0018]划分资源区间模块,用于设置所述资源请求的最大值与规整化单位,将集群资源划分成若干资源区间,其中所述规整化单位作为所述资源区间的值,所述资源区间的值不大于所述资源请求的最大值;
[0019]资源调度模块,用于获取新资源请求,并获取所述新资源请求的新主资源 请求,查找与所述新主资源请求相对应的所述资源区间,根据所述资源区间,将与所述新资源请求相匹配的物理节点进行分配,以完成集群资源调度。
[0020]所述基于装箱模型的集群资源调度装置,还包括初始化模块,用于加载并解析配置文件,获取管理员的配置项值。
[0021]所述基于装箱模型的集群资源调度装置,所述资源请求与所述新资源请求包括:内存资源请求与中央处理器资源请求,并将所述内存资源请求与中央处理器资源请求进行染色。
[0022]所述基于装箱模型的集群资源调度装置,所述资源调度模块还包括:将所述新主资源请求与所述新资源请求中除所述新主资源请求之外的资源请求分配到同一物理节点,其中所述新主资源请求与所述新主资源请求之外的资源请求的和,不大于所述物理节点的资源总量。
[0023]所述基于装箱模型的集群资源调度装置,所述资源调度模块还包括:当所述物理节点中各资源所占比例相当,则优先分配到与所述物理节点中资源占比更大的资源相匹配的资源请求。
[0024]由以上方案可知,本发明的优点在于:
[0025]本发明能够根据装箱模型创建一个集群资源调度模型,对集群资源进行分配和调度,减少资源碎片,进一步提高集群资源的利用率;本发明通过将请求按照资源需求计算其主资源并将服务器进行分组的方式,尽量将较大和较小资源的请求分配到一个节点上,这样可以充分利用节点的资源:对于分配了较大请求的节点,如果剩余空间足以分配小的请求,则将小的请求分配到节点上,已达到“填充”的效果,从而减少资源“碎片”,对于提高集群资源的利用率具有重要的实际意义,具有良好的市场前景和应用价值。
【附图说明】
[0026]图1为本发明实施例的整体流程图;图2为请求分配资源流程图。
[0027]其中附图标记为:
[0028]步骤101/102/103/104/105/106 ;
【具体实施方式】
[0029]下面结合附图和实施例详细对本发明的【具体实施方式】进行说明。
[0030]以下为本发明的整体流程,如下所示:
[0031]初始化,加载并解析配置文件,获取管理员的配置项值;
[0032]获取资源请求,通过主资源调度算法计算所述资源请求中各维度资源数量占所述集群中总资源数量的比重,设置一阈值,将所述比重大于所述阈值的资源请求作为主资源请求;
[0033]步骤2,设置所述资源请求的最大值与规整化单位,将集群资源划分成若干资源区间,其中所述规整化单位作为所述资源区间的值,所述资源区间的值不大于所述资源请求的最大值;
[0034]获取新资源请求,并获取所述新资源请求的新主资源请求,查找与所述新主资源请求相对应的所述资源区间,根据所述资源区间,将与所述新资源请求相匹配的物理节点进行分配,以完成集群资源调度;将所述新主资源请求与所述新资源请求中除所述新主资源请求之外的资源请求分配到同一物理节点,其中所述新主资源请求与所述新主资源请求之外的资源请求的和,不大于所述物理节点的资源总量;当所述物理节点中各资源所占比例相当,则优先分配到与所述物理节点中资源占比更大的资源相匹配的资源请求。
[0035]内存资源请求与中央处理器资源请求,并将所述内存资源请求与中央处理器资源请求进行染色。
[0036]以下为本发明一具体实施例,如下所示:
[0037]本发明所述的调度算法基于Hamonic装箱算法,将装箱的思想应用到二维资源(内存和CPU)调度,减少资源分配过程中集群中的不可分配的“资源碎片”,算法的具体实施如下,如图1所示:
[0038]步骤101,根据主资源调度算法(Dominant Resource Fit, DRF),计算资源请求中各维度资源量占总资源量的比重,将比重较大的资源作为该资源请求的主资源,其中记MEM_REQ表示内存比重较大(即内存与CPU的比值大于阈值mem_cpu_rat1,用户可自定义,可参考集群总的可用资源中内存与CPU的比例)的资源请求,记CPU_REQ表示CPU比重较大(即内存与CPU的比值小于阈值mem_cpu_rat1)的资源请求。
[0039]步骤102,设置应用程序的资源请求的最大值(MAX_MEM,MAX_CPU)和资源规整化单位(该值可对内存和CPU资源量取整),对于MEM_REQ,将内存规整化单位作为每个区间的大小,区间总的大小为(0,ΜΑΧ_ΜΕΜ]。设用户的资源请求经规整化后的内存容量为M1,...,Mi,...,Mk,划分为如下区间:(0,MJ,...,,(M1^MkLk 是内存资源量规整化后的区间个数(l〈k〈N,l〈i〈k)。若对于某个MEM_REQ,有M e (Mi+ Mi],则记该MEM_REQ为吣。同理,对于CPU_REQ,将CPU规整化单位作为每个区间的大小,区间总的大小为(0,MAX_CPU]。设用户的资源请求经规整化后的CPU资源量为C1,...,Cj,...,Cm,则区间划分为(0,C1],...,(Cjm, C山...,(Cm,CJ,m 是 CPU 规整化后的区间个数(其中 l〈m〈N,l〈j〈m)。若对于某个CPU_REQ,有C e (Cjm, Cj],则记该CPU_REQ为Cj.
[0040]步骤103,判断收到的资源请求的类型(MEM_REQ或CPU_REQ),并根据其主资源的资源量大小所属区间,确定该资源请求的类型^或Cp在资源分配的过程中,对于收到的资源请求标记颜色,分别染为红色和蓝色。emi和β μ分别表示在一个节点可满足的蓝色Mi和蓝色Cj的最大数目,δ⑴和δ表示该物理服务器中除了蓝色M 1或Cj外的剩余的资源量。
[0041]步骤104,根据物理节点上已得到满足的资源请求的类别将物理节点分组,对应分配了主资源为MEM和CPU的物理节点的分组信息如下:
[0042](I)对应MEM_REQ的物理节点的分组情况:
[0043]a)GROUP_MEM(Mi),该分组中的物理节点上仅满足蓝色M-该组的物理节点只有一个处于允许分配的状态且该节点上的蓝色Mi少于β mi。该组其他物理节点上运行着的吣数均为I。
[0044]b) GROUP_MEM(Mi, Mj),该组的物理节点上满足的MEM_REQ既有蓝色的Mi*有红色的Mj,即两种资源量处于不同区间的内存为主资源的资源请求。该分组中每个物理节点上可满足的蓝色的吣的最大数目为β mi,则该节点上红色的%可使用的资源量为δ mi。该组中至多有3种物理节点,分别是:当且仅当节点上蓝色的Mi的数目少于最大值β mi的物理节点、当且仅当节点上的红色%占用的总资源量少于δ mi的物理节点和分配的蓝色Mi的数目少于最大值emi且分配的红色的M-用的总资源量少于δ mi的物理节点。
[0045]c)GROUP_MEM(Mi, Mj,Cg),该分组中的物理节点上满足3种类型的资源请求,包括:蓝色的%、红色的Mj和红色的C g。该组的物理节点上可满足的蓝色的Mi的最大数目为β mi,另外可满足的两种红色资源请求的最大数量则由该节点上除了蓝色Mi外的剩余资源量决定。该组至多有2种处于可分配状态的物理节点,分别是分配的蓝色Mi的数目少于最大值β mi的节点和除了蓝色M i占用外剩余的资源量可以分配给红色M」或红色C 8的节点。
[0046]d)GROUP_MEM(Mi, ?,?),该组的物理节点上满足的资源请求的类型未最终确定,但可以知道的是节点上当前仅分配了蓝色的%。该组的节点都处于可分配状态,以后可能在节点上为红色的MEM_REQ或红色的CPU_REQ分配资源。在满足了除蓝色Mi外的资源请求后更新该节点的分组为GROUP_MEM(Mi,Mj)或GROUP_MEM (Mi,Mj, Cg)。
[0047]e)GROUP_MEM( ?,Mj, Cg),该组的物理节点上满足的资源请求的类型未最终确定,但可以知道的是节点上当前分配了红色的%或红色的C g。该组的物理节点都处于可分配资源状态,以后可能在该节点为蓝色的MEM_REQ分配资源,为蓝色Mi分配资源后将该节点分到 GROUP_MEM(Mi,Mj,Cg)。
[0048]为了使物理节点上可用资源量中的内存和CPU趋于平衡,对于混合类型(同时为红色MEM_REQ和红色CPU_REQ分配了资源)的物理节点,在分配资源时将该节点上当前可用资源中CPU(个数)与内存(GB)的比值rat1与节点资源总容量的比值rat1_initial进行比较:若rat1 > rat1_initial,即当前节点可用资源中CPU资源所占比例较高,此时在该节点上为红色的CPU_REQ分配资源;若rat1 ( rat1_initial,即当前节点可用资源中内存所占比例较高,则此时在该节点上为红色的MEM_REQ分配资源。
[0049](2)分配了 CPU_REQ的物理节点的分组方法与⑴类似,具体描述如下:
[0050]f)GROUP_CPU(Cj),该分组的物理节点中仅满足蓝色的C」。该组中只有一个物理节点处于可分配状态且该节点上已满足的蓝色Cj的数目少于最大值β CJo该组其余不可分配的节点上分配的蓝色的的数目均已达到最大限β。」。
[0051]g) GROUP^PU(CrCi),该分组的物理节点上既为蓝色的Cj也为红色的Ci分配资源,其中可满足的蓝色的G的最大数目为β d则该节点上可为红色的%分配的资源量为δ cJO该分组中至多有3种处于可分配状态的物理节点,分别是:当且仅当分配的蓝色的&的数目少于最大值β d的物理节点、当且仅当分配给红色的Ci使用的总资源量少于δ ei的物理节点以及分配的蓝色&的数目少于最大值β μ且分配的红色的匕占用的总资源量少于δ ci的物理节点。
[0052]h) GR0UP_CPU (Cj, CiJg),该分组中的物理节点上满足3种类型的资源请求,分别是蓝色的Cp红色的CjP红色的Mg。该组的物理节点上允许分配的蓝色的的最大数目为β。」,另外两种红色资源请求的最大数量则由该节点上除了蓝色的(^外的剩余资源量决定。该组至多有2种处于可分配状态的物理节点,分别是分配的蓝色Ci的数目少于最大值β CJ的节点和除了蓝色&占用外剩余的资源量可以分配给红色Ci或红色M 8的节点。
[0053]i)GR0UP_CPU(Cj,?,?),该组的物理节点上满足的资源请求的类型未最终确定的节点,但可以知道的是节点上当前仅分配了蓝色的Cp该组的节点都处于可分配状态,以后可能在节点上为红色的CPU_REQ或红色的MEM_REQ分配资源。在为除蓝色Cj外的资源请求分配资源后,更新该节点分组为GR0UP_CPU(Cp Ci)或GR0UP_CPU((V Ci, Mg)。
[0054]j)GR0UP_CPU(? ,Ci,Mg),该组的物理节点上满足的资源请求的类型未最终确定的节点,但可以知道的是节点上当前为红色的Ci或红色的118分配了资源。这些节点都处于可分配状态,以后可能为蓝色的CPU_C0NTAINER分配资源,当该节点分配了蓝色的Cj后更改分组为 GROUPJPUCCj,Ci, Mg)。
[0055]为了使物理节点上可用资源量中的内存和CPU趋于平衡,对于混合类型(即分配了红色CPU_REQ又分配了红色MEM_REQ)的物理节点,在分配资源时将该节点上当前可用资源中CPU(个数)与内存(GB)的比值rat1与节点资源总容量的比值rat1_initial进行比较:若rat1 ( rat1_initial,即当前节点可用资源中内存资源所占比例较高,此时在该节点上分配红色的MEM_REQ ;若rat1 > rat1_initial,即当前节点可用资源中CPU所占比例较高,则此时在该节点上分配红色的CPU_REQ。
[0056]在资源分配的过程中,尽量将较大和较小资源的request分配到一个节点上,这样可以充分利用节点的资源:对于分配了较大request的节点,如果剩余空间足以分配小的request,则将小的request分配到节点上,已达到“填充”的效果,从而减少资源“碎片”。
[0057]步骤105,开始时进行一些初始化工作:加载并解析配置文件,获取管理员的配置项值,比如允许分配的单个资源请求的最大资源量限制<MAX_MEM,MAX_CPU>,限制染为红色的资源请求数量的比例值mem_red_rat1和cpu_red_rat1。初始化各个节点分组列表为空,初始化用于各个用途的几个request计数器的值为0,包括。至此初始化完毕,开始接收并处理应用程序发来的资源请求,将收到的资源请求规整化后检查其资源量分类区间mem_unit [N]和cpu_unit[N]中是否存在该值,若存在,则确定其分类区间;若不存在,则将该值作为新值存入分类区间,即新增一个分类区间,实现动态创建资源请求的分类区间。接着对于收到的资源请求request做如下处理:
[0058](3)如果request类型为Mi,则更新Mj的总数(如图2所示);否则,转到⑷。
[0059]k)若红色Mi的数量小于Mi数量的限制比例且其^的资源量在允许染为红色的阈值范围内,则将request染为红色,红色Mi数量加1.否则,转到L),步骤k)包括以下步骤:
[0060]1.如果存在一个处于分配状态的组GROUP_MEM( ? ,Mi^Cj)的节点node,并且该节点中用于分配红色request的资源满足需求,则在节点node为request分配资源;否则,转到i1.
[0061]i1.对任意的Mj,如果存在一个处于可分配状态的组GRCM^MEM(MyMi)的节点node且该节点中除了用于分配%的资源外的剩余资源量δ mi满足request的需求,则将在节点node分配资源。否则,转到ii1.
[0062]ii1.如果存在处于可分配状态的组GROUP_MEM(Mi,?,?)的节点node且用于分配红色Mi的资源满足request的需求,此时,将节点当前剩余资源量的比值与节点总资源容量比进行比较:若rat1_res〈rat1_initial_res,即当前节点剩余资源中内存所占比例较高,此时在该节点为request分配资源。否则,转到iv。
[0063]iv.寻找一个新的GR0UP_MEM( ? , Mi, ?)的节点为request分配资源。
[0064]L)将request染为蓝色,即request, color = blue,包括以下步骤:
[0065]1-1.如果Mi的资源量大于mem_rat1*MAX_MEM,则执行A。否则,转到2-1 ;
[0066]1-1-1,如果存在一个处于可分配状态的组GROUP_MEM(Mi)的节点node中蓝色Mi数少于I3mi,则在节点node上为request分配资源。否则,转到1_1_2 ;
[0067]1-1-2,找一个新的GROUP_MEM(Mi)的物理节点node为request分配资源;否则,转到2-1 ;
[0068]2-1,此时红色Mi占M i总数的比例已达到限制,则
[0069]2-1-1,如果对于任意Mj,存在处于可分配状态的组GRCM^MEM(MpMj)的节点node且node上分配的蓝色Mi数少于β mi,则节点node上为request分配资源。否则,转到2_1_2。
[0070]2-1-2,如果存在组GR0UP _MEM( ? ,Mi, Cg)的节点node,可用资源满足request的需求,则为request分配资源,并将节点node的分组更新为组GR0UP_MEM(Mi,Mi,Cg)。否则,转到2-1-3。
[0071]2-1-3,寻找一个新的组GROUP_MEM(Mi,?,?)的节点为request分配资源。
[0072](4)如果request类型为C」,贝Ij更新C」类型的request的总数,包括以下步骤:
[0073]m)如果红色Cj的数量小于Cj数量的限制比例且request的资源量在允许染为红色的资源量阈值范围内值,则将(^_染为红色,红色Cj数量加1.否则,转到η);
[0074]3-1,如果存在一个处于可分配状态的组GR0UP_CPU( ? ,CrMg)的节点node,若该节点中用于分配红色request的资源满足request的需求,则将该Cj分配到此节点;否则,转到3-1-2 ;
[0075]3-2,对于任意的Ci,如果存在一个处于可分配状态的组GROUP_CPU(Ci,Cj)的节点且该节点中除了用于分配Ci的资源外的剩余资源满足request的需求,则将在此节点为request分配资源。否则,转到3_1_3 ;
[0076]3-3,如果存在处于可分配状态的组GROUP_CPU(Ci,?,?)的节点且用于分配红色request的资源满足request的需求,将该节点当前剩余资源的比值与节点总资源容量比进行比较:若rat1_res>rat1_initial_res,即当前节点剩余资源中CPU所占比例较高,此时在该节点为request分配资源。否则,转到3_4 ;
[0077]3-4,寻找一个新的GR0UP_CPU( ?,Ci, ?)的节点,若找到的节点的用于分配红色request的资源足够,则为request分配资源。
[0078]η)将 request 染为蓝色,即 request, color = blue ;
[0079]4-1,如果request的资源量大于cpu_rat1*MAX_CPU,则执行A。否则转到4-2 ;
[0080]4-1-1,如果存在一个可分配的组GROUPJPU(Cj)的节点node且节点中蓝色(^.数少于则在该节点为request分配资源。否则,转到B;
[0081]4-1-2,找一个新的GROUPJPU(Cj)的节点并为request分配资源。否则,转到4-2 ;
[0082]4-2,此时红色Cj占C」总数的比例已达到限制。
[0083]4-2-1,如果对于任意Ci,存在处于可分配状态的组GR0UP_CPU(Cj,Ci)的节点且该节点内分配的蓝色G数少于β d则在该节点为request分配资源。否则,转到4_2_2;
[0084]4-2-2,如有组GR0UP_CPU( ?,Ci, Mg)的某个节点node,则在节点node上分配资源,将其分组更新为GR0UP_CPU (Cj,Ci,Mg)。否则,转到4_2_3 ;
[0085]4-2-3,找一个新的组GR0UP_CPU(C」,?,?)的节点为request分配资源。
[0086]步骤106,每当收到一个资源请求后执行步骤5为其分配资源,并在节点上启动任务运行。
【主权项】
1.一种基于装箱模型的集群资源调度方法,其特征在于,包括: 步骤1,获取资源请求,通过主资源调度算法计算所述资源请求中各维度资源数量占所述集群中总资源数量的比重,设置一阈值,将所述比重大于所述阈值的资源请求作为主资源请求; 步骤2,设置所述资源请求的最大值与规整化单位,将集群资源划分成若干资源区间,其中所述规整化单位作为所述资源区间的值,所述资源区间的值不大于所述资源请求的最大值; 步骤3,获取新资源请求,并获取所述新资源请求的新主资源请求,查找与所述新主资源请求相对应的所述资源区间,根据所述资源区间,将与所述新资源请求相匹配的物理节点进行分配,以完成集群资源调度。2.如权利要求1所述基于装箱模型的集群资源调度方法,其特征在于,所述步骤I之前还包括:加载并解析配置文件,获取管理员的配置项值。3.如权利要求1所述基于装箱模型的集群资源调度方法,其特征在于,所述资源请求与所述新资源请求包括:内存资源请求与中央处理器资源请求,并将所述内存资源请求与中央处理器资源请求进行染色。4.如权利要求1所述基于装箱模型的集群资源调度方法,其特征在于,所述步骤3还包括:将所述新主资源请求与所述新资源请求中除所述新主资源请求之外的资源请求分配到同一物理节点,其中所述新主资源请求与所述新主资源请求之外的资源请求的和,不大于所述物理节点的资源总量。5.如权利要求1所述基于装箱模型的集群资源调度方法,其特征在于,所述步骤3还包括:当所述物理节点中各资源所占比例相当,则优先分配到与所述物理节点中资源占比更大的资源相匹配的资源请求。6.一种基于装箱模型的集群资源调度装置,其特征在于,包括: 获取主资源请求模块,用于获取资源请求,通过主资源调度算法计算所述资源请求中各维度资源数量占所述集群中总资源数量的比重,设置一阈值,将所述比重大于所述阈值的资源请求作为主资源请求; 划分资源区间模块,用于设置所述资源请求的最大值与规整化单位,将集群资源划分成若干资源区间,其中所述规整化单位作为所述资源区间的值,所述资源区间的值不大于所述资源请求的最大值; 资源调度模块,用于获取新资源请求,并获取所述新资源请求的新主资源请求,查找与所述新主资源请求相对应的所述资源区间,根据所述资源区间,将与所述新资源请求相匹配的物理节点进行分配,以完成集群资源调度。7.如权利要求6所述基于装箱模型的集群资源调度装置,其特征在于,还包括初始化模块,用于加载并解析配置文件,获取管理员的配置项值。8.如权利要求6所述基于装箱模型的集群资源调度装置,其特征在于,所述资源请求与所述新资源请求包括:内存资源请求与中央处理器资源请求,并将所述内存资源请求与中央处理器资源请求进行染色。9.如权利要求6所述基于装箱模型的集群资源调度装置,其特征在于,所述资源调度模块还包括:将所述新主资源请求与所述新资源请求中除所述新主资源请求之外的资源请求分配到同一物理节点,其中所述新主资源请求与所述新主资源请求之外的资源请求的和,不大于所述物理节点的资源总量。10.如权利要求6所述基于装箱模型的集群资源调度装置,其特征在于,所述资源调度模块还包括:当所述物理节点中各资源所占比例相当,则优先分配到与所述物理节点中资源占比更大的资源相匹配的资源请求。
【专利摘要】本发明公开了一种基于装箱模型的集群资源调度方法及装置,本发明涉及大规模分布式系统中的集群资源的调度,该方法包括,获取资源请求,通过主资源调度算法计算所述资源请求中各维度资源数量占所述集群中总资源数量的比重,设置一阈值,将所述比重大于所述阈值的资源请求作为主资源请求;设置所述资源请求的最大值与规整化单位,将集群资源划分成若干资源区间,其中所述规整化单位作为所述资源区间的值,所述资源区间的值不大于所述资源请求的最大值;获取新资源请求,并获取所述新资源请求的新主资源请求,查找与所述新主资源请求相对应的所述资源区间,根据所述资源区间,将与所述新资源请求相匹配的物理节点进行分配,以完成集群资源调度。
【IPC分类】G06F9/50, G06F9/48
【公开号】CN104881322
【申请号】CN201510252905
【发明人】方海鸥, 曾令, 宋 莹, 孙毓忠
【申请人】中国科学院计算技术研究所
【公开日】2015年9月2日
【申请日】2015年5月18日
转载请注明原文地址:https://www.famiwei.com/read-8138753.html

最新回复(0)