存儲調度方法和系統、作業調度方法和系統及管理節點的制作方法
【專利摘要】本發明提出了一種根據路徑可用帶寬進行調度的存儲調度方法和作業調度方法,還提出了與之相對應的管理節點、存儲調度系統和作業調度系統。本發明根據存儲調度算法將數據塊存儲在路徑可用帶寬加權均值最大的數據節點列表,避免了網絡擁塞并縮短了數據塊存儲的網絡傳輸時間。本發明根據路徑可用帶寬信息為數據節點分配優選作業進行處理,提升了作業的本地化概率,并且減少了作業總完成時間。
【專利說明】 存儲調度方法和系統、作業調度方法和系統及管理節點
【技術領域】
[0001]本發明涉及云計算【技術領域】,尤其涉及一種云計算任務調度中的存儲調度方法和系統、作業調度方法和系統及管理節點。
【背景技術】
[0002]隨著搜索引擎、社交網站、電子商務等數據密集型互聯網應用的迅猛發展,基于分布式基礎架構的海量數據處理平臺(如Had00p、MapReduCe、分布式文件系統、數據定義存儲等)被廣泛關注。在這些平臺上,不僅需要支持大容量文件(TB級、PB級)存儲/下載、快速檢索,還需要執行機器學習、數據挖掘、數據分析等大規模數據處理作業,還需要快速響應交互式用戶請求,因此,云計算平臺需要分發執行多個數據密集型的并行作業。當前作業調度算法往往從保證作業間公平分享數據中心計算資源存儲的同時,通過加強作業的數據本地性(即把任務調度于輸入數據所在的數據節點以減少網絡傳輸開銷)來提升系統性能和作業吞吐率。
[0003]這類任務調度算法存在如下缺點:1、遠程數據存儲和讀取過程中,分布式文件系統因未感知平臺內的網絡路徑可用帶寬信息,任務調度算法為作業所選擇的數據節點可能會因網絡質量差,導致數據存取時間延長,用戶體驗很差;2、數據中心工作負荷、網絡負荷等環境因素隨時可能變化,而現有的延遲調度算法的等待時間閾值是用戶提交作業時設定的,不能適應數據中心負荷的變化,雖有改進的算法,如時間閾值動態變化,但計算公式復雜,計算負荷較大,不適合大容量分布式系統,導致實用性降低。
【發明內容】
[0004]本發明的目的是提出一種云計算任務調度中的存儲調度方法和系統、作業調度方法和系統及管理節點,夠提高云計算系統的執行性能。
[0005]為了達到上述目的,本發明提出了一種存儲調度方法,包括:
[0006]管理節點獲取網絡節點各端口的網絡流量統計信息,并換算出各數據節點的路徑可用帶寬;
[0007]當管理節點接收到來自客戶端的數據塊存儲請求時,根據存儲調度算法預選出η組數據節點,每組數據節點中包括m個數據節點,其中,n、m為預先設定的整數;
[0008]管理節點根據獲得的各數據節點的路徑可用帶寬,分別計算每組數據節點的路徑可用帶寬加權均值;
[0009]并將計算得到的路徑可用帶寬加權均值最大的一組數據節點作為發起數據塊存儲請求的數據塊的存儲節點。
[0010]優選地,所述m為3,每組數據節點中,包括第二數據節點、第三數據節點和第四數據節點,第三數據節點和第四數據節點處于同一機架,第二數據節點與第三數據節點處于不同機架;
[0011]所述管理節點根據獲得的各數據節點的路徑可用帶寬,分別計算每組數據節點的路徑可用帶寬加權均值包括:
[0012]計算每組數據節點中所述客戶端到所述第二數據節點之間的第一網絡路徑的路徑可用帶寬;
[0013]計算每組數據節點中所述第二數據節點到第三數據節點之間的第二網絡路徑的路徑可用帶寬;
[0014]計算每組數據節點中所述第三數據節點到第四數據節點之間的第三網絡路徑的路徑可用帶寬;
[0015]將每組數據節點中三條網絡路徑的路徑可用帶寬進行加權平均計算路徑可用帶寬加權均值。
[0016]優選地,所述每組數據節點中所述第一網絡路徑和所述第二網絡路徑的加權系數均為0.4,所述第三網絡路徑的加權系數為0.2。
[0017]本發明還提出一種作業調度方法,包括:
[0018]管理節點獲取網絡節點各端口的網絡流量統計信息,并換算出各數據節點的路徑可用帶寬;
[0019]當第一數據節點空閑并向管理節點請求新任務時,管理節點選擇一個作業;
[0020]當所選擇的作業中沒有尚未處理的數據塊存儲在所述第一數據節點的任務,但有尚未處理的數據塊存儲的數據節點與所述第一數據節點處于同一機架的任務時,
[0021]管理節點根據獲得的各數據節點的路徑可用帶寬,計算第一數據節點所在的機架內含有所述選擇的作業所需數據塊的第一待選數據節點和第一數據節點間的路徑可用帶寬均值Btemp,并計算路徑可用帶寬比值Y ;所述第一待選數據節點為一個或一個以上。
[0022]優選地,所述第一待選數據節點和所述第一數據節點的路徑可用帶寬均值Btraip為:
[0023]B
[0024]其中,η為所述第一待選數據節點的個數;i表示機架;j表示端口辦』,Bi,J2,……,Byn為所述第一待選數據節點的路徑可用帶寬;
[0025]所述路徑可用帶寬比值Y為:
【權利要求】
1.一種存儲調度方法,其特征在于,包括: 管理節點獲取網絡節點各端口的網絡流量統計信息,并換算出各數據節點的路徑可用帶寬; 當管理節點接收到來自客戶端的數據塊存儲請求時,根據存儲調度算法預選出η組數據節點,每組數據節點中包括m個數據節點,其中,n、m為預先設定的整數; 管理節點根據獲得的各數據節點的路徑可用帶寬,分別計算每組數據節點的路徑可用帶寬加權均值; 并將計算得到的路徑可用帶寬加權均值最大的一組數據節點作為發起數據塊存儲請求的數據塊的存儲節點。
2.如權利要求1所述的存儲調度方法,其特征在于,所述m為3,每組數據節點中,包括第二數據節點、第三數據節點和第四數據節點,第三數據節點和第四數據節點處于同一機架,第二數據節點與第三數據節點處于不同機架; 所述管理節點根據獲得的各數據節點的路徑可用帶寬,分別計算每組數據節點的路徑可用帶寬加權均值包括: 計算每組數據節點中 所述客戶端到所述第二數據節點之間的第一網絡路徑的路徑可用帶寬; 計算每組數據節點中所述第二數據節點到第三數據節點之間的第二網絡路徑的路徑可用帶寬; 計算每組數據節點中所述第三數據節點到第四數據節點之間的第三網絡路徑的路徑可用帶寬; 將每組數據節點中三條網絡路徑的路徑可用帶寬進行加權平均計算路徑可用帶寬加權均值。
3.如權利要求2所述的存儲調度方法,其特征在于,所述每組數據節點中所述第一網絡路徑和所述第二網絡路徑的加權系數均為0.4,所述第三網絡路徑的加權系數為0.2。
4.一種作業調度方法,其特征在于,包括: 管理節點獲取網絡節點各端口的網絡流量統計信息,并換算出各數據節點的路徑可用帶寬; 當第一數據節點空閑并向管理節點請求新任務時,管理節點選擇一個作業; 當所選擇的作業中沒有尚未處理的數據塊存儲在所述第一數據節點的任務,但有尚未處理的數據塊存儲的數據節點與所述第一數據節點處于同一機架的任務時, 管理節點根據獲得的各數據節點的路徑可用帶寬,計算第一數據節點所在的機架內含有所述選擇的作業所需數據塊的第一待選數據節點和第一數據節點間的路徑可用帶寬均值Btemp,并計算路徑可用帶寬比值Y ;所述第一待選數據節點為一個或一個以上。
5.如權利要求4所述的作業調度方法,其特征在于,所述第一待選數據節點和所述第一數據節點的路徑可用帶寬均值Btanp為: B, =Iy k d };
temp ” L U3” O, , IjnX, 其中,η為所述第一待選數據節點的個數;i表示機架;j表示端口 Ay1, Bij J2,......,Biijn為所述第一待選數據節點的路徑可用帶寬;所述路徑可用帶寬比值Y為:
6.如權利要求4所述的作業調度方法,其特征在于,當所述選擇的作業的輪空次數滿足第一條件時,該方法還包括: 所述管理節點選擇所述第一待選數據節點中路徑可用帶寬最大的數據節點作為所述第一數據節點的數據源; 設置所述選擇的作業的輪空次數為O ; 所述管理節點將所述路徑可用帶寬最大的數據節點作為數據源的任務返回給所述第一數據節點執行; 其中,第一條件為:Countk≤(1- Y ) X1 ; 其中,Countk為所述選擇的作業的輪空次數,X1為所述第一數據節點可以申請到數據
塊存儲在所述第一數據節點的任務的概率為
7.如權利要求4所述的作業調度方法,其特征在于,當所選擇出的作業中有尚未處理的數據塊存儲在第一數據節點的任務時,該方法還包括: 所述管理節點將所述任務返回給所述第一數據節點執行。
8.如權利要求4所述的作業調度方法,其特征在于,當所述選擇的作業中沒有尚未處理的數據塊存儲在所述第一數據節點所在的機架內的任務,且所述選擇的作業的輪空次數滿足第二條件時,該方法還包括: 所述管理節點選擇其他機架中含有所述選擇的作業所需數據塊所在的第二待選數據節點的路徑中路徑可用帶寬最大的數據節點作為所述第一數據節點的數據源; 設置所述選擇的作業的輪空次數為O ; 所述管理節點將所述路徑可用帶寬最大的數據節點作為數據源的任務返回給所述第一數據節點執行; 其中,第二條件為
9.如權利要求4所述的作業調度方法,其特征在于,當所述選擇的作業中有尚未處理的數據塊存儲的數據節點與所述第一數據節點處于同一機架的任務,且所述選擇的作業的輪空次數不滿足第一條件;或者當所述選擇的作業中沒有尚未處理的數據塊存儲在所述第一數據節點所在的機架內的任務,且所述選擇的作業的輪空次數不滿足第二條件時,該方法還包括:所述管理節點將所述選擇的作業的輪空次數加I。
10.根據權利要求4~9任意一項所述的作業調度方法,所述管理節點選擇一個作業的方法包括: 所述管理節點根據各作業在系統中運行的任務數對作業進行升序排列; 所述管理節點在作業隊列中查找第一個含有尚未處理的數據塊存儲在所述第一數據節點的任務的作業,將該作業調整至同一級別的最高位置; 所述管理節點從作業隊列中由上到下選擇一個作業。
11.一種管理節點,其特征在于,至少包括: 獲取模塊,用于獲取網絡節點各端口的網絡流量統計信息,并換算出各數據節點的路徑可用帶寬; 預選模塊,用于當接收到來自客戶端的數據塊存儲請求時,根據存儲調度算法預選出η組數據節點,每組數據節點中包括m個數據節點,其中,m、η為預先設定的整數; 計算模塊,用于根據獲得的各數據節點的路徑可用帶寬,分別計算每組數據節點的路徑可用帶寬加權均值;將計算得到的路徑可用帶寬均值最大的一組數據節點作為發起數據塊存儲請求的數據塊的存儲節點。
12.—種管理節點,其特征在于,至少包括: 獲取模塊,用于獲取網絡節點各端口的網絡流量統計信息,并換算出各數據節點的路徑可用帶寬; 選擇模塊,用于當接收到來自第一數據節點的新任務請求時,選擇一個作業; 返回模塊,用于當所述選擇的作業中沒有尚未處理的數據塊存儲在所述第一數據節點的任務,但有尚未處理的數據塊存儲的數據節點與所述第一數據節點處于同一機架的任務時,根據獲得的各數據節點的路徑可用帶寬,計算所述數據節點所在的機架內含有所述作業所需數據塊的第一待選數據節點和所述第一數據節點的路徑可用帶寬均值BtMP,并計算路徑可用帶寬比值Y,所述第一待選數據節點為一個或一個以上。
13.根據權利要求12所述的管理節點,當所述選擇的作業的輪空次數滿足第一條件時,所述返回模塊,還用于: 選擇所述第一待選數據節點中路徑可用帶寬最大的數據節點作為所述第一數據節點的數據源; 設置所述選擇的作業的輪空次數為O ; 將所述路徑可用帶寬最大的數據節點作為數據源的任務返回給所述第一數據節點執行; 其中,第一條件為:Countk≥(1- Y ) X1 ; 其中,Countk為所述選擇的作業的輪空次數,X1為所述第一數據節點可以申請到數據塊存儲在所述第一數據節點的任務的概率為
14.根據權利要求12所述的管理節點,當所選擇的作業中有尚未處理的數據塊存儲在所述第一數據節點的任務時,所述返回模塊,還用于: 將所述任務返回給所述第一數據節點執行。
15.根據權利要求12所述的管理節點,當所述選擇的作業中沒有尚未處理的數據塊存儲在所述第一數據節點所在的機架內的任務,且所述選擇的作業的輪空次數滿足第二條件時,所述返回模塊,還用于: 選擇其他機架中含有所述選擇的作業所需數據塊所在的各數據節點的路徑中路徑可用帶寬最大的第二待選數據節點作為所述第一數據節點的數據源; 設置所述選擇的作業的輪空次數為O ; 將所述路徑可用帶寬最大的數據節點作為數據源的任務返回給所述第一數據節點執行; 其中,第二條件為:Countk≥X2 ; 其中,X2為所述第一數據節點可以申請到數據塊存儲在所述第一數據節點的任務的概率為pk=1-(1-nr/m)2的申請次數,N為所述選擇的作業中尚未處理的任務數,R為文件分塊的備份數,M為物理機集群數。
16.根據權利要求12所述的管理節點,當所述選擇的作業中有尚未處理的數據塊存儲的數據節點與所述第一數據節點處于同一機架的任務,且所述選擇的作業的輪空次數不滿足第一條件;或者當所述選擇的作業中沒有尚未處理的數據塊存儲在所述第一數據節點所在的機架內的任務,且所述選擇的作業的輪空次數不滿足第二條件時,所述返回模塊,還用于: 將所述選擇的作業的輪空次數加I。
17.根據權利要求12~16任意一項所述的管理節點,所述選擇模塊,還用于: 當接收到來自所述第一數據節點的新任務請求時,根據各作業在系統中運行的任務數對作業進行升序排列; 在作業隊列中查找第一個含有尚未處理的數據塊存儲在第一數據節點的任務的作業,將該作業調整至同一級別的最高位置; 從作業隊列中由上到下選擇一個作業。
18.根據權利要求12~16任意一項所述的管理節點,還包括: 預選模塊,用于當接收到來自客戶端的數據塊存儲請求時,根據存儲調度算法預選出η組數據節點,每組數據節點中包括m個數據節點,其中,m、η為預先設定的整數; 計算模塊,用于根據獲得的各數據節點的路徑可用帶寬,分別計算每組數據節點的路徑可用帶寬加權均值;將計算得到的路徑可用帶寬均值最大的一組數據節點作為發起數據塊存儲請求的數據塊的存儲節點。
19.一種存儲調度系統,其特征在于,至少包括: 管理節點,用于獲取網絡節點各端口的網絡流量統計信息,并換算出各數據節點的路徑可用帶寬;;當接收到來自客戶端的數據塊存儲請求時,根據存儲調度算法預選出η組數據節點,每組數據節點中包括m個數據節點,其中,n、m為預先設定的整數;根據獲得的各數據節點的路徑可用帶寬,分別計算每組數據節點的路徑可用帶寬加權均值;將計算得到的路徑可用帶寬加權均值最大的一組數據節點作為發起數據塊存儲請求的數據塊的存儲節占.至少一個數據節點,用于存儲來自客戶端的數據塊。
20.一種作業調度系統,其特征在于,至少包括: 管理節點,用于獲取網絡節點各端口的網絡流量統計信息,并換算出各數據節點的路徑可用帶寬;;用于當接收到來自第一數據節點的新任務請求時,選擇一個作業;當所選擇的作業中沒有尚未處理的數據塊存儲在所述第一數據節點的任務,但有尚未處理的數據塊存儲的數據節點與所述第一數據節點處于同一機架的任務時,根據獲得的各數據節點的路徑可用帶寬,計算所述第一數據節點所在的機架內含有所述作業所需數據塊的第一待選數據節點和所述第一數據節點的路徑可用帶寬均值BtMP,并根據計算路徑可用帶寬比值Y,所述第一待選數據節點為一個或一個以上; 至少一個數據節點,用于向所述管理節點請求新任務。
21.根據權利要求20所述的作業調度系統,其特征在于,當所述選擇的作業的輪空次數滿足第一條件時,所述管理節點,還用于: 選擇所述第一待選數據節點中路徑可用帶寬最大的數據節點作為所述第一數據節點的數據源; 設置所述選擇的作業的輪空次數為O ; 將所述路徑可用帶寬最大的數據節點作為數據源的任務返回給所述第一數據節點執行; 其中,第一條件為:Countk≥(1- Y ) X1 ; 其中,Countk為所述選擇的作業的輪空次數,X1為所述第一數據節點可以申請到數據塊存儲在所述第一數據節點的任務的概率為
22.根據權利要求21所述的作業調度系統,其特征在于,當所選擇出的作業中有尚未處理的數據塊存儲在第一數據節點的任務時,所述管理節點,還用于: 將所述任務返回給所述第一數據節點執行。
23.根據權利要求21所述的作業調度系統,當所述選擇的作業中沒有尚未處理的數據塊存儲在所述第一數據節點所在的機架內的任務,且所述選擇的作業的輪空次數滿足第二條件時,所述管理節點還用于: 選擇其他機架中含有所述選擇的作業所需數據塊所在的第二待選數據節點的路徑中路徑可用帶寬最大的數據節點作為所述第一數據節點的數據源; 設置所述選擇的作業的輪空次數為O ; 將所述路徑可用帶寬最大的數據節點作為數據源的任務返回給所述第一數據節點; 其中,第二條件為:Countk≥X2 ; 其中,X2為所述第一數據節點可以申請到數據塊存儲在所述第一數據節點的任務的概
率率
24.根據權利要求21所述的作業調度系統,當所述選擇的作業中有尚未處理的數據塊存儲的數據節點與所述第一數據節點處于同一機架的任務,且所述選擇的作業的輪空次數不滿足第一條件;或者當所述選擇的作業中沒有尚未處理的數據塊存儲在所述第一數據節點所在的機架內的任務,且所述選擇的作業的輪空次數不滿足第二條件時,所述管理節點還用于: 將所述選擇的作業的輪空次數加I。
25.根據權利要求21~24任意一項所述的作業調度系統,所述管理節點還用于: 當接收到來自所述第一據數據節點的新任務請求時,根據各作業在系統中運行的任務數對作業進行升序排列; 在作業隊列中查找第一個含有尚未處理的數據塊存儲在所述第一數據節點的任務的作業,將該作業調整至同一級別的最高位置; 從作業隊列中由上到 下選擇一個作業。
【文檔編號】H04L29/08GK103617083SQ201310534978
【公開日】2014年3月5日 申請日期:2013年10月31日 優先權日:2013年10月31日
【發明者】左奇, 戚晨, 王東, 王志坤, 曲文武 申請人:中興通訊股份有限公司