專利名稱:存儲資源調(diào)度方法和裝置的制作方法
技術領域:
本發(fā)明涉及計算機領域,尤其涉及一種存儲資源調(diào)度方法和裝置。
背景技術:
云存儲系統(tǒng)的存儲資源,可以由專屬的存儲服務器充當,但為了更好地實現(xiàn)‘云’ 的概念,提倡只要有多余的存儲資源,加到云端,便可被調(diào)度使用,所以通常情況下對存儲 資源不做專屬限制,可以是普通個人計算機的多余存儲,也可以是專屬服務器的多余存儲 資源。在有成千上萬的存儲設備時,如何最快的獲取各個存儲資源子存儲節(jié)點的信息以 完成資源調(diào)度,是一個迫切需要解決的問題。
發(fā)明內(nèi)容
本發(fā)明提供了一種存儲資源調(diào)度方法和裝置,解決了如何最快的獲取各個存儲資 源子存儲節(jié)點信息以完成資源調(diào)度的問題。一種存儲資源調(diào)度方法,包括獲取最近更新的計算機集群中各存儲設備的狀態(tài)信息;根據(jù)所述各存儲設備的狀態(tài)信息,計算所述計算機集群中各存儲節(jié)點的被調(diào)度概 率系數(shù),一臺存儲設備包括至少一個存儲節(jié)點;選擇被調(diào)度概率系數(shù)值較高的存儲節(jié)點,對該節(jié)點進行調(diào)度使用。優(yōu)選的,所述獲取最近更新的計算機集群中各存儲設備的狀態(tài)信息具體為從緩存(Memcached)服務器上讀取所述計算機集群中各存儲設備的狀態(tài)信息,所 述狀態(tài)信息包括存儲設備端口、各端口剩余空間、各端口總空間、各存儲設備的存儲節(jié)點總 數(shù)和各存儲設備的剩余存儲節(jié)點數(shù)。優(yōu)選的,上述存儲資源調(diào)度方法還包括所述計算機集群中的各存儲設備定期向所述Memcached服務器上報該存儲設備 的狀態(tài)信息;所述Memcached服務器使用存儲數(shù)組存儲所述狀態(tài)信息,所述存儲數(shù)組的每個元 素至少包括一存儲設備的主機名(hostname)及該存儲設備的端口(port)。優(yōu)選的,所述根據(jù)所述各存儲設備的狀態(tài)信息,計算所述計算機集群中各存儲節(jié) 點被調(diào)度概率系數(shù)包括建立二維坐標系,設存儲節(jié)點所對應存儲設備的空間利用率,即剩余空間與總空 間的比率spadratio為X軸,設該存儲設備的存儲節(jié)點利用率,即剩余存儲節(jié)點數(shù)與總存 儲節(jié)點數(shù)的比率in0de_rati0為Y軸;設(1,1)點為 ρ, (space_ratio, inode_ratio)點為 q, (0 < space_ratio < = 1, 0 < inode_ratio < = 1);連接pq,并延長使得其與坐標軸相交,設交點為r ;
Z為qr線段長度,即q點的得分權(quán)重(0 < Z <= 1);將Z作為所述存儲節(jié)點的被調(diào)度概率系數(shù)。優(yōu)選的,所述選擇被調(diào)度概率系數(shù)值較高的存儲節(jié)點具體為在多個存儲節(jié)點的被調(diào)度概率系數(shù)相同時,對所述存儲設備中的多個剩余存儲節(jié) 點做隨機選擇,從中選擇出一個存儲節(jié)點,調(diào)度該存儲節(jié)點。優(yōu)選的,所述存儲數(shù)組的元素還包括存儲節(jié)點的被調(diào)度概率系數(shù),該方法還包 括在所述Memcached服務器上的存儲數(shù)組中存入各存儲節(jié)點被調(diào)度的概率。本發(fā)明還提供了一種存儲資源調(diào)度裝置,其特征在于,包括數(shù)據(jù)獲取模塊,用于獲取最近更新的計算機集群中各存儲設備的狀態(tài)信息;概率計算模塊,用于根據(jù)所述各存儲設備的狀態(tài)信息,計算所述計算機集群中各 存儲節(jié)點被調(diào)度的概率,一臺存儲設備包括至少一個存儲節(jié)點;存儲節(jié)點調(diào)度模塊,用于選擇被調(diào)度概率較高的存儲節(jié)點,對該節(jié)點進行資源調(diào)度。本發(fā)明提供了一種存儲資源調(diào)度方法和裝置,獲取最近更新的計算機集群中各存 儲設備的狀態(tài)信息;根據(jù)所述各存儲設備的狀態(tài)信息,計算所述計算機集群中各存儲節(jié)點 被調(diào)度的概率,一臺存儲設備包括至少一個存儲節(jié)點;選擇被調(diào)度概率較高的存儲節(jié)點,對 該存儲節(jié)點進行資源調(diào)度。以存儲節(jié)點為單位完成調(diào)度,實現(xiàn)了調(diào)度的快速完成,解決了如 何最快的獲取各個存儲資源子存儲節(jié)點信息以完成資源調(diào)度的問題。
圖1為本發(fā)明的實施例提供的一種存儲資源調(diào)度方法的流程圖;圖2為本發(fā)明的實施例提供的一種存儲資源調(diào)度裝置的結(jié)構(gòu)示意圖。
具體實施例方式下文中將結(jié)合附圖對本發(fā)明的實施例進行詳細說明。需要說明的是,在不沖突的 情況下,本申請中的實施例及實施例中的特征可以相互任意組合。首先,結(jié)合附圖,對本發(fā)明的實施例一進行說明。本發(fā)明實施例提供了一種存儲資源調(diào)度方法,使用該方法完成存儲資源調(diào)度的流 程如圖1所示,包括步驟101、計算機集群中的各存儲設備定期向Memcached服務器上報該存儲設備 的狀態(tài)信息;本發(fā)明的實施例所涉及的存儲設備中均部署有Linux操作系統(tǒng),通過利用 Memcached協(xié)議獲取存儲資源狀態(tài)。本發(fā)明實施例中,存儲設備的狀態(tài)存在Memcached服務 器當中,由存儲設備上的匯報程序定期向Memcached服務器上報狀態(tài)信息。如果Memcached 服務器超時未更新某一存儲設備的狀態(tài)信息,則視為該存儲設備失效,不再將該存儲設備 置于待調(diào)度的行列。本發(fā)明實施例中,所述Memcached服務器使用存儲數(shù)組存儲所述狀態(tài)信息,所述 存儲數(shù)組的每個元素至少包括一存儲設備的hostname及該存儲設備的port。
步驟102、獲取最近更新的計算機集群中各存儲設備的狀態(tài)信息;本步驟中,當外部的存儲資源請求到達的時候,讀取Memcached服務器中的計算 機集群內(nèi)各存儲設備的狀態(tài)信息。步驟103、根據(jù)所述各存儲設備的狀態(tài)信息,計算所述計算機集群中各存儲節(jié)點的 被調(diào)度概率系數(shù),一臺存儲設備包括至少一個存儲節(jié)點;本步驟中,根據(jù)狀態(tài)信息計算各個存儲節(jié)點的被調(diào)度概率系數(shù)。每臺存儲設備 具有至少一個接受讀寫的端口,每個端口均對應一個存儲節(jié)點,當一個存儲設備具有多 個端口時,該存儲設備便具有多個存儲節(jié)點,此時需要一個數(shù)組來存儲每個存儲節(jié)點的 hostname :port和被調(diào)度概率(實際存儲的時候,最初存的是該存儲設備的概率區(qū)間的起 始值)。計算被調(diào)度概率的方法具體如下建立二維坐標系,設存儲設備的空間利用率,即剩余空間與總空間的比率spaCe_ ratio為X軸,設存儲設備的文件系統(tǒng)inode節(jié)點利用率,即剩余文件系統(tǒng)inode節(jié)點數(shù)與 總文件系統(tǒng)inode節(jié)點數(shù)的比率in0de_rati0為Y軸;設(1,1)點為 p, (space_ratio, inode_ratio)點為 q ;(0 < space_ratio < = 1,0 < inode_ratio <= 1);連接pq,并延長使得其與坐標軸相交,設交點為r ;Z為qr線段長度為該點的得分權(quán)重(0 < Z < = 1);返回整數(shù)(Z*SC0RE_MULTI) (SC0RE_MULTI僅為了將浮點數(shù)轉(zhuǎn)為整數(shù))。步驟104、選擇被調(diào)度概率系數(shù)值較高的存儲節(jié)點,對該存儲節(jié)點進行資源調(diào)度;本步驟中,按步驟103計算獲得的被調(diào)度概率系數(shù)選擇提供存儲資源的存儲節(jié) 點,一般選擇被調(diào)度概率系數(shù)值較高的存儲節(jié)點進行調(diào)度。當一個存儲設備具有多個端 口(即包括多個存儲節(jié)點時),這些存儲節(jié)點的被調(diào)度概率系數(shù)值一般情況下是一樣的,此 時,還需要通過隨機算法從多個被調(diào)度系數(shù)值一樣的存儲節(jié)點中選擇一個存儲節(jié)點(可以 理解為保持設備內(nèi)部存儲目錄層面的存儲均衡)。此外,如果Fcopy大于1,則需要選擇Fcopy臺互不相同的機器。Fcopy即系統(tǒng)拷貝 次數(shù),是系統(tǒng)中為了進行災備設置的參數(shù),同時存在多個存儲節(jié)點上,以進行冗余備份(進 行冗余備份的多個存儲節(jié)點是可跨地區(qū)的),防止災難。如果不備份的話,默認的Fcopy值 是1,如果需要多備份,就是根據(jù)調(diào)度算法選擇多次,分別存儲多次,做到冗余備份。如果需 要選擇多個拷貝點,會再次進行多次的存儲節(jié)點選擇,但是,此時會加入前一次選中的存儲 節(jié)點的參數(shù),避免選到同一個設備(通過比較hostname實現(xiàn))。具體的,在同一存儲設備的多個存儲節(jié)點中選擇一個的算法如下設有η個存儲節(jié)點,每個存儲節(jié)點的分數(shù)分布為Ni,Ν2,. . .,Nn ;生成一個區(qū)間數(shù)組Μ,其中,Mi = Mi-1+Ni(i > 1),Ml = Ni,貝ljMk(0 < k < n+1) 為一個單調(diào)遞增序列;取m = rand(0, Mn),則m必定落在某一個區(qū)間[Mj,Mj+Ι)中,Nj則為被選中的存
儲節(jié)點。步驟105、分別計算被選中存儲節(jié)點的/path/to/store/this/file/加上 hostname :port, 一起置入Memcached服務器緩沖區(qū),以此作為外部的存儲資源請求訪問該選中的存儲節(jié)點的依據(jù)。如/path/to/store/this/file即為存儲的路徑。需要說明的是,使用memcached服務器完成存儲設備狀態(tài)信息的獲取和存儲并不 是收集存儲設備狀態(tài)信息的唯一方式。亦可以通過存儲設備構(gòu)成的集群的控制設備完成各 存儲設備狀態(tài)信息的獲取,本發(fā)明實施例中對此不作限定。本發(fā)明的實施例還提供了一種存儲資源調(diào)度裝置,其結(jié)構(gòu)如圖2所示,包括數(shù)據(jù)獲取模塊201,用于獲取最近更新的計算機集群中各存儲設備的狀態(tài)信息;概率計算模塊202,用于根據(jù)所述各存儲設備的狀態(tài)信息,計算所述計算機集群中 各節(jié)點的被調(diào)度概率系數(shù),一臺存儲設備包括至少一個存儲節(jié)點;存儲節(jié)點調(diào)度模塊203,用于選擇被調(diào)度概率系數(shù)值較高的存儲節(jié)點,對該存儲節(jié) 點進行資源調(diào)度。本發(fā)明的實施例提供了一種存儲資源調(diào)度方法和裝置,獲取最近更新的計算機集 群中各存儲設備的狀態(tài)信息;根據(jù)所述各存儲設備的狀態(tài)信息,計算所述計算機集群中各 存儲節(jié)點被調(diào)度的概率,一臺存儲設備包括至少一個存儲節(jié)點;選擇被調(diào)度概率較高的存 儲節(jié)點,對該存儲節(jié)點進行資源調(diào)度。以存儲節(jié)點為單位完成調(diào)度,實現(xiàn)了調(diào)度的快速完 成,解決了如何最快的獲取各個存儲資源子存儲節(jié)點信息以完成資源調(diào)度的問題。當云存 儲系統(tǒng)由成千上萬的存儲資源組成時,在合理的存儲資源反饋的基礎之上,進行合理的資 源調(diào)度分配,使各存儲資源的負載處于均衡狀態(tài)。本發(fā)明的實施例所提供的存儲資源調(diào)度 方法所使用的算法占用資源少,且需要的存儲(如存儲數(shù)據(jù))非常少,不隨請求的增加而增 加,實現(xiàn)了使用次少的資源快速的完成存儲資源調(diào)度。本領域普通技術人員可以理解上述實施例的全部或部分步驟可以使用計算機程 序流程來實現(xiàn),所述計算機程序可以存儲于一計算機可讀存儲介質(zhì)中,所述計算機程序在 相應的硬件平臺上(如系統(tǒng)、設備、裝置、器件等)執(zhí)行,在執(zhí)行時,包括方法實施例的步驟 之一或其組合。可選地,上述實施例的全部或部分步驟也可以使用集成電路來實現(xiàn),這些步驟可 以被分別制作成一個個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電 路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。上述實施例中的各裝置/功能模塊/功能單元可以采用通用的計算裝置來實現(xiàn), 它們可以集中在單個的計算裝置上,也可以分布在多個計算裝置所組成的網(wǎng)絡上。上述實施例中的各裝置/功能模塊/功能單元以軟件功能模塊的形式實現(xiàn)并作為 獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。上述提到的計算機 可讀取存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到變化或 替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以權(quán)利要求所述的保 護范圍為準。
權(quán)利要求
1.一種存儲資源調(diào)度方法,其特征在于,包括獲取最近更新的計算機集群中各存儲設備的狀態(tài)信息;根據(jù)所述各存儲設備的狀態(tài)信息,計算所述計算機集群中各存儲節(jié)點的被調(diào)度概率系 數(shù),一臺存儲設備包括至少一個存儲節(jié)點;選擇被調(diào)度概率系數(shù)值較高的存儲節(jié)點,對該節(jié)點進行調(diào)度使用。
2.根據(jù)權(quán)利要求1所述的存儲資源調(diào)度方法,其特征在于,所述獲取最近更新的計算 機集群中各存儲設備的狀態(tài)信息具體為從緩存(Memcached)服務器上讀取所述計算機集群中各存儲設備的狀態(tài)信息,所述狀 態(tài)信息包括存儲設備端口、各端口剩余空間、各端口總空間、各存儲設備的存儲節(jié)點總數(shù)和 各存儲設備的剩余存儲節(jié)點數(shù)。
3.根據(jù)權(quán)利要求2所述的存儲資源調(diào)度方法,其特征在于,該方法還包括所述計算機集群中的各存儲設備定期向所述Memcached服務器上報該存儲設備的狀 態(tài)信息;所述Memcached服務器使用存儲數(shù)組存儲所述狀態(tài)信息,所述存儲數(shù)組的每個元素至 少包括一存儲設備的主機名(hostname)及該存儲設備的端口(port)。
4.根據(jù)權(quán)利要求2所述的存儲資源調(diào)度方法,其特征在于,所述根據(jù)所述各存儲設備 的狀態(tài)信息,計算所述計算機集群中各存儲節(jié)點被調(diào)度概率系數(shù)包括建立二維坐標系,設存儲節(jié)點所對應存儲設備的空間利用率,即剩余空間與總空間的 比率space_ratio為X軸,設該存儲設備的存儲節(jié)點利用率,即剩余存儲節(jié)點數(shù)與總存儲節(jié) 點數(shù)的比率inode_ratio為Y軸;設(1,1)點為 P,(space_ratio, inode_ratio)點為 q, (0 < space_ratio < = 1,0 < inode_ratio < = 1);連接pq,并延長使得其與坐標軸相交,設交點為r ; Z為qr線段長度,即q點的得分權(quán)重(0 < Z <= 1); 將Z作為所述存儲節(jié)點的被調(diào)度概率系數(shù)。
5.根據(jù)權(quán)利要求4所述的存儲資源調(diào)度方法,其特征在于,所述選擇被調(diào)度概率系數(shù) 值較高的存儲節(jié)點具體為在多個存儲節(jié)點的被調(diào)度概率系數(shù)相同時,對所述存儲設備中的多個剩余存儲節(jié)點做 隨機選擇,從中選擇出一個存儲節(jié)點,調(diào)度該存儲節(jié)點。
6.根據(jù)權(quán)利要求3或4所述的存儲資源調(diào)度方法,其特征在于,所述存儲數(shù)組的元素還 包括存儲節(jié)點的被調(diào)度概率系數(shù),該方法還包括在所述Memcached服務器上的存儲數(shù)組中存入各存儲節(jié)點被調(diào)度的概率。
7.一種存儲資源調(diào)度裝置,其特征在于,包括數(shù)據(jù)獲取模塊,用于獲取最近更新的計算機集群中各存儲設備的狀態(tài)信息; 概率計算模塊,用于根據(jù)所述各存儲設備的狀態(tài)信息,計算所述計算機集群中各存儲 節(jié)點被調(diào)度的概率,一臺存儲設備包括至少一個存儲節(jié)點;存儲節(jié)點調(diào)度模塊,用于選擇被調(diào)度概率較高的存儲節(jié)點,對該節(jié)點進行資源調(diào)度。
全文摘要
本發(fā)明提供了一種存儲資源調(diào)度方法和裝置。涉及計算機領域;解決了如何最快的獲取各個存儲資源子存儲節(jié)點信息以完成資源調(diào)度的問題。該方法包括獲取最近更新的計算機集群中各存儲設備的狀態(tài)信息;根據(jù)所述各存儲設備的狀態(tài)信息,計算所述計算機集群中各存儲節(jié)點被調(diào)度的概率,一臺存儲設備包括至少一個存儲節(jié)點;選擇可被調(diào)度系數(shù)較高的存儲節(jié)點,對該存儲節(jié)點進行資源調(diào)度。本發(fā)明提供的技術方案適用于云系統(tǒng),實現(xiàn)了存儲資源的快速調(diào)度。
文檔編號H04L29/08GK102148871SQ20111006697
公開日2011年8月10日 申請日期2011年3月18日 優(yōu)先權(quán)日2011年3月18日
發(fā)明者張宇 申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司