數據中心資源管理系統及作業調度方法
2023-05-18 15:30:31 4
專利名稱:數據中心資源管理系統及作業調度方法
技術領域:
本發明屬於計算機系統技術領域,尤其涉及提高數據中心資源共享效率的方法。
背景技術:
數據中心(DataCenter)通常是指在一個物理空間內實現信息的集中處理、存儲、 傳輸、交換、管理的場所,由位於同一個機房的一個或者多個機群組成。機群是由眾多伺服器或工作站(workstation)通過高速網絡連接起來構成的計算機系統,構成機群的伺服器或工作站被稱為節點。近年來,網際網路應用發展迅速,呈現出應用類型多,應用規模大(活躍用戶量、訪問量和業務數據量)等特徵,使得支撐網際網路應用的數據中心規模急劇擴大,由幾百臺、幾千臺擴展至幾萬臺甚至是幾十萬臺規模。並且,由於應用負載特徵的多樣性、數據中心節點資源的多樣性以及節點資源在使用過程中的動態性,給數據中心機群作業調度帶來了很大的困難。如何合理地調度作業(例如網際網路應用),高效地共享機群資源,提高數據中心資源利用率,是數據中心資源管理的關鍵問題。一般的數據中心資源管理系統如附圖1所示,採用資源分區的方法將數據中心資源劃分為多個獨立的分區(多個獨立的小機群),根據應用和資源的特徵,為每一個分區 (機群)設置不同的作業調度策略,在一定的規則下,不同分區間可以租借部分資源。這種方法簡單、易實現,但是存在機群數量多,規模小,作業不能跨分區有效共享資源的現象,造成資源碎片;此外,租借式的資源共享方法缺乏靈活性和即時性,導致作業無法快速擴容和縮容,不能很好地適應當前網際網路應用的需求,造成資源利用率低,應用成本較高。
發明內容
因此,本發明的目的在於克服上述現有技術的缺陷,提供一種兼顧公平和容量的數據中心調度方法。本發明的目的是通過以下技術方案實現的—方面,本發明提供了一種數據中心資源管理系統,所述系統包括位於數據中心的多個物理節點和數據中心資源管理器,所述數據中心資源管理器以組為單位來管理和分配物理節點上的資源,一個或多個組共享數據中心的多個物理節點上的資源,每個組各自擁有資源配額和作業調度算法,所述每個組的資源配額為該組可以使用的最低的資源使用數量,每個組的作業能運行於數據中心中的任何滿足作業運行要求的物理節點上。上述系統中,數據中心資源管理器可以以配置文件方式來對組進行管理,在所述配置文件中,為每個組配置的屬性包括名稱、資源配額、有權向該組提交作業的用戶、作業調度策略、作業搶佔調度策略、優先級、已使用的資源數量。上述系統中,數據中心資源管理器可以通過修改配置文件來建立組、刪除組或改變每個組的屬性。上述系統中,其中用戶或者應用可以向多個有提交作業權限的組提交作業,但同
4一作業能且只能提交給一個組。上述系統中,其中數據中心資源管理器還用於進行作業調度。另一方面,本發明提供了一種用於上述系統的作業調度方法,所述方法包括步驟1,計算每個組的優先級;步驟2,選擇要參與作業調度的組;步驟3,對所選擇的組進行作業調度。上述方法中,所述步驟1可以按照如下公式來計算每個組的優先級一個組的優先級=所有組的資源配額的最小公倍數/該組已用資源數量。上述方法中,在所述步驟2之前還包括對多個組按照優先級從高到低進行排序的步驟。上述方法中,所述步驟2按照下面的優先順序來選擇要參與作業調度的組(1)選擇優先級最高且有等待作業的組;(2)選擇比該組優先級高的所有組等待作業個數為0,而該組是有等待作業的組;(3)選擇前面優先級高的、參與了作業調度但不成功的組,且該組已用資源小於其資源配額的優先級高的組。上述方法中,步驟幻包括步驟31,根據所選擇的組的作業調度策略進行作業調度;步驟32,如果作業調度成功,則轉至步驟1 ;如果作業調度不成功,判斷是否需要進行作業搶佔調度;步驟33,對所選擇的組進行作業搶佔調度;步驟34,如果作業搶佔調度成功,則睡眠一段時間,轉至步驟1 ;否則,判斷所選擇的組是否是優先級最低的組,如果是,則睡眠一段時間,轉至步驟1,否則選擇下一個組,並判斷其已用資源的數量是否小於其資源配額,如果小於,則轉至步驟31,否則睡眠一段時間,轉至步驟1。上述方法中,步驟32可以採用下面的步驟來判斷是否需要進行作業搶佔調度當一個組的已用資源小於「其資源配額X第一閾值」的值時,需要進行搶佔調度;當一個組的已用資源大於「資源配額X第二閾值」的值時,其可以被搶佔調度;其中第一閾值的取值範圍為(0,1],第二閾值的取值範圍為[1,自然數)。上述方法中,第一閾值可以是0.9,第二閾值可以是1. 1。與現有技術相比,本發明的優點在於以組為單位來管理和分配資源以及進行作業調度,每一個組的作業能運行於數據中心任何一臺滿足作業運行要求、有足夠空閒資源的節點上,因此不存在資源分割和資源碎片的現象。當負載高時,多個組按照資源配額成比例地共享數據中心的資源,當負載低時,有等待作業的組可以按資源配額成比例地申請空閒資源,儘可能多地下發作業,從而提高數據中心資源利用率。而且可以通過修改組的資源配額以及作業調度策略,實現多個組的資源的快速擴容和動態收縮,滿足應用作業調度需求的多樣性以及應對突發時間的需求。
以下參照附圖對本發明實施例作進一步說明,其中圖1為現有的數據中心資源管理系統的結構示意圖;圖2為根據本發明實施例的數據中心資源管理系統的結構示意圖;圖3為根據本發明實施例的數據中心作業調度方法的流程圖。
具體實施例方式為了使本發明的目的,技術方案及優點更加清楚明白,以下結合附圖通過具體實施例對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明, 並不用於限定本發明。圖2所示是根據本發明一個實施例的數據中心資源管理系統的架構示意圖。該系統包括位於數據中心的多個物理節點以及數據中心資源管理器。其中,數據中心資源管理器以組(Group)為單位來分配和管理多個物理節點上的資源以及進行作業調度。多個組共享數據中心的所有資源。可以為每個組分配一定的資源配額(Resource Quota)和選擇作業調度策略。用戶或者應用可以向多個有提交作業權限的組提交作業,但同一作業能且只能提交給一個組。一個組可以代表一個用戶組或應用,例如應用可以是如IM即時通訊,開心農場,QQ遊戲,在線視頻等的網際網路業務。與現有的數據中心資源管理系統中的分區不同,分配給一個組的資源配額是一個邏輯概念,表示保證滿足它可以使用的最低資源數量,並不包含專用於該組的節點列表。每個組的作業能運行於數據中心任何一臺滿足作業運行要求、有足夠空閒資源的節點上,因此不存在資源分割和資源碎片的現象。而現有系統中的分區是物理概念,通常分區各自擁有一定數量的節點,分區之間相互獨立。其中,數據中心常用的資源劃分主要包括以下幾種形式(1)物理機;( 虛擬機, 為每一臺虛擬機分配的計算資源,主要有CPU,內存,磁碟和網絡;C3)槽(Slot),按照節點的CPU個數劃分成多個槽;(4)Linux容器(Container)。本發明可以支持多種機群資源劃分方式,也就是任何形式的數據中心的資源都可以按照本發明提供的方法來進行管理和分配。藉助下文將要介紹的作業調度方法,當機群負載高時,多個組按照資源配額公平地共享機群資源,滿足每個組的最低資源需求;當機群負載低時,有等待作業的組可以按資源配額成比例地申請機群空閒資源,儘可能多地下發作業,從而提高機群資源利用率,實現機群資源可伸縮管理。數據中心資源管理器可以通過配置文件(例如其可以命名為Group, conf)的方式來實現組的配置和管理。根據這個配置文件,數據中心資源管理器讀取並初始化每個組的資源配額、作業調度策略、作業搶佔調度策略和權限管理等配置信息。通過修改配置文件, 可以動態地組織多個組,達到數據中心資源管理的靈活性。也可以為每個組增加各種屬性以及權限,例如為每個組選擇合適的作業調度策略,來實現數據中心資源管理的多樣化,滿足網際網路應用作業調度需求的多樣性。在一個實施例中,Group, conf文件格式例如為對每個組的配置包含下列關鍵字 (關鍵字與內容可以以冒號進行隔離)Name 組的名字,它可以由大寫字母(A-Z)、小寫字母(a_z)、數字(0_9)以及下劃
6線(_)構成的字符串,但其最大長度不超過常量MAXGROUPNAMELEN(最大分區名長度),並且任何兩個組的名字不能相同。ResourceQuota 該組的資源配額,即該組最低資源使用數量。它必須是大於O的自然數,它的取值範圍為(0,可用資源數量)。Users 有權向該組提交作業的用戶信息,可以如下形式描述"username | username,,其中「 |,,表示「或者,,。khedPolicy 該組的作業調度策略。可以字符串表示,不區分大小寫,主要有 FIFO, Priority, Capacity, BackFill 等作業調度策略。I^reemptiv必chedPolicy 該組的搶佔作業調度策略。可以字符串表示,不區分大小寫,主要有低優先級作業優先、最近運行作業優先等搶佔作業調度策略。Priority 該組的優先級。(可參見下文討論的組的優先級計算方法)UsedResource 該組所有已運行作業佔用資源數量的總和。對於已用資源的數量的計算方式,目前通用的有兩種(1)直接按照CPU的個數來計算已用資源數量。⑵關鍵資源計算方法,例如假設一臺伺服器有4個CPU,16G內存。作業的資源需求是2CPU,4G內存。它佔用了整臺服務的CPU,1/4的內存,按佔用比例最大的CPU計算共享資源使用量,即1/2臺伺服器;應指出本發明支持多種資源計算方法,在本發明中要求的得到一個組的已用資源的數量,至於其具體計算方法,用戶可以根據需求,自行選擇。另外,上文關於資源配額的設置與資源計算方法相關,如果採用CPU個數的方法,其配額只要指定最低可使用的CPU個數就可以了 ;如果採用關鍵資源計算方法,其資源配額需要指定CPU,內存,磁碟和網絡帶寬。系統啟動時,讀取配置文件獲取Group的資源配額、作業調度算法和作業搶佔調度算法等的初始值,但其值在系統運行時是可以動態修改的,例如可以通過API動態修改。 每次作業調度時,根據組的新的資源配額值計算該組的優先級,以及根據該組的調度算法配置,選擇不同的作業調度算法。每個Group可以根據應用負載特徵,選擇合適的作業調度策略和作業搶佔調度策略,滿足網際網路應用作業調度需求的多樣性。圖3示出了根據本發明一個實施例的數據中心作業調度方法的流程圖。該方法採用了兩級的作業調度方法。第一級作業調度,根據每個組的優先級和已用資源情況,選擇參與作業調度的組,保證多個組按照資源配額成比例地共享機群資源;第二級作業調度,根據所選擇的組的配置,選擇作業調度算法,調度該組的等待作業。主要包括以下步驟步驟1, 首先計算每個組的優先級並按優先級由高到低排序;步驟2,選擇參與作業調度的組;步驟 3,按照所選擇的組的配置,進行作業調度。另外,如果機群目前負載高,資源緊張,則利用作業搶佔調度實現多個組按照資源配額成比例地共享機群資源。在一個實施例中,每個組的優先級可以由該組的資源配額以及它所有已運行作業佔用資源總量計算得出,數值越大,優先級越低,具體計算方法如下(1)設置一個組的資源配額;(2)計算所有組資源配額的最小公倍數;(3)計算該組的已用資源數量;(4)該組優先級=所有組的資源配額的最小公倍數/該組已用資源數量;當該組已用資源為0時,其優先級固定為0。
在上述組的優先級算法中,通過求最小公倍數,再除以該組使用的資源數可以保證多個group按資源配額比例公平的共享集群資源。舉例來說,有兩個組A和B,組A的資源配額是2,組B的資源配額是3,運行相同的作業,每個作業消耗的資源假設是1,那麼當A 已運行作業個數為1,B已運行作業個數為1時,B的優先級比A高,作業調度時排在前面,但是當B已運行作業個數為2時,其優先級值為4,而A優先級值為3,A排在前面。再例如,A 和B的資源配額都是1,A運行一個作業,B沒有運行作業,作業調度時,B的優先級比A高, 當B運行作業為兩個時,A的優先級比B高。可見,上述關於組的優先級計算算法在多個組共享機群資源時,按已用資源與其資源配額的比值數值,由低到高排序,保證了排在前面的優先得到作業調度的權利。一次作業調度流程,會選擇優先級高的組進行作業調度,如果它的作業調度成功,則本次作業調度結束,進行下一次作業調度,如果它沒有等待作業或者它後面的組的已用資源小於它的資源配額,則會接著調度下一個組的作業。另外,為了提高算法的效率,可以按優先級從高到低進行排序,以方便後面的選擇步驟。在一個實施例中,可以按照下面的優先順序來選擇要進行作業調度的組(1)選擇優先級最高且有等待作業的組;( 選擇在該組前面優先級高的所有組等待作業個數為 0,而該組是有等待作業的組;C3)選擇前面優先級高的組,參與了作業調度,但是作業調度不成功,也就是等待作業沒有匹配上合適的計算資源,而該組已用資源小於它的資源配額。 除此以外的組,都不會得到作業調度的機會。在一個實施例中,可以採用作業調度和作業搶佔調度相結合的方式來完成對作業的調度。進行作業搶佔調度的目的是保證多個組公平地共享集群資源,防止一個組在機群空閒的時候,下發很多作業,而且都是長作業。機群忙時,其它組可以通過作業搶佔調度來搶佔該組的作業,以使自身的作業得到下發。應指出,一次作業調度流程只調度一個組的一個作業。從上文可看出,一次作業調度流程分為兩個步驟,一是選擇要進行作業調度的組,二是根據選擇的組進行作業調度,但是對該組的作業調度一次只調度一個作業。一個作業調度成功後,作業調度流程完成,會進入下一個作業調度流程,會重新計算每個組的優先級,對這些組進行重新排序。更具體地,如圖3所示,該方法包括以下步驟a)置標誌 IsSched 等於 False ;其中,該標誌的作用是判斷作業調度流程是否選擇了一個組進行作業調度。通常, 選擇一個組進行作業調度的可能性會存在三種情況(1)選擇優先級最高的組,該組有等待作業,進行作業調度,且作業資源匹配、作業下發成功,則本次作業調度流程結束;(2)優先選擇優先級高的組進行作業調度,但是發現這些組沒有等待作業,則接著調度優先級低一些,但是有等待作業的組,這時IsSched值為false,因為前面的組沒有進行作業調度; (3)前面優先級高的組有等待作業,並且作業調度不成功,則這個時候IsSched值為true, 作業調度流程會接著調度後面的組,但是會附加一個條件,該組的已用資源小於它的資源配額。這樣做的目的是(a)保證多個組的作業調度之間的公平性,已用資源/資源配額這個比值小的組優先得到作業調度的權利;(b)保證每個組的最小資源配額。就是說,就算前面的組作業調度不成功,排在後面的組,只要它的已用資源小於它的資源配額,它依然有機會得到作業調度。這樣不僅可以滿足每個組的最小資源配額,而且在機群空閒資源時,每個組根據資源配額比例,公平地分享。即在機群忙時,多個組按照資源配額比例公平的分享機群資源;在機群閒時,有等待作業需要下發的組,按照資源配額比例,公平的分享空閒資源。b)計算每個組的優先級;c)對於組按優先級由高到低進行排序;d)選擇優先級最高的組;e)判斷被選擇的組是否有等待作業?沒有,則跳轉至步驟1);f)置標誌 IsSched 等於 iTrue ;g)根據所選擇的組的配置選擇合適的作業調度算法,進行作業調度;正如上文所介紹的,作業調度算法的初始值已經在配置文件裡設置,但也可以動態地選擇。h)判斷所選擇的組的作業調度是否成功?成功,則跳轉至步驟a);i)判斷所選擇的組是否需要作業搶佔調度?不需要,則跳轉至步驟1);可以通過設置兩個閾值,A和B,來判斷一個組是否需要進行作業搶佔調度和是否能被搶佔調度,其中A的取值範圍為(0,1],例如可以是0.9,B的取值範圍為[1,自然數), 例如可以是1. 1,設置兩個閾值A和b的目的是為了避免搶佔調度產生抖動。當一個組的已用資源小於「其資源配額XA」的值時,需要進行搶佔調度。當一個組的已用資源大於「資源配額XB」的值時,可以被搶佔調度。A和B的值是可以根據需求進行配置的。一個組被搶佔調度後一段時間內(例如20秒)不參加作業調度,也就是說作業調度流程會跳過該組, 直接調度後面的組,這樣可以防止作業調度產生抖動。而且當一個組被搶佔後的一段時間, 例如一分鐘,如果它的已用資源數量大於它的資源配額,仍不參與作業調度。j)進行該組的作業搶佔調度;k)判斷Group作業搶佔調度是否成功?成功,則跳轉至步驟ο);1)判斷該組是否是最後一個組?是,則跳轉至步驟ο);m)選擇下一個組;η)判斷被選擇的組的已用資源數量小於它的資源配額或者IsSched等於True ? 為真,則跳轉至步驟e);ο)睡眠一段時間,轉至步驟a);從上述步驟可以看出,優先選擇的組有等待作業且優先級最高的組,再者是選擇有等待作業且已用資源小於其資源配額的組參與作業調度。系統還可以設定一個默認組 (Default Group),該組的資源配額較少(約為機群資源總量的1 % _5 。當機群負載高時,由於默認組的資源配額少,優先級低,而且它的已用資源數量很容易超過它的資源配額,所以默認組的大部分等待作業得不到調度和執行;當機群負載低時,默認組可以按資源配額成比例地申請機群空閒資源,調度和執行它的等待作業,其適合用戶提交優先級低、沒有完成時間限定的作業。另外,如果所選擇的組的一個作業調度成功,則表明機群有空閒資源,負載不高, 立即進入新的作業調度流程,可以有效地調度大量小作業;否則,調度流程睡眠一段時間, 避免重複無效的作業調度。而且,系統管理員可以通過更改組的資源配額,在作業搶佔調度的幫助下,實現多個組的資源的快速擴容和動態收縮。
下面以舉例的方式來說明在上述實施例中所提供的系統和方法的應用及其效果。 例如,由於智慧型手機的普及,越來越多的人們在乘坐公交車或者地鐵的時候,登錄手機應用 (新聞,音樂,圖書等)消遣乘車時間,使得手機應用的高峰期集中在早上七點半至九點,晚上五點半至七點半這兩個區間。當人們打開電腦開始工作時,門戶網站、電子郵箱、開心農場和網頁遊戲等PC客戶端應用迎來了它們的尖峰時段。晚上八點至十一點,休閒類應用進入尖峰時段,如網路遊戲、在線視頻等。所以可以按照應用尖峰時段的不同,設置應用在不同時間的資源配額,比如規定手機應用在早上七點半到九點的資源配額是20,其它時間是 10,新聞網站在上班時段的資源配額是50,其它時段是20,網路遊戲晚上時間的資源配額是50,其它時間是20,在作業搶佔調度和應用自動部署等服務的協助下,每個應用的使用資源隨著時間變化不同而不同,實現每個組的資源快速擴容與動態收縮。這是由於通過按時段動態改變各個組的資源配額,每個組優先級會變化,會主動地搶佔其它組的資源或者被其它組搶佔。雖然本發明已經通過優選實施例進行了描述,然而本發明並非局限於這裡所描述的實施例,在不脫離本發明範圍的情況下還包括所作出的各種改變以及變化。
權利要求
1.一種數據中心資源管理系統,所述系統包括位於數據中心的多個物理節點和數據中心資源管理器,所述數據中心資源管理器以組為單位來管理和分配物理節點上的資源,一個或多個組共享數據中心的多個物理節點上的資源,每個組各自擁有資源配額和作業調度算法,所述每個組的資源配額為該組可以使用的最低的資源使用數量,每個組的作業能運行於數據中心中的任何滿足作業運行要求的物理節點上。
2.根據權利要求1所述的系統,其中,數據中心資源管理器以配置文件方式來對組進行管理,在所述配置文件中,為每個組配置的屬性包括名稱、資源配額、有權向該組提交作業的用戶、作業調度策略、作業搶佔調度策略、優先級、已使用的資源數量。
3.根據權利要求2所述的系統,其中,數據中心資源管理器通過修改配置文件來建立組、刪除組或者改變每個組的屬性。
4.根據權利要求2所述的系統,其中用戶或者應用可以向多個有提交作業權限的組提交作業,但同一作業能且只能提交給一個組。
5.根據權利要求1所述的系統,其中數據中心資源管理器還用於進行作業調度。
6.一種用於如上述任一權利要求所述的系統的作業調度方法,所述方法包括 步驟1,計算每個組的優先級;步驟2,選擇要參與作業調度的組; 步驟3,對所選擇的組進行作業調度。
7.根據權利要求6所述的方法,其中,所述步驟1以如下公式來計算每個組的優先級 一個組的優先級=所有組的資源配額的最小公倍數/該組已用資源數量。
8.根據權利要求6所述的方法,其中,在所述步驟2之前還包括對多個組按照優先級從高到低進行排序的步驟。
9.根據權利要求6所述的方法,其中,所述步驟2按照下面的優先順序來選擇要參與作業調度的組(1)選擇優先級最高且有等待作業的組;(2)選擇比該組優先級高的所有組等待作業個數為0,而該組是有等待作業的組;(3)選擇前面優先級高的、參與了作業調度但不成功的組,且該組已用資源小於其資源配額的優先級高的組。
10.根據權利要求6所述的方法,其中,所述步驟;3)包括步驟31,根據所選擇的組的作業調度策略進行作業調度;步驟32,如果作業調度成功,則轉至步驟1 ;如果作業調度不成功,判斷是否需要進行作業搶佔調度;步驟33,對所選擇的組進行作業搶佔調度; 步驟34,如果作業搶佔調度成功,則睡眠一段時間,轉至步驟1 ; 否則,判斷所選擇的組是否是優先級最低的組,如果是,則睡眠一段時間,轉至步驟1, 否則選擇下一個組,並判斷其已用資源的數量是否小於其資源配額,如果小於,則轉至步驟 31,否則睡眠一段時間,轉至步驟1。
11.根據權利要求10所述的方法,其中,步驟32採用下面的步驟來判斷是否需要進行作業搶佔調度當一個組的已用資源小於「其資源配額X第一閾值」的值時,需要進行搶佔調度;當一個組的已用資源大於「資源配額X第二閾值」的值時,其可以被搶佔調度; 其中第一閾值的取值範圍為(0,1],第二閾值的取值範圍為[1,自然數)。
12.根據權利要求11所述的方法,其中第一閾值為0. 9,第二閾值為1. 1。
全文摘要
本發明提供了數據中心資源管理系統以及用於該系統的作業調度方法。所述系統包括位於數據中心的多個物理節點和數據中心資源管理器,所述數據中心資源管理器以組為單位來管理和分配物理節點上的資源,每個組的作業能運行於數據中心中的任何滿足作業運行要求的物理節點上。當負載高時,多個組按照資源配額成比例地共享數據中心的資源,當負載低時,有等待作業的組可以按資源配額成比例地申請空閒資源,儘可能多地下發作業,提高了數據中心資源利用率。而且可以通過修改組的資源配額以及作業調度策略,實現多個組的資源的快速擴容和動態收縮,滿足了應用作業調度需求的多樣性以及應對突發時間的需求。
文檔編號G06F9/50GK102426542SQ201110335469
公開日2012年4月25日 申請日期2011年10月28日 優先權日2011年10月28日
發明者孟丹, 李勇, 李青, 塗碧波, 陳競 申請人:中國科學院計算技術研究所