本發(fā)明涉及云存儲計算機(jī)運(yùn)用,云環(huán)境下的任務(wù)調(diào)度領(lǐng)域。
背景技術(shù):
近年來,隨著各類信息的快速增加和互聯(lián)網(wǎng)技術(shù)的發(fā)展,越來越多的服務(wù)以云端的形式提供給用戶。云計算是近年來隨著計算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)迅速發(fā)展起來的一種先進(jìn)的計算技術(shù),在傳統(tǒng)的計算模式下,計算任務(wù)被分布在各個單獨(dú)的計算機(jī)上,受限于每個計算機(jī)單獨(dú)的計算性能,任務(wù)量大的計算在單臺計算機(jī)上很難實現(xiàn),因此云計算的出現(xiàn)解決了許多大數(shù)據(jù)量的計算問題。云計算分為狹義云計算和廣義云計算兩種。狹義云計算是指建立IT基礎(chǔ)設(shè)施,并進(jìn)行交付和使用,在網(wǎng)絡(luò)基礎(chǔ)上,以按需、易擴(kuò)展的方式獲得所需的資源,包括硬件資源,運(yùn)算平臺,軟件資源等。廣義云計算是指在互聯(lián)網(wǎng)的基礎(chǔ)上,實現(xiàn)用戶終端的服務(wù)交付和使用,在網(wǎng)絡(luò)服務(wù)的基礎(chǔ)上,以各取所需、各自擴(kuò)展的方式獲得所需的服務(wù)。
在數(shù)據(jù)的管理方面,當(dāng)用戶向服務(wù)器發(fā)出數(shù)據(jù)請求時,系統(tǒng)會根據(jù)相應(yīng)的調(diào)度策略為用戶提供相對最優(yōu)的數(shù)據(jù)副本以及路徑的選取,調(diào)度策略的優(yōu)劣很大程度上決定了系統(tǒng)的運(yùn)行處理效率,云存儲在任務(wù)調(diào)度方面有別于傳統(tǒng)云計算的特點(diǎn)。已有的對云存儲的任務(wù)調(diào)度算法的研究當(dāng)中,相對于云計算任務(wù)來說,云計算任務(wù)可由云中任意節(jié)點(diǎn)來提供,但在云存儲中會出現(xiàn)節(jié)點(diǎn)沒有任務(wù)所需數(shù)據(jù)的情況,即通過算法的求解過程后得到的初始解和迭代解無用的情況。同時,由于網(wǎng)絡(luò)環(huán)境得變換的將影響著云任務(wù)的調(diào)度。
技術(shù)實現(xiàn)要素:
本發(fā)明針對云存儲下的任務(wù)調(diào)度問題,提出了云存儲環(huán)境下一種服務(wù)價值約束的任務(wù)調(diào)度算法。
本發(fā)明的技術(shù)方案:以粒子群優(yōu)化算法(PSO)為基礎(chǔ),定義和引入存在矩陣(EM)來指示任務(wù)和資源節(jié)點(diǎn)的對應(yīng)關(guān)系,通過存在矩陣使初始解和解在空間上有意義,并且針對云環(huán)境的特殊要求,定義和引入網(wǎng)絡(luò)服務(wù)質(zhì)量參數(shù)(Qos),動態(tài)實時地反映出當(dāng)前網(wǎng)絡(luò)的狀態(tài),使得在計算的迭代過程中可以根據(jù)Qos參數(shù)以及相對應(yīng)的適應(yīng)度函數(shù)來動態(tài)調(diào)整其影響參數(shù),從而達(dá)到了優(yōu)化算法的目的,并且根據(jù)Qos重新定義出適應(yīng)度函數(shù)。
本發(fā)明的有益效果是:解決了傳統(tǒng)算法產(chǎn)生的解在任務(wù)中不存在的缺陷,提高了系統(tǒng)的運(yùn)行效率,通過網(wǎng)絡(luò)服務(wù)參數(shù)的引入,讓用戶直觀感受以服務(wù)質(zhì)量為中心的調(diào)度策略。
具體實施方式
針對云存儲下的任務(wù)調(diào)度問題,本發(fā)明將對具體的計算過程進(jìn)行詳細(xì)的闡述,其具體實施步驟如下:
步驟1:生成存在矩陣。
步驟2:Qos條件的設(shè)定和條件選擇。
步驟3:依據(jù)約束條件,建立適應(yīng)度函數(shù)。
步驟4:生成初始解,迭代生成數(shù)據(jù)節(jié)點(diǎn)的解集。
步驟5:解與存在矩陣和約束條件匹配。
以上步驟所涉及到的參數(shù)函數(shù)及定義,具體描述如下:
步驟1:生成存在矩陣
因為云存儲系統(tǒng)的節(jié)點(diǎn)不一定能夠提供用戶所請求的數(shù)據(jù),通過等待調(diào)度的任務(wù)數(shù)、資源節(jié)點(diǎn)、節(jié)點(diǎn)數(shù)目來定義一個描述調(diào)度任務(wù)與資源節(jié)點(diǎn)之間對應(yīng)關(guān)系的函數(shù),從存在矩陣中產(chǎn)生的解有空間意義,也就是說節(jié)點(diǎn)一定包含所需資源。
設(shè)T表示待調(diào)度的任務(wù),T=[T1,T2,...,Ti,...Tn],n表示帶調(diào)度任務(wù)的數(shù)量,其中1≤i≤n,V表示節(jié)點(diǎn),V=[V1,V2,...,Vj,...Vm],m表示節(jié)點(diǎn)數(shù)量,其中1≤j≤n,構(gòu)造一個n×m的矩陣U:
其中
存在矩陣中,eij表示任務(wù)調(diào)度向量,同一個數(shù)據(jù)可能會存在多個節(jié)點(diǎn)上,所以eij=1時表示任務(wù)Ti在節(jié)點(diǎn)Vj是存在,eij=0則表示任務(wù)Ti在節(jié)點(diǎn)Vj上不存在。
步驟2:Qos條件的設(shè)定和條件選擇
Qos約束是根據(jù)不同用戶或應(yīng)用場景對多Qos敏感度不同,符合用戶或應(yīng)用場景需求的最小代價選則路徑,Qos參數(shù)作為當(dāng)前網(wǎng)絡(luò)狀態(tài)的度量,用表示節(jié)點(diǎn)Va到節(jié)點(diǎn)Vb之間的Qos狀態(tài)信息,它包含三個分量,即時延(D)、抖動(J)、帶寬(B)。將云存儲中網(wǎng)絡(luò)節(jié)點(diǎn)的集合搭建成一個無向加權(quán)圖模型G(V,E),V表示節(jié)點(diǎn),E表示物理或者邏輯上鏈接節(jié)點(diǎn)的所有邊,每一組鏈路包含狀態(tài)信息的三個分量,任務(wù)節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)之間的鏈路用P(s,d),來表示,即:DP(s,d)、JP(s,M)、BP(s,M);M是任務(wù)節(jié)點(diǎn)與云存儲節(jié)點(diǎn)之間鏈路,最短的集合,則計算三個參數(shù)的值為:
在Qos向量中,鏈路P(s,d)上的總時延定義為從路徑上起點(diǎn)到終點(diǎn)上的最小值,所以:
抖動定義為從源節(jié)點(diǎn)到終節(jié)點(diǎn)路徑上延遲的平均值差值
鏈路的瓶頸帶寬被定義為T中鏈路的最小帶寬:
BP(s,M)=min{b(i,j)|(i,j)∈P(s,M)
以上參數(shù)中,P(s,d)是任務(wù)節(jié)點(diǎn)帶數(shù)據(jù)節(jié)點(diǎn)的最短路徑,S是請求任務(wù)的源節(jié)點(diǎn),所有的節(jié)點(diǎn)V都受存在矩陣約束。
步驟3:依據(jù)約束條件,建立適應(yīng)度函數(shù)
Qos約束下調(diào)度,每一次迭代依據(jù)一個適應(yīng)度函數(shù),這個適應(yīng)度函數(shù)更具粒子對減少鏈路的花費(fèi)來評估,所以,依據(jù)Qos約束條件,將適應(yīng)度函數(shù)定義為:
f(P(s,M))=Cost(P(s,M))
+k1{max DP(s,M)-(DP(s,M),0)}
+k2{max JP(s,M)-(DP(s,M),0)}
式中,k1、k2為懲罰系數(shù),決定懲罰的程度。
步驟4:生成初始解,迭代生成數(shù)據(jù)節(jié)點(diǎn)的解集
首先,從存在矩陣中隨機(jī)生成初始解V0,由于V0是從存在矩陣中隨機(jī)生成,所以他有物理及空間意義,然后按照Qos約束條件,在適應(yīng)度函數(shù)f(P(s,M))計算得到fi,當(dāng)fi沒有達(dá)到閾值的時候,輸出對應(yīng)的Vi。
按照標(biāo)準(zhǔn)PSO算法進(jìn)行迭代:
Vid=ω·vid+c1rand()·(pbesti-Xi)+c2rand()·(gbesti-Xi)
Xi=Xi+Vi
其中,ω為慣性權(quán)重,代表粒子慣性行為,c1、c2為加速常量,rand()為隨機(jī)值,個參量的值按照線性遞減權(quán)值策略(LDW)進(jìn)行定義。
根據(jù)PSO算法得到迭代一輪后的
步驟5:解與存在矩陣和約束條件匹配
將每一輪迭代的與存在矩陣進(jìn)行匹配,如果不在存在矩陣中,也就是說解釋無意義的,那么進(jìn)行下一次迭代,重新再生成新的知道與存在矩陣匹配;然后在將得到的數(shù)據(jù)節(jié)點(diǎn)與Qos約束條件進(jìn)行對比,如果不滿足用戶提出的Qos限制,則進(jìn)行下一次迭代,繼續(xù)生成新的如果連續(xù)n次迭代后還是沒有生成滿足約束條件的解,那么從這n個解中選取比較接近Qos約束條件的解輸出,作為本次調(diào)度的最優(yōu)解。n一般設(shè)置為10左右,如果任務(wù)數(shù)量比較大,可以適當(dāng)增加n值。但是過大的n值會增加系統(tǒng)運(yùn)行的時間開銷。