本發(fā)明涉及云存儲(chǔ)中的分布式存儲(chǔ)方法,具體的講是在云存儲(chǔ)中進(jìn)行分布式存儲(chǔ)調(diào)度的方法。
背景技術(shù):
在分布式存儲(chǔ)的領(lǐng)域中,Cinder是一種應(yīng)用極為廣泛的分布式存儲(chǔ)架構(gòu),它的調(diào)度分為兩個(gè)階段,分別是filtering和weighting。當(dāng)一個(gè)存儲(chǔ)請(qǐng)求到來時(shí),首先是filtering階段將符合要求的存儲(chǔ)節(jié)點(diǎn)篩選出來,在篩選中每個(gè)存儲(chǔ)節(jié)點(diǎn)只有符合或不符合兩種結(jié)果,符合要求則進(jìn)入待weighting的隊(duì)列,不符合要求則將其淘汰;之后執(zhí)行weighting階段,對(duì)符合要求的存儲(chǔ)節(jié)點(diǎn)進(jìn)行排序,選取最為合適的存儲(chǔ)節(jié)點(diǎn),由該存儲(chǔ)節(jié)點(diǎn)為請(qǐng)求提供存儲(chǔ)服務(wù)。當(dāng)前filtering過程檢驗(yàn)存儲(chǔ)節(jié)點(diǎn)是否符合要求的標(biāo)準(zhǔn)是該存儲(chǔ)節(jié)點(diǎn)是否有足夠的存儲(chǔ)空間能夠執(zhí)行該次的存儲(chǔ)請(qǐng)求,如果有就將其放入隊(duì)列以便之后的weighting過程使用,反之則不予考慮。之后的weighting過程基于剩余存儲(chǔ)空間對(duì)合格存儲(chǔ)節(jié)點(diǎn)進(jìn)行排序,選取剩余存儲(chǔ)空間最大的存儲(chǔ)節(jié)點(diǎn)來提供服務(wù)。經(jīng)過以上兩步,一個(gè)發(fā)送到Cinder的請(qǐng)求的調(diào)度過程結(jié)束。
Cinder的調(diào)度方法在分布式存儲(chǔ)的服務(wù)質(zhì)量中起著關(guān)鍵的作用,但是當(dāng)前的Cinder調(diào)度存在以下的問題:當(dāng)前以剩余存儲(chǔ)空間為唯一調(diào)度目標(biāo)的調(diào)度方法并不能保證云存儲(chǔ)的服務(wù)質(zhì)量。例如,當(dāng)某個(gè)存儲(chǔ)節(jié)點(diǎn)的網(wǎng)絡(luò)擁塞較嚴(yán)重但其剩余的存儲(chǔ)空間是最大的時(shí)候,Cinder并不會(huì)意識(shí)到這一點(diǎn),它還是會(huì)選取該存儲(chǔ)節(jié)點(diǎn)來處理存儲(chǔ)請(qǐng)求。但此時(shí)由于網(wǎng)絡(luò)擁塞的影響顯然該存儲(chǔ)節(jié)點(diǎn)并不是最為理想的服務(wù)節(jié)點(diǎn)。進(jìn)一步來說,Cinder這種只考慮存儲(chǔ)節(jié)點(diǎn)剩余存儲(chǔ)空間的調(diào)度方法并沒有達(dá)到調(diào)度的綜合性能最優(yōu)。存儲(chǔ)節(jié)點(diǎn)中影響服務(wù)質(zhì)量的因素除剩余空間外還包括其它多種因素,只有將影響服務(wù)質(zhì)量的多種因素綜合考慮進(jìn)來實(shí)現(xiàn)多維調(diào)度才能達(dá)到最佳的調(diào)度效果。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種分布式存儲(chǔ)調(diào)度的方法,以克服目前單目標(biāo)調(diào)度不能調(diào)度到性能最佳服務(wù)節(jié)點(diǎn)的缺陷,使對(duì)存儲(chǔ)節(jié)點(diǎn)的選擇方式更加全面,提高存儲(chǔ)效率和質(zhì)量。
本發(fā)明分布式存儲(chǔ)調(diào)度的方法,包括步驟有:
a.建立評(píng)價(jià)指標(biāo):根據(jù)調(diào)度請(qǐng)求,收集對(duì)調(diào)度有影響的評(píng)價(jià)因素,然后分析出各所述評(píng)價(jià)因素和調(diào)度的相關(guān)性,獲得與m個(gè)存儲(chǔ)節(jié)點(diǎn)相關(guān)的評(píng)價(jià)矩陣,其中m為自然數(shù);
b.數(shù)據(jù)標(biāo)準(zhǔn)化處理:對(duì)數(shù)據(jù)標(biāo)準(zhǔn)化是數(shù)據(jù)處理中常用的一種方式。本方法中是通過標(biāo)準(zhǔn)化公式對(duì)所述評(píng)價(jià)矩陣中的各數(shù)據(jù)消除量綱效應(yīng)后,得到標(biāo)準(zhǔn)化之后的評(píng)價(jià)指標(biāo)值矩陣;
c.利用三角模糊數(shù)進(jìn)行兩兩比較:通過三角模糊數(shù)對(duì)所述評(píng)價(jià)指標(biāo)值矩陣中的各存儲(chǔ)節(jié)點(diǎn)兩兩比較,例如對(duì)于兩個(gè)存儲(chǔ)節(jié)點(diǎn)m和n之間的比較可以用rmn=(a,b,c)來表示,中值b表示重要程度,兩個(gè)邊界值a和c則用來表示模糊程度,當(dāng)b減去a的差值越大時(shí)說明兩個(gè)節(jié)點(diǎn)比較的模糊性越高,如果差值為0則說明該比較是非模糊的。同樣的道理,表示節(jié)點(diǎn)n相對(duì)于節(jié)點(diǎn)m的重要度。然后得到由三角模糊數(shù)組成的判斷矩陣和每個(gè)評(píng)價(jià)因素的權(quán)重向量,并得到加權(quán)評(píng)價(jià)矩陣,對(duì)所述權(quán)重向量做歸一化處理得到每個(gè)評(píng)價(jià)因素的權(quán)值;
d.求得正負(fù)理想值:在所述加權(quán)評(píng)價(jià)矩陣上求得正負(fù)理想值和得各存儲(chǔ)節(jié)點(diǎn)到理想值的距離,以所述距離為標(biāo)準(zhǔn)對(duì)各存儲(chǔ)節(jié)點(diǎn)進(jìn)行排序,選出最優(yōu)的存儲(chǔ)節(jié)點(diǎn)。
其中建立評(píng)價(jià)指標(biāo)是進(jìn)行分析的基礎(chǔ),影響調(diào)度的因素可以從調(diào)度請(qǐng)求發(fā)出到調(diào)度請(qǐng)求被某一存儲(chǔ)節(jié)點(diǎn)處理這一全過程來進(jìn)行分析。在這一過程中首先涉及到發(fā)出請(qǐng)求的客戶端的因素,其次是傳送請(qǐng)求的網(wǎng)絡(luò)的因素,最后是處理請(qǐng)求的服務(wù)節(jié)點(diǎn)的因素。因此可以將所述的評(píng)價(jià)因素判斷為包括有客戶端因素、網(wǎng)絡(luò)因素和服務(wù)端因素。
具體來看,客戶端因素包括有客戶端距服務(wù)端的路由跳數(shù),也就是客戶端到存儲(chǔ)節(jié)點(diǎn)的距離因素;網(wǎng)絡(luò)因素包括有網(wǎng)絡(luò)傳輸過程中的丟包率、網(wǎng)絡(luò)是否暢通等;服務(wù)端因素包括有處理器負(fù)載、內(nèi)存使用率和存儲(chǔ)空間占用率等。因此,路由跳數(shù)、丟包率、處理器負(fù)載、內(nèi)存使用率和存儲(chǔ)空間占用率這5個(gè)主要因素共同決定了存儲(chǔ)的質(zhì)量。
一種可選的方式為,步驟a中通過皮爾遜積矩相關(guān)系數(shù)分析出各所述評(píng)價(jià)因素和調(diào)度的相關(guān)性,可以得到調(diào)度相關(guān)性其中代表測(cè)試樣本x的均值,同理代表y的均值,n代表樣本容量,r的值介于負(fù)1到正1之間,為正值時(shí)說明具有正相關(guān)性,為負(fù)值時(shí)說明具有負(fù)相關(guān)性。
進(jìn)一步的,步驟b中,根據(jù)評(píng)價(jià)矩陣中的各數(shù)據(jù)的優(yōu)越程度與數(shù)據(jù)值大小的對(duì)應(yīng)關(guān)系,采用不同的標(biāo)準(zhǔn)化公式進(jìn)行量綱效應(yīng)消除處理。例如對(duì)于數(shù)據(jù)值越大優(yōu)越程度越優(yōu)的數(shù)據(jù)p(i,j)可以采用標(biāo)準(zhǔn)化公式:p(i,j)=n(i,j)/[nmax(i)+nmin(i)];對(duì)于數(shù)據(jù)值越小優(yōu)越程度越優(yōu)的數(shù)據(jù)p(i,j)可以采用標(biāo)準(zhǔn)化公式:p(i,j)=[nmax(i)+nmin(i)-n(i,j)]/[nmax(i)+nmin(i)],其中n(i,j)表示評(píng)價(jià)矩陣N中的節(jié)點(diǎn),nmax(i)表示第i個(gè)評(píng)價(jià)因素的最大值,nmin(i)表示第i個(gè)評(píng)價(jià)因素的最小值。
優(yōu)選的,步驟d中通過加權(quán)的曼哈頓距離公式分別算出加權(quán)評(píng)價(jià)矩陣中各存儲(chǔ)節(jié)點(diǎn)到正負(fù)理想值的距離??梢杂帽硎敬鎯?chǔ)節(jié)點(diǎn)i到正理想值的距離,用表示存儲(chǔ)節(jié)點(diǎn)i到負(fù)理想值的距離。值的大小表明了存儲(chǔ)節(jié)點(diǎn)i與正理想值直接的距離,該值越小則表明該存儲(chǔ)節(jié)點(diǎn)越是接近正理想值;同理表明了存儲(chǔ)節(jié)點(diǎn)i與負(fù)理想值之間的距離。例如當(dāng)備選存儲(chǔ)節(jié)點(diǎn)的計(jì)算參數(shù)設(shè)置為客戶端距離服務(wù)端路由跳數(shù)、網(wǎng)絡(luò)丟包率、CPU負(fù)載、內(nèi)存使用率和剩余存儲(chǔ)容量時(shí),這些參數(shù)顯然都是越小越好,所以這時(shí)最優(yōu)節(jié)點(diǎn)就是離負(fù)理想值最近的存儲(chǔ)節(jié)點(diǎn)。
本發(fā)明的分布式存儲(chǔ)調(diào)度的方法,能夠?qū)φ{(diào)度過程中的各種影響因素進(jìn)行綜合分析,從而選擇出最優(yōu)選的存儲(chǔ)節(jié)點(diǎn)進(jìn)行響應(yīng),極大程度提高了網(wǎng)絡(luò)遠(yuǎn)程分布式存儲(chǔ)的數(shù)據(jù)傳輸性能和存儲(chǔ)效率,明顯改善了分布式存儲(chǔ)的存儲(chǔ)質(zhì)量。
以下結(jié)合實(shí)施例的具體實(shí)施方式,對(duì)本發(fā)明的上述內(nèi)容再作進(jìn)一步的詳細(xì)說明。但不應(yīng)將此理解為本發(fā)明上述主題的范圍僅限于以下的實(shí)例。在不脫離本發(fā)明上述技術(shù)思想情況下,根據(jù)本領(lǐng)域普通技術(shù)知識(shí)和慣用手段做出的各種替換或變更,均應(yīng)包括在本發(fā)明的范圍內(nèi)。
附圖說明
圖1為本發(fā)明分布式存儲(chǔ)調(diào)度的方法的流程圖。
具體實(shí)施方式
如圖1所示本發(fā)明分布式存儲(chǔ)調(diào)度的方法,步驟有:
a.建立評(píng)價(jià)指標(biāo):根據(jù)調(diào)度請(qǐng)求,收集對(duì)調(diào)度有影響的評(píng)價(jià)因素。根據(jù)調(diào)度的全過程,將評(píng)價(jià)因素分為發(fā)出請(qǐng)求的客戶端的因素、傳送請(qǐng)求的網(wǎng)絡(luò)的因素、處理請(qǐng)求的服務(wù)節(jié)點(diǎn)的因素。其中客戶端因素包括有客戶端距服務(wù)端的路由跳數(shù),網(wǎng)絡(luò)因素包括有網(wǎng)絡(luò)傳輸過程中的丟包率和網(wǎng)絡(luò)是否暢通,服務(wù)端因素包括有處理器負(fù)載、內(nèi)存使用率和存儲(chǔ)空間占用率。以這5個(gè)評(píng)價(jià)因素為基礎(chǔ),通過皮爾遜積矩相關(guān)系數(shù)分析各個(gè)影響因素和調(diào)度的相關(guān)性:
其中代表測(cè)試樣本x的均值,同理代表y的均值,n代表樣本容量,r的值介于負(fù)1到正1之間,為正值時(shí)說明具有正相關(guān)性,為負(fù)值時(shí)說明具有負(fù)相關(guān)性。
評(píng)價(jià)對(duì)象是實(shí)際存儲(chǔ)卷的m個(gè)物理存儲(chǔ)節(jié)點(diǎn),可以表示為ki∈K,其中i∈{1,2,3,···,m}。對(duì)于每個(gè)存儲(chǔ)節(jié)點(diǎn)都有5個(gè)影響調(diào)度的因素要考慮,則可以建立m×5的評(píng)價(jià)矩陣N:
b.數(shù)據(jù)標(biāo)準(zhǔn)化處理:通過標(biāo)準(zhǔn)化公式對(duì)所述評(píng)價(jià)矩陣中的各數(shù)據(jù)消除量綱效應(yīng)。根據(jù)評(píng)價(jià)矩陣中的各數(shù)據(jù)的優(yōu)越程度與數(shù)據(jù)值大小的對(duì)應(yīng)關(guān)系,采用不同的標(biāo)準(zhǔn)化公式進(jìn)行量綱效應(yīng)消除處理,例如“傳輸延遲”的優(yōu)越程度是越小越好。對(duì)于數(shù)據(jù)值越大優(yōu)越程度越優(yōu)的數(shù)據(jù)p(i,j)可以采用標(biāo)準(zhǔn)化公式:p(i,j)=n(i,j)/[nmax(i)+nmin(i)];對(duì)于數(shù)據(jù)值越小優(yōu)越程度越優(yōu)的數(shù)據(jù)p(i,j)可以采用標(biāo)準(zhǔn)化公式:p(i,j)=[nmax(i)+nmin(i)-n(i,j)]|/|[nmax(i)+nmin(i)],其中n(i,j)表示評(píng)價(jià)矩陣N中的節(jié)點(diǎn),nmax(i)表示第i個(gè)評(píng)價(jià)因素的最大值,nmin(i)表示第i個(gè)評(píng)價(jià)因素的最小值。
然后得到標(biāo)準(zhǔn)化之后的評(píng)價(jià)指標(biāo)值矩陣N·:
c.利用三角模糊數(shù)進(jìn)行兩兩比較:通過三角模糊數(shù)對(duì)所述評(píng)價(jià)指標(biāo)值矩陣中的各存儲(chǔ)節(jié)點(diǎn)兩兩比較,共比較m(m-1)/2次。然后得到由三角模糊數(shù)組成的判斷矩陣和每個(gè)評(píng)價(jià)因素的權(quán)重向量,并得到加權(quán)矩陣T,對(duì)所述權(quán)重向量做歸一化處理得到每個(gè)評(píng)價(jià)因素的權(quán)值。
例如有5個(gè)備選的存儲(chǔ)節(jié)點(diǎn),得到的加權(quán)矩陣T為:
對(duì)上述加權(quán)矩陣T變換為小數(shù)形式并求評(píng)價(jià)指標(biāo)平均值之和得:
對(duì)判斷矩陣使用計(jì)算模糊綜合程度公式:其中是判斷矩陣中所計(jì)算的對(duì)應(yīng)項(xiàng)的求和結(jié)果,是待求解項(xiàng)的權(quán)重。本實(shí)施例中是對(duì)5個(gè)評(píng)價(jià)指標(biāo)進(jìn)行計(jì)算,因此n=5進(jìn)而得到每個(gè)評(píng)價(jià)指標(biāo)相對(duì)于其它評(píng)價(jià)指標(biāo)的重要程度:
對(duì)于兩個(gè)存儲(chǔ)節(jié)點(diǎn)m和n之間的比較可以用rmn=(a,b,c)來表示,中值b為a和c的中值,表示重要程度,兩個(gè)邊界值a和c則用來表示模糊程度,當(dāng)b減去a的差值越大時(shí)說明兩個(gè)節(jié)點(diǎn)比較的模糊性越高,如果差值為0則說明該比較是非模糊的。同理,表示節(jié)點(diǎn)n相對(duì)于節(jié)點(diǎn)m的重要度。通過公式:
可以計(jì)算每個(gè)評(píng)價(jià)指標(biāo)與其它評(píng)價(jià)指標(biāo)相比的測(cè)度:同理可得:V(S1≥S5)=0.417,V(S2≥S3)=0.235,V(S2≥S4)=0.228,V(S2≥S5)=0.762,V(S5≥S3)=0.396,V(S5≥S4)=0.391,其余各比較值均為1。
再利用公式:和
d(P)=minV(P≥Px),x=1,2,…,n;P≠Pi,可以得到每個(gè)評(píng)價(jià)因素的權(quán)重向量d(Ci):
d(C1)=V(S1≥S2,S3,S4,S5)=min(0.65,1,1,0.417)=0.417
d(C2)=V(S2≥S1,S3,S4,S5)=min(1,0.235,0.228,0.762)=0.228
d(C3)=V(S3≥S1,S2,S4,S5)=min(1,1,1,1)=1
d(C4)=V(S4≥S1,S2,S3,S5)=min(1,1,1,1)=1
d(C5)=V(S5≥S1,S2,S3,S4)=min(1,1,0.396,0.391)=0.391
其中P表示概率公式中隨機(jī)事件發(fā)生可能性大小的量,Pn為對(duì)應(yīng)的Sn的概率。
對(duì)各個(gè)權(quán)值做檢驗(yàn)有:
d′(C1)+d′(C2)+d′(C3)+d′(C4)+d′(C5)=0.137+0.075+0.329+0.329+0.13=1
其中d′(Ci)為d(C1)~d(C5)的計(jì)算數(shù)值除以它們的總和的值。
根據(jù)上式求得的客戶端到各個(gè)存儲(chǔ)節(jié)點(diǎn)的路由跳數(shù)、網(wǎng)絡(luò)丟包率、CPU負(fù)載,內(nèi)存使用率和磁盤空間使用量5個(gè)參數(shù)求解之后得到權(quán)值向量A:
A=(a1,a2,a3,a4,a5)=(0.137,0.075,0.329,0,329,0.13)
用權(quán)值向量A代替三角模糊數(shù)判斷矩陣R中的(r1,r2,r3,r4,r5),得到加權(quán)評(píng)價(jià)矩陣Z。
d.求得正負(fù)理想值:在所述加權(quán)評(píng)價(jià)矩陣Z上求得正負(fù)理想值,可以在矩陣Z上使用TOPSIS算法為存儲(chǔ)節(jié)點(diǎn)進(jìn)行排序,分別用Z+和Z-表示,其中Z+由加權(quán)評(píng)價(jià)矩陣Z中各評(píng)價(jià)指標(biāo)的最大值組成,Z-則由加權(quán)評(píng)價(jià)矩陣Z中各評(píng)價(jià)指標(biāo)的最小值組成:
然后通過加權(quán)的曼哈頓距離公式分別算出各個(gè)存儲(chǔ)節(jié)點(diǎn)到正負(fù)理想值的距離:
其中i=1,2,…,m,其中aj是評(píng)價(jià)指標(biāo)權(quán)值,xij是第i個(gè)存儲(chǔ)節(jié)點(diǎn)的第j個(gè)評(píng)價(jià)指標(biāo)的值,和分別為第j個(gè)評(píng)價(jià)指標(biāo)到正、負(fù)理想值的距離,是存儲(chǔ)節(jié)點(diǎn)i到正理想值的距離,是存儲(chǔ)節(jié)點(diǎn)i到負(fù)理想值的距離,值的大小表明了存儲(chǔ)節(jié)點(diǎn)i與正理想值直接的距離,該值越小則表明該存儲(chǔ)節(jié)點(diǎn)越是接近正理想值,同理表明了存儲(chǔ)節(jié)點(diǎn)i與負(fù)理想值之間直接的距離。
再使用接近度來定義綜合性能,計(jì)算出各存儲(chǔ)節(jié)點(diǎn)的綜合評(píng)價(jià)值C:存儲(chǔ)節(jié)點(diǎn)的綜合性能與Ci的值負(fù)相關(guān),由于本實(shí)施例中各存儲(chǔ)節(jié)點(diǎn)的計(jì)算參數(shù)設(shè)置為客戶端距離服務(wù)端路由跳數(shù)、網(wǎng)絡(luò)丟包率、CPU負(fù)載、內(nèi)存使用率和剩余存儲(chǔ)容量,這些參數(shù)顯然都是越小越好,所以這時(shí)最優(yōu)的存儲(chǔ)節(jié)點(diǎn)就是離負(fù)理想值最近的存儲(chǔ)節(jié)點(diǎn),因此當(dāng)Ci取到0的時(shí)候,也就是與負(fù)理想值的距離為0的存儲(chǔ)節(jié)點(diǎn)為最優(yōu)的節(jié)點(diǎn)。因此根據(jù)各存儲(chǔ)節(jié)點(diǎn)的Ci值,對(duì)各存儲(chǔ)節(jié)點(diǎn)進(jìn)行排序,選出Ci值最小的存儲(chǔ)節(jié)點(diǎn)作為調(diào)度請(qǐng)求的響應(yīng)存儲(chǔ)節(jié)點(diǎn)。