專利名稱:一種數(shù)據(jù)中心資源管理系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)技術(shù)領(lǐng)域,特別是一種數(shù)據(jù)中心資源管理系統(tǒng)和方法。
背景技術(shù):
數(shù)據(jù)中心(DataCenter)通常是指在一個(gè)物理空間內(nèi)實(shí)現(xiàn)信息的集中處理、存儲、 傳輸、交換、管理的場所,由位于同一個(gè)機(jī)房的一個(gè)或者多個(gè)機(jī)群組成。機(jī)群是由眾多服務(wù)器或工作站(workstation)通過高速網(wǎng)絡(luò)連接起來構(gòu)成的計(jì)算機(jī)系統(tǒng),構(gòu)成機(jī)群的服務(wù)器或workstation被稱為節(jié)點(diǎn)。近年來,互聯(lián)網(wǎng)應(yīng)用發(fā)展迅速,呈現(xiàn)出應(yīng)用類型多,應(yīng)用規(guī)模大等特征,更具體地, 活躍用戶量、訪問量和業(yè)務(wù)數(shù)據(jù)量都呈現(xiàn)爆發(fā)性增長,使得支撐互聯(lián)網(wǎng)應(yīng)用的數(shù)據(jù)中心規(guī)模急劇擴(kuò)大,由幾百臺、幾千臺擴(kuò)展至幾萬臺甚至是幾十萬臺規(guī)模。并且,由于應(yīng)用負(fù)載特征的多樣性、數(shù)據(jù)中心節(jié)點(diǎn)資源的多樣性以及節(jié)點(diǎn)資源在使用過程中的動態(tài)性,諸如在槽 (slot)中運(yùn)行,在虛擬機(jī)中運(yùn)行,直接在操作系統(tǒng)上運(yùn)行的應(yīng)用程序運(yùn)行環(huán)境的多樣性,給數(shù)據(jù)中心機(jī)群的資源管理帶來了很大的困難。如何靈活高效地管理資源,滿足各種不同的負(fù)載對不同資源的不同需求,在業(yè)務(wù)處于波峰的時(shí)候自動快速擴(kuò)容,處于波谷的時(shí)候自動快速縮容,其關(guān)鍵是實(shí)現(xiàn)彈性資源管理?,F(xiàn)有的數(shù)據(jù)中心的資源管理架構(gòu)如圖1所示,其中,1是數(shù)據(jù)中心作業(yè)管理器,2 是被分成了若干個(gè)槽(slot)的節(jié)點(diǎn)。每個(gè)運(yùn)行任務(wù)的節(jié)點(diǎn)按照一定的規(guī)則劃分成若干個(gè)槽(slot),一旦劃定就不再更改,每個(gè)槽(slot)運(yùn)行一個(gè)任務(wù),一旦任務(wù)執(zhí)行完成,該槽 (slot)就向作業(yè)管理器申請一個(gè)新的任務(wù)。該作業(yè)管理器用于接收用戶提交的作業(yè),為每個(gè)作業(yè)指定一個(gè)唯一標(biāo)識符,將作業(yè)按照優(yōu)先級別進(jìn)行排序,并按照該順序分配作業(yè)。這種方法簡單、易實(shí)現(xiàn)、資源分配方法單一,但由于每個(gè)作業(yè)對資源的需求是不一樣的,以及任務(wù)在執(zhí)行的過程中實(shí)際所使用的資源是動態(tài)變化的,所以不能滿足不同的應(yīng)用對各種資源的不同需求。
發(fā)明內(nèi)容
為解決上述技術(shù)問題,本發(fā)明目的在于提供一種數(shù)據(jù)中心彈性資源管理系統(tǒng)和方法。根據(jù)本發(fā)明一個(gè)方面,提供了一種數(shù)據(jù)中心資源管理系統(tǒng),包括資源管理器和執(zhí)行任務(wù)節(jié)點(diǎn),其中所述資源管理器,用于接收用戶的作業(yè)提交請求,接收并存儲執(zhí)行任務(wù)節(jié)點(diǎn)的資源上報(bào)請求,并根據(jù)所述作業(yè)提交請求和所述資源上報(bào)請求向執(zhí)行任務(wù)節(jié)點(diǎn)分配作業(yè),其中所述作業(yè)提交請求包括作業(yè)屬性表達(dá)式,所述資源上報(bào)請求包括執(zhí)行任務(wù)節(jié)點(diǎn)的IP地址和資源描述;所述執(zhí)行任務(wù)節(jié)點(diǎn),用于提交資源上報(bào)請求并執(zhí)行作業(yè)。根據(jù)本發(fā)明另一方面,還提供了一種數(shù)據(jù)中心資源管理方法,包括
1)接收用戶的作業(yè)提交請求,其中所述作業(yè)提交請求包括作業(yè)屬性表達(dá)式;2)接收并存儲執(zhí)行任務(wù)節(jié)點(diǎn)的資源上報(bào)請求,其中所述資源上報(bào)請求包括執(zhí)行任務(wù)節(jié)點(diǎn)的IP地址和資源描述;3)根據(jù)所述作業(yè)提交請求和所述資源上報(bào)請求向執(zhí)行任務(wù)節(jié)點(diǎn)分配作業(yè)。上述方法中,所述步驟幻中還包括根據(jù)默認(rèn)資源需求表達(dá)式選擇執(zhí)行任務(wù)節(jié)
點(diǎn)ο上述方法中,所述作業(yè)提交請求還包括指定資源需求表達(dá)式;而且所述步驟幻中還包括根據(jù)所述指定資源需求表達(dá)式選擇執(zhí)行任務(wù)節(jié)點(diǎn)。上述方法中,所述步驟幻中還包括根據(jù)默認(rèn)排序表達(dá)式選擇執(zhí)行任務(wù)節(jié)點(diǎn)。上述方法中,所述作業(yè)提交請求還包括指定排序表達(dá)式,而且所述步驟幻中還包括根據(jù)所述指定排序表達(dá)表達(dá)式選擇執(zhí)行任務(wù)節(jié)點(diǎn)。本發(fā)明的上述系統(tǒng)和方法,可以滿足不同應(yīng)用負(fù)載對不同類型資源的各種需求; 能夠快速且高效地進(jìn)行資源管理。而且,還能夠提高資源利用率,節(jié)約運(yùn)營成本。
圖1是現(xiàn)有技術(shù)的數(shù)據(jù)中心資源管理架構(gòu)圖;圖2是根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的數(shù)據(jù)中心資源管理架構(gòu)圖;圖3是根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的資源管理方法流程圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖,對根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)中心資源管理系統(tǒng)和方法進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。圖2示出了根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的數(shù)據(jù)中心資源管理架構(gòu)圖,其中,1是數(shù)據(jù)中心作業(yè)管理器,2是資源管理器,3是運(yùn)行任務(wù)的節(jié)點(diǎn)。與圖1相比,該架構(gòu)多了一個(gè)資源管理器,用于周期性地記錄數(shù)據(jù)中心每個(gè)節(jié)點(diǎn)的當(dāng)前可用資源,以及根據(jù)作業(yè)對資源的需求來確定合適的節(jié)點(diǎn)來運(yùn)行任務(wù)。每個(gè)節(jié)點(diǎn)上包含一個(gè)資源監(jiān)控單元,用于周期性地向資源管理器匯報(bào)該節(jié)點(diǎn)當(dāng)前可用的各種資源,如cpu、memory、磁盤等,優(yōu)選地,該資源監(jiān)控單元為運(yùn)行的一個(gè)資源監(jiān)控進(jìn)程。一個(gè)節(jié)點(diǎn)可以同時(shí)運(yùn)行若干個(gè)任務(wù)。本領(lǐng)域普通技術(shù)人員可以理解,該優(yōu)選實(shí)施例中包括作業(yè)管理器,其用于接收用戶提交的作業(yè)提交請求, 為每個(gè)作業(yè)指定一個(gè)唯一標(biāo)識符以用于資源管理器進(jìn)行識別,將作業(yè)按照優(yōu)先級別進(jìn)行排序,并按照該順序?qū)?yīng)的作業(yè)提交請求轉(zhuǎn)發(fā)給資源管理器,但是該作業(yè)管理器并不是必須的,也可以直接由資源管理器接收用戶提交的作業(yè)提交請求。圖3是根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的資源管理方法流程圖,它直觀地表達(dá)了節(jié)點(diǎn)的資源上報(bào)及根據(jù)作業(yè)提交請求進(jìn)行資源分配的主要流程,其具體包括如下步驟a)數(shù)據(jù)中心的資源管理器等待節(jié)點(diǎn)的資源上報(bào)請求以及客戶端的作業(yè)提交請求, 其中該資源上報(bào)請求中包括節(jié)點(diǎn)IP地址和資源描述,如為資源上報(bào)請求,執(zhí)行步驟b),如為作業(yè)提交請求,轉(zhuǎn)步驟e)。b)根據(jù)節(jié)點(diǎn)的IP地址,在資源管理器上查找該節(jié)點(diǎn)的資源描述,如果找到了,轉(zhuǎn)步驟d),否則執(zhí)行步驟C)。c)根據(jù)節(jié)點(diǎn)的IP地址,將該資源上報(bào)請求中內(nèi)容存儲到資源管理器,轉(zhuǎn)步驟a)。d)更新資源管理器中對應(yīng)的資源描述,轉(zhuǎn)步驟a)。e)根據(jù)作業(yè)提交請求判斷用戶是否指定了對資源的需求,如果是繼續(xù)步驟f),否則轉(zhuǎn)步驟g)。f)根據(jù)資源管理器中所保存的資源描述,確定所有符合用戶指定的資源需求的節(jié)點(diǎn),轉(zhuǎn)步驟h)。g)根據(jù)資源管理器中所保存的資源描述和默認(rèn)資源需求表達(dá)式,確定所有符合由管理員指定的默認(rèn)資源需求的節(jié)點(diǎn)。h)判斷符合需求的節(jié)點(diǎn)數(shù)是否小于或等于n,其中η為作業(yè)中包含的任務(wù)(task) 的個(gè)數(shù),其中η > = 1,是則繼續(xù)步驟i),否則轉(zhuǎn)步驟j)。i)返回所有符合需求的節(jié)點(diǎn),轉(zhuǎn)步驟a)。j)根據(jù)作業(yè)提交請求判斷其中是否包含指定排序表達(dá)式,是則繼續(xù)步驟k),否則轉(zhuǎn)步驟1)。k)按照指定排序表達(dá)式對符合需求的節(jié)點(diǎn)進(jìn)行排序,轉(zhuǎn)步驟m)。1)按照資源管理器中所保存的默認(rèn)排序表達(dá)式對符合需求的節(jié)點(diǎn)進(jìn)行排序。m)返回排序后的前η個(gè)節(jié)點(diǎn),轉(zhuǎn)步驟a)。根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例,下面詳細(xì)描述上述資源上報(bào)請求和作業(yè)提交請求的實(shí)現(xiàn)方式以及相關(guān)操作。資源上報(bào)請求包含了節(jié)點(diǎn)的IP地址和資源描述,其可以表示為字符串。資源描述涉及節(jié)點(diǎn)的屬性,以下列出了一些常用的節(jié)點(diǎn)屬性?!?IP 表示節(jié)點(diǎn)的IP地址?!?Memory 表示當(dāng)前可用內(nèi)存的大小,值為大于0且小于或等于機(jī)器最大內(nèi)存的整數(shù),單位為M?!?Cpuusage 表示當(dāng)前CPU的使用率,即百分比,值為大于或等于0且小于1的小數(shù)?!?Disk 表示磁盤的空閑空間的大小,單位為M?!?DiskRate 表示磁盤的讀寫速度,值為大于0的整數(shù),單位為MB/s?!?DiskIn 表示當(dāng)前周期磁盤單位時(shí)間內(nèi)輸入的字節(jié)數(shù)。· DiskOut 表示當(dāng)前周期磁盤單位時(shí)間內(nèi)輸出的字節(jié)數(shù)。· EthRate 表示網(wǎng)卡的讀寫速度,值為大于0的整數(shù),單位為Mb/s?!?EthIn 表示當(dāng)前周期單位時(shí)間內(nèi)網(wǎng)卡讀入的字節(jié)數(shù)?!?EthOut 表示當(dāng)前周期單位時(shí)間內(nèi)網(wǎng)卡發(fā)送的字節(jié)數(shù)?!?Cores 表示節(jié)點(diǎn)的CPU核的個(gè)數(shù)?!?JobId 表示節(jié)點(diǎn)上運(yùn)行的作業(yè)的唯一標(biāo)識。節(jié)點(diǎn)上運(yùn)行的資源監(jiān)控進(jìn)程周期性地獲取本機(jī)的各種可用資源,并通過諸如遠(yuǎn)程
函數(shù)調(diào)用(RPC)的方式將資源描述匯報(bào)給資源管理器,具體地,將“keyi = Value1;......;
keyn = value/,例如“Cpuusage = 0. 3 ;Memory = 1000 ;......,,,以字符串的形式作為 RPC
調(diào)用函數(shù)的一個(gè)參數(shù),上報(bào)給資源管理器,keyi.......keyn表示各種資源的名稱,又稱為資源屬性,Value1......valine表示各個(gè)對應(yīng)資源屬性的值。資源管理器存儲所有節(jié)點(diǎn)的資源上報(bào)請求。本領(lǐng)域普通技術(shù)人員可以理解,資源上報(bào)請求可以用哈希數(shù)組或map結(jié)構(gòu)等不同方式來存儲,只要該方式可以實(shí)現(xiàn)將節(jié)點(diǎn)和其資源對應(yīng)存儲即可。下面以哈希數(shù)組為例來描述資源上報(bào)請求在資源管理器上的存儲。將每個(gè)節(jié)點(diǎn)的資源描述請求作為哈希數(shù)組的一個(gè)元素,該元素可以組織為結(jié)構(gòu)體的形式,節(jié)點(diǎn)的IP地址作為該結(jié)構(gòu)體中的一個(gè)變量,資源描述中的任意節(jié)點(diǎn)屬性也作為該結(jié)構(gòu)體中的變量。優(yōu)選地,元素在哈希數(shù)組中的下標(biāo)也標(biāo)識了節(jié)點(diǎn)的IP地址。對于以map結(jié)構(gòu)的方式存儲的資源上報(bào)請求,可以將節(jié)點(diǎn)的IP地址作為一個(gè)關(guān)鍵字(Key),將該節(jié)點(diǎn)的資源描述作為值(Value),優(yōu)選地,該資源描述組織為結(jié)構(gòu)體的形式。作業(yè)提交請求可以包括作業(yè)自身的一些屬性表達(dá)式,優(yōu)選地,所述作業(yè)提交請求還包括指定資源需求表達(dá)式和/或指定排序表達(dá)式,作業(yè)屬性表達(dá)式用于描述作業(yè)自身的一些特性,該指定資源需求表達(dá)式用于由用戶指定作業(yè)對資源的需求,該指定排序表達(dá)式用于指定對節(jié)點(diǎn)排序算法。作業(yè)屬性表達(dá)式可以以Key = Value的結(jié)構(gòu)形式來展現(xiàn),下面列出了一些常用的屬性名稱Cmd 可執(zhí)行程序的名稱,例如a. out。Args 由Cmd描述的可執(zhí)行程序所需要的參數(shù)。TaskCount 要執(zhí)行的任務(wù)的個(gè)數(shù),即要執(zhí)行的可執(zhí)行程序的個(gè)數(shù)。TransferFiles 需要拷貝到節(jié)點(diǎn)上的文件,該節(jié)點(diǎn)即任務(wù)執(zhí)行器。TaskType 作業(yè)的類型,比如普通作業(yè),cron作業(yè)(定時(shí)執(zhí)行的作業(yè))等。指定資源需求表達(dá)式可以為 Requirements = Expressionl,其中 Requirements 也可以由任意的大寫字母(A-Z)、小寫字母(a-z)、數(shù)字(0-9)、小括弧(()、大括弧({)、以及下劃線(_)構(gòu)成的字符串來替換。Expressionl表示一個(gè)表達(dá)式,例如符合C語言中邏輯表達(dá)式規(guī)范的邏輯表達(dá)式。根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例,該指定資源需求表達(dá)式例如 Requirements = Memory > IOMCpuusage < 0· 5。為了增加用戶的靈活性,在該指定資源需求表達(dá)式中,用戶可以通過IP地址來指定一臺機(jī)器或一批候選節(jié)點(diǎn)來運(yùn)行作業(yè),指定資源需求表達(dá)式可以寫成Requirements = IP == {10. 0. 0. 1,10. 0. 0. 2},用戶還可以指定兩個(gè)作業(yè)必須運(yùn)行在一臺機(jī)器上,以減少兩個(gè)作業(yè)之間的通信開銷,則指定資源需求表達(dá)式可以寫成Requirements = (JobId== 100)的形式。本領(lǐng)域普通技術(shù)人員可以理解,作業(yè)提交請求內(nèi)也可以不給出資源需求,在未給出資源需求情況下,可以采用管理員默認(rèn)的資源需求,或者任意指定節(jié)點(diǎn)來執(zhí)行任務(wù),該管理員默認(rèn)的資源需求例如 Requirements = Memory > 50&&Cpuusage < 0. 8&&Disk > 500。指定排序表達(dá)式可以為Rank = EXpreSSi0n2,其中Rank也可以由任意的大寫字母(A-Z)、小寫字母(a-z)、數(shù)字(0-9)以及下劃線()構(gòu)成的字符串來替換。Expression〗 表示一個(gè)表達(dá)式,例如符合C語言中邏輯表達(dá)式規(guī)范的算術(shù)表達(dá)式。對于上述方法的步驟 k),即可根據(jù)Rank值的大小對對應(yīng)的節(jié)點(diǎn)進(jìn)行排序。本領(lǐng)域普通技術(shù)人員可以理解,除了通過指定排序表達(dá)式指定一個(gè)排序策略來選擇最合適的機(jī)器外,也可以不指定排序策略,對于后者,可以采用管理員指定的默認(rèn)排序表達(dá)式,根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例,指定Rank = Cpuusage,并根據(jù)Rank值進(jìn)行排序。該優(yōu)選實(shí)施例可將任務(wù)集中在若干個(gè)節(jié)點(diǎn)上。當(dāng)資源管理器根據(jù)節(jié)點(diǎn)Cpu的狀態(tài)檢測到業(yè)務(wù)處于波谷時(shí),任務(wù)只會在若干臺節(jié)點(diǎn)上運(yùn)行,其余的節(jié)點(diǎn)則可以處于休眠狀態(tài);當(dāng)處于波峰時(shí),處于睡眠狀態(tài)的節(jié)點(diǎn)會被逐漸被喚醒,直到所有的節(jié)點(diǎn)都處于活躍狀態(tài)或者所有的任務(wù)都能找到資源。用戶可以通過RPC用API函數(shù)接口或通過命令等其他方式向作業(yè)管理器提交作業(yè)和作業(yè)提交請求。作業(yè)提交請求由作業(yè)管理器轉(zhuǎn)發(fā)給資源管理器。如果用RPC函數(shù)調(diào)用的方式提交作業(yè),和資源上報(bào)請求一樣,將指定資源需求表達(dá)式和/或指定排序表達(dá)式以及
作業(yè)屬性以“Al =Bl ;......An = Bn”形式的字符串作為RPC函數(shù)接口的參數(shù);如果用命
令的方式提交作業(yè),那么需要把“Al =Bl ;......An = &1”寫到文本文件上,以-file =文
件名,作為作業(yè)提交命令的參數(shù)。資源管理器每收到一個(gè)作業(yè)提交請求,就按照其中的資源需求去找尋符合需求的節(jié)點(diǎn),計(jì)算的方法為對于每個(gè)節(jié)點(diǎn),將Requirements右邊的表達(dá)式中所有屬性的名字替換成該屬性所對應(yīng)的值,然后判斷這個(gè)表達(dá)式是否為真,如果是則表明找到的節(jié)點(diǎn)是符合需求的。例如"‘Requirements = Memory > 100&&Cpuusage < 0. 5”,把每個(gè)節(jié)點(diǎn)中 Memory 的值和Cpuusage的值放到右邊表達(dá)式中對應(yīng)的位置,然后判斷表達(dá)式的值是真還是假。確定了符合資源需求的節(jié)點(diǎn)后,按照作業(yè)提交請求中的指定排序表達(dá)式去排序,排序的算法和上述找尋節(jié)點(diǎn)的方式類似。然后,選擇排在最前面的一個(gè)或多個(gè)節(jié)點(diǎn)來執(zhí)行作業(yè),優(yōu)選地,選擇多個(gè)節(jié)點(diǎn),這是因?yàn)橐粋€(gè)作業(yè)通常包含多個(gè)任務(wù)。本領(lǐng)域普通技術(shù)人員可以理解,可以根據(jù)具體的需求來增加或減少資源描述中的節(jié)點(diǎn)屬性和作業(yè)提交請求中的作業(yè)屬性本發(fā)明的很多優(yōu)點(diǎn)保證了對數(shù)據(jù)中心的彈性且高效資源管理,具體優(yōu)點(diǎn)如下本發(fā)明的優(yōu)點(diǎn)之一是能很好地解決不同應(yīng)用負(fù)載對不同類型資源的不同需求,無論作業(yè)對資源的需求多么復(fù)雜都可以用邏輯表達(dá)式描述出來,而且支持應(yīng)用程序運(yùn)行在不同的環(huán)境中,例如直接在操作系統(tǒng)上、slot上或虛擬機(jī)上等。具體例如如果應(yīng)用程序需要運(yùn)行在slot中,則上報(bào)空閑slot的個(gè)數(shù),用戶可以以slot為單位提出資源請求。本發(fā)明的優(yōu)點(diǎn)之二是能快速、高效地管理資源。當(dāng)接到節(jié)點(diǎn)的資源上報(bào)請求的時(shí)候,如果采用的是哈希數(shù)組的結(jié)構(gòu),則能迅速的通過IP地址找到對應(yīng)的資源描述,進(jìn)行更新,由于節(jié)點(diǎn)采用周期性的資源上報(bào),所以資源管理器能靈敏地感知到資源的動態(tài)變化,當(dāng)接到資源請求的時(shí)候,只要計(jì)算Requirements的邏輯值就能找到符合需求的節(jié)點(diǎn),然后對符合需求的節(jié)點(diǎn)按照Rank值進(jìn)行快速排序,所以能快速選取符合需求的節(jié)點(diǎn)。本發(fā)明的優(yōu)點(diǎn)之三是能自動擴(kuò)容縮容,提高資源利用率,降低功耗,節(jié)省運(yùn)營成本。例如,用戶可以選擇將任務(wù)集中在若干臺機(jī)器上的排序算法,或者管理員可以將這樣的排序算法作為默認(rèn)算法。因?yàn)闃I(yè)務(wù)存在波峰和波谷,當(dāng)處于波谷的時(shí)候任務(wù)只在若干臺節(jié)點(diǎn)上運(yùn)行,其余的節(jié)點(diǎn)則可以處于休眠狀態(tài),當(dāng)處于波峰的時(shí)候,處于睡眠狀態(tài)的節(jié)點(diǎn)會被逐漸被喚醒,直到所有的節(jié)點(diǎn)都處于活躍狀態(tài)或者所有的任務(wù)都能找到資源。本發(fā)明的優(yōu)點(diǎn)之四是給用戶提供很強(qiáng)的靈活性。用戶可以不用填寫任何的資源需求,默認(rèn)情況下可以給作業(yè)一份最低的資源配額;用戶也可以填寫需要的資源量,可以填所有類型的資源也可以只填部分,還可以指定在某臺特定的節(jié)點(diǎn)上執(zhí)行任務(wù),可以指定該任務(wù)要不要獨(dú)占一臺節(jié)點(diǎn),總之,可以滿足用戶各種需求。本發(fā)明的優(yōu)點(diǎn)之五是給程序管理員提供很強(qiáng)的擴(kuò)展性。資源的描述根據(jù)實(shí)際情況是可以不同的,例如如果數(shù)據(jù)中心的網(wǎng)絡(luò)性能不是很好,兩個(gè)任務(wù)之間又需要頻繁的進(jìn)行通信,那么最好將這兩個(gè)任務(wù)放到一臺機(jī)器,所以優(yōu)選地,資源上報(bào)請求中包括一個(gè)描述關(guān)于節(jié)點(diǎn)上運(yùn)行的所有作業(yè)的資源屬性,且用戶在提交作業(yè)的時(shí)候在Requirements中寫上對這個(gè)資源屬性的要求即可。應(yīng)該注意到并理解,在不脫離后附的權(quán)利要求所要求的本發(fā)明的精神和范圍的情況下,能夠?qū)ι鲜鲈敿?xì)描述的本發(fā)明做出各種修改和改進(jìn)。因此,要求保護(hù)的技術(shù)方案的范圍不受所給出的任何特定示范教導(dǎo)的限制。
權(quán)利要求
1.一種數(shù)據(jù)中心資源管理系統(tǒng),包括資源管理器和執(zhí)行任務(wù)節(jié)點(diǎn),其中所述資源管理器,用于接收用戶的作業(yè)提交請求,接收并存儲執(zhí)行任務(wù)節(jié)點(diǎn)的資源上報(bào)請求,并根據(jù)所述作業(yè)提交請求和所述資源上報(bào)請求向執(zhí)行任務(wù)節(jié)點(diǎn)分配作業(yè),其中所述作業(yè)提交請求包括作業(yè)屬性表達(dá)式,所述資源上報(bào)請求包括執(zhí)行任務(wù)節(jié)點(diǎn)的IP地址和資源描述;所述執(zhí)行任務(wù)節(jié)點(diǎn),用于提交資源上報(bào)請求并執(zhí)行作業(yè)。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,還包括作業(yè)管理器,用于接收用戶的作業(yè)提交請求,并根據(jù)所述作業(yè)的優(yōu)先級排序所述作業(yè),按照排序結(jié)果將所述作業(yè)提交請求轉(zhuǎn)發(fā)給所述資源管理器。
3.根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,所述資源管理器以哈希數(shù)組或map結(jié)構(gòu)的方式存儲所述資源上報(bào)請求。
4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的系統(tǒng),其特征在于,所述資源管理器中還存儲默認(rèn)資源需求表達(dá)式,所述資源管理器還用于根據(jù)所述默認(rèn)資源需求表達(dá)式選擇執(zhí)行任務(wù)節(jié)點(diǎn)ο
5.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的系統(tǒng),其特征在于,所述資源管理器中還存儲默認(rèn)排序表達(dá)式,所述資源管理器還用于根據(jù)所述默認(rèn)排序表達(dá)式選擇執(zhí)行任務(wù)節(jié)點(diǎn)。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述資源上報(bào)請求中包括CPU的使用率, 所述默認(rèn)排序表達(dá)式為Rank = Cpuusage的使用率。
7.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的系統(tǒng),其特征在于,所述作業(yè)提交請求還包括指定資源需求表達(dá)式,所述資源管理器還用于根據(jù)所述指定資源需求表達(dá)式選擇執(zhí)行任務(wù)節(jié)點(diǎn)ο
8.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的系統(tǒng),其特征在于,所述作業(yè)提交請求還包括指定排序表達(dá)式,所述資源管理器還用于根據(jù)所述指定排序表達(dá)式選擇執(zhí)行任務(wù)節(jié)點(diǎn)。
9.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的系統(tǒng),其特征在于,所述資源上報(bào)請求中包括執(zhí)行任務(wù)節(jié)點(diǎn)上運(yùn)行的任務(wù)的標(biāo)識。
10.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的系統(tǒng),其特征在于,所述執(zhí)行任務(wù)節(jié)點(diǎn)包括資源監(jiān)控單元,用于提交資源上報(bào)請求。
11.一種數(shù)據(jù)中心資源管理方法,包括1)接收用戶的作業(yè)提交請求,其中所述作業(yè)提交請求包括作業(yè)屬性表達(dá)式;2)接收并存儲執(zhí)行任務(wù)節(jié)點(diǎn)的資源上報(bào)請求,其中所述資源上報(bào)請求包括執(zhí)行任務(wù)節(jié)點(diǎn)的IP地址和資源描述;3)根據(jù)所述作業(yè)提交請求和所述資源上報(bào)請求向執(zhí)行任務(wù)節(jié)點(diǎn)分配作業(yè)。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述步驟幻中還包括根據(jù)默認(rèn)資源需求表達(dá)式選擇執(zhí)行任務(wù)節(jié)點(diǎn)。
13.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述作業(yè)提交請求還包括指定資源需求表達(dá)式;并且所述步驟幻中還包括根據(jù)所述指定資源需求表達(dá)式選擇執(zhí)行任務(wù)節(jié)點(diǎn)。
14.根據(jù)權(quán)利要求11、12或13所述的方法,其特征在于,所述步驟幻中還包括根據(jù)默認(rèn)排序表達(dá)式選擇執(zhí)行任務(wù)節(jié)點(diǎn)。
15.根據(jù)權(quán)利要求11、12或13所述的方法,其特征在于, 所述作業(yè)提交請求還包括指定排序表達(dá)式,并且所述步驟幻中還包括根據(jù)所述指定排序表達(dá)表達(dá)式選擇執(zhí)行任務(wù)節(jié)點(diǎn)。
全文摘要
本發(fā)明提供一種數(shù)據(jù)中心資源管理系統(tǒng)和方法,該系統(tǒng)包括資源管理器和執(zhí)行任務(wù)節(jié)點(diǎn),其中資源管理器,用于接收用戶的作業(yè)提交請求,接收并存儲執(zhí)行任務(wù)節(jié)點(diǎn)的資源上報(bào)請求,并根據(jù)所述作業(yè)提交請求和所述資源上報(bào)請求向執(zhí)行任務(wù)節(jié)點(diǎn)分配作業(yè),其中所述作業(yè)提交請求包括作業(yè)屬性表達(dá)式,所述資源上報(bào)請求包括執(zhí)行任務(wù)節(jié)點(diǎn)的IP地址和資源描述;執(zhí)行任務(wù)節(jié)點(diǎn),用于提交資源上報(bào)請求并執(zhí)行作業(yè)。上述系統(tǒng)和方法可以滿足不同應(yīng)用負(fù)載對不同類型資源的各種需求;能夠快速且高效地進(jìn)行資源管理。而且,還能夠提高資源利用率,節(jié)約運(yùn)營成本。
文檔編號G06F9/50GK102360314SQ20111033489
公開日2012年2月22日 申請日期2011年10月28日 優(yōu)先權(quán)日2011年10月28日
發(fā)明者孟丹, 李勇, 李青, 涂碧波, 陳競 申請人:中國科學(xué)院計(jì)算技術(shù)研究所