請求,查找與所述新主資源請求相對應(yīng)的所述資源區(qū)間,根據(jù)所述資源區(qū)間,將與所述新資源請求相匹配的物理節(jié)點進(jìn)行分配,以完成集群資源調(diào)度。
[0020]所述基于裝箱模型的集群資源調(diào)度裝置,還包括初始化模塊,用于加載并解析配置文件,獲取管理員的配置項值。
[0021]所述基于裝箱模型的集群資源調(diào)度裝置,所述資源請求與所述新資源請求包括:內(nèi)存資源請求與中央處理器資源請求,并將所述內(nèi)存資源請求與中央處理器資源請求進(jìn)行染色。
[0022]所述基于裝箱模型的集群資源調(diào)度裝置,所述資源調(diào)度模塊還包括:將所述新主資源請求與所述新資源請求中除所述新主資源請求之外的資源請求分配到同一物理節(jié)點,其中所述新主資源請求與所述新主資源請求之外的資源請求的和,不大于所述物理節(jié)點的資源總量。
[0023]所述基于裝箱模型的集群資源調(diào)度裝置,所述資源調(diào)度模塊還包括:當(dāng)所述物理節(jié)點中各資源所占比例相當(dāng),則優(yōu)先分配到與所述物理節(jié)點中資源占比更大的資源相匹配的資源請求。
[0024]由以上方案可知,本發(fā)明的優(yōu)點在于:
[0025]本發(fā)明能夠根據(jù)裝箱模型創(chuàng)建一個集群資源調(diào)度模型,對集群資源進(jìn)行分配和調(diào)度,減少資源碎片,進(jìn)一步提高集群資源的利用率;本發(fā)明通過將請求按照資源需求計算其主資源并將服務(wù)器進(jìn)行分組的方式,盡量將較大和較小資源的請求分配到一個節(jié)點上,這樣可以充分利用節(jié)點的資源:對于分配了較大請求的節(jié)點,如果剩余空間足以分配小的請求,則將小的請求分配到節(jié)點上,已達(dá)到“填充”的效果,從而減少資源“碎片”,對于提高集群資源的利用率具有重要的實際意義,具有良好的市場前景和應(yīng)用價值。
【附圖說明】
[0026]圖1為本發(fā)明實施例的整體流程圖;圖2為請求分配資源流程圖。
[0027]其中附圖標(biāo)記為:
[0028]步驟101/102/103/104/105/106 ;
【具體實施方式】
[0029]下面結(jié)合附圖和實施例詳細(xì)對本發(fā)明的【具體實施方式】進(jìn)行說明。
[0030]以下為本發(fā)明的整體流程,如下所示:
[0031]初始化,加載并解析配置文件,獲取管理員的配置項值;
[0032]獲取資源請求,通過主資源調(diào)度算法計算所述資源請求中各維度資源數(shù)量占所述集群中總資源數(shù)量的比重,設(shè)置一閾值,將所述比重大于所述閾值的資源請求作為主資源請求;
[0033]步驟2,設(shè)置所述資源請求的最大值與規(guī)整化單位,將集群資源劃分成若干資源區(qū)間,其中所述規(guī)整化單位作為所述資源區(qū)間的值,所述資源區(qū)間的值不大于所述資源請求的最大值;
[0034]獲取新資源請求,并獲取所述新資源請求的新主資源請求,查找與所述新主資源請求相對應(yīng)的所述資源區(qū)間,根據(jù)所述資源區(qū)間,將與所述新資源請求相匹配的物理節(jié)點進(jìn)行分配,以完成集群資源調(diào)度;將所述新主資源請求與所述新資源請求中除所述新主資源請求之外的資源請求分配到同一物理節(jié)點,其中所述新主資源請求與所述新主資源請求之外的資源請求的和,不大于所述物理節(jié)點的資源總量;當(dāng)所述物理節(jié)點中各資源所占比例相當(dāng),則優(yōu)先分配到與所述物理節(jié)點中資源占比更大的資源相匹配的資源請求。
[0035]內(nèi)存資源請求與中央處理器資源請求,并將所述內(nèi)存資源請求與中央處理器資源請求進(jìn)行染色。
[0036]以下為本發(fā)明一具體實施例,如下所示:
[0037]本發(fā)明所述的調(diào)度算法基于Hamonic裝箱算法,將裝箱的思想應(yīng)用到二維資源(內(nèi)存和CPU)調(diào)度,減少資源分配過程中集群中的不可分配的“資源碎片”,算法的具體實施如下,如圖1所示:
[0038]步驟101,根據(jù)主資源調(diào)度算法(Dominant Resource Fit, DRF),計算資源請求中各維度資源量占總資源量的比重,將比重較大的資源作為該資源請求的主資源,其中記MEM_REQ表示內(nèi)存比重較大(即內(nèi)存與CPU的比值大于閾值mem_cpu_rat1,用戶可自定義,可參考集群總的可用資源中內(nèi)存與CPU的比例)的資源請求,記CPU_REQ表示CPU比重較大(即內(nèi)存與CPU的比值小于閾值mem_cpu_rat1)的資源請求。
[0039]步驟102,設(shè)置應(yīng)用程序的資源請求的最大值(MAX_MEM,MAX_CPU)和資源規(guī)整化單位(該值可對內(nèi)存和CPU資源量取整),對于MEM_REQ,將內(nèi)存規(guī)整化單位作為每個區(qū)間的大小,區(qū)間總的大小為(0,ΜΑΧ_ΜΕΜ]。設(shè)用戶的資源請求經(jīng)規(guī)整化后的內(nèi)存容量為M1,...,Mi,...,Mk,劃分為如下區(qū)間:(0,MJ,...,,(M1^MkLk 是內(nèi)存資源量規(guī)整化后的區(qū)間個數(shù)(l〈k〈N,l〈i〈k)。若對于某個MEM_REQ,有M e (Mi+ Mi],則記該MEM_REQ為吣。同理,對于CPU_REQ,將CPU規(guī)整化單位作為每個區(qū)間的大小,區(qū)間總的大小為(0,MAX_CPU]。設(shè)用戶的資源請求經(jīng)規(guī)整化后的CPU資源量為C1,...,Cj,...,Cm,則區(qū)間劃分為(0,C1],...,(Cjm, C山...,(Cm,CJ,m 是 CPU 規(guī)整化后的區(qū)間個數(shù)(其中 l〈m〈N,l〈j〈m)。若對于某個CPU_REQ,有C e (Cjm, Cj],則記該CPU_REQ為Cj.
[0040]步驟103,判斷收到的資源請求的類型(MEM_REQ或CPU_REQ),并根據(jù)其主資源的資源量大小所屬區(qū)間,確定該資源請求的類型^或Cp在資源分配的過程中,對于收到的資源請求標(biāo)記顏色,分別染為紅色和藍(lán)色。emi和β μ分別表示在一個節(jié)點可滿足的藍(lán)色Mi和藍(lán)色Cj的最大數(shù)目,δ⑴和δ表示該物理服務(wù)器中除了藍(lán)色M 1或Cj外的剩余的資源量。
[0041]步驟104,根據(jù)物理節(jié)點上已得到滿足的資源請求的類別將物理節(jié)點分組,對應(yīng)分配了主資源為MEM和CPU的物理節(jié)點的分組信息如下:
[0042](I)對應(yīng)MEM_REQ的物理節(jié)點的分組情況:
[0043]a)GROUP_MEM(Mi),該分組中的物理節(jié)點上僅滿足藍(lán)色M-該組的物理節(jié)點只有一個處于允許分配的狀態(tài)且該節(jié)點上的藍(lán)色Mi少于β mi。該組其他物理節(jié)點上運(yùn)行著的吣數(shù)均為I。
[0044]b) GROUP_MEM(Mi, Mj),該組的物理節(jié)點上滿足的MEM_REQ既有藍(lán)色的Mi*有紅色的Mj,即兩種資源量處于不同區(qū)間的內(nèi)存為主資源的資源請求。該分組中每個物理節(jié)點上可滿足的藍(lán)色的吣的最大數(shù)目為β mi,則該節(jié)點上紅色的%可使用的資源量為δ mi。該組中至多有3種物理節(jié)點,分別是:當(dāng)且僅當(dāng)節(jié)點上藍(lán)色的Mi的數(shù)目少于最大值β mi的物理節(jié)點、當(dāng)且僅當(dāng)節(jié)點上的紅色%占用的總資源量少于δ mi的物理節(jié)點和分配的藍(lán)色Mi的數(shù)目少于最大值emi且分配的紅色的M-用的總資源量少于δ mi的物理節(jié)點。
[0045]c)GROUP_MEM(Mi, Mj,Cg),該分組中的物理節(jié)點上滿足3種類型的資源請求,包括:藍(lán)色的%、紅色的Mj和紅色的C g。該組的物理節(jié)點上可滿足的藍(lán)色的Mi的最大數(shù)目為β mi,另外可滿足的兩種紅色資源請求的最大數(shù)量則由該節(jié)點上除了藍(lán)色Mi外的剩余資源量決定。該組至多有2種處于可分配狀態(tài)的物理節(jié)點,分別是分配的藍(lán)色Mi的數(shù)目少于最大值β mi的節(jié)點和除了藍(lán)色M i占用外剩余的資源量可以分配給紅色M」或紅色C 8的節(jié)點。
[0046]d)GROUP_MEM(Mi, ?,?),該組的物理節(jié)點上滿足的資源請求的類型未最終確定,但可以知道的是節(jié)點上當(dāng)前僅分配了藍(lán)色的%。該組的節(jié)點都處于可分配狀態(tài),以后可能在節(jié)點上為紅色的MEM_REQ或紅色的CPU_REQ分配資源。在滿足了除藍(lán)色Mi外的資源請求后更新該節(jié)點的分組為GROUP_MEM(Mi,Mj)或GROUP_MEM