姜靜思
(武漢交通職業(yè)學(xué)院 湖北 武漢 430080)
作為一種以互聯(lián)網(wǎng)為基礎(chǔ)的新型計(jì)算方式,云計(jì)算最突出的特點(diǎn)就是其可以按照用戶的實(shí)際需求個(gè)性化地提供相應(yīng)的資源[1]。這不僅為人們的生活和工作帶來了極大的便利,同時(shí)也衍生出了更加人性化的服務(wù)模式[2]。但是值得注意的是,在這一背景下,網(wǎng)絡(luò)數(shù)據(jù)信息的規(guī)模開始呈現(xiàn)出爆發(fā)式增長的趨勢(shì),對(duì)相關(guān)存儲(chǔ)技術(shù)也提出了更高的要求[3]?,F(xiàn)階段,大多數(shù)存儲(chǔ)都是建立在分布式網(wǎng)絡(luò)節(jié)點(diǎn)集群的基礎(chǔ)之上的,因此確保各節(jié)點(diǎn)負(fù)載均衡[4],實(shí)現(xiàn)對(duì)有限資源的有效管理成了數(shù)據(jù)存儲(chǔ)進(jìn)一步研究的主要方向[5]。從宏觀角度分析,海量的數(shù)據(jù)信息規(guī)模也促使負(fù)載均衡策略成為數(shù)據(jù)存儲(chǔ)發(fā)展的必經(jīng)之路[6]。
為此,本文提出考慮負(fù)載平衡的海量數(shù)據(jù)信息優(yōu)化存儲(chǔ)方法,并通過試驗(yàn)測(cè)試的方式分析了設(shè)計(jì)存儲(chǔ)方法在資源利用合理性以及存儲(chǔ)負(fù)載均衡性方面的價(jià)值。通過本文的研究,以期為數(shù)據(jù)信息存儲(chǔ)相關(guān)研究提供有價(jià)值的參考。
數(shù)據(jù)存儲(chǔ)是將待存儲(chǔ)的數(shù)據(jù)經(jīng)過某一傳輸鏈路上各個(gè)節(jié)點(diǎn)的傳遞,將其發(fā)送至目標(biāo)節(jié)點(diǎn),這就意味著對(duì)應(yīng)存儲(chǔ)鏈路的關(guān)鍵度越高[7],其可執(zhí)行傳輸任務(wù)的總量越多[8]。為此,本文首先對(duì)存儲(chǔ)鏈路的關(guān)鍵度進(jìn)行分析。首先,本文設(shè)置了一個(gè)無向連通參數(shù)G,利用其表示網(wǎng)絡(luò)存儲(chǔ)鏈路的關(guān)鍵度,則公式如下:
其中,V表示由存儲(chǔ)網(wǎng)絡(luò)中所有節(jié)點(diǎn)構(gòu)成的集合,E表示由所有節(jié)點(diǎn)構(gòu)成存儲(chǔ)鏈路的集合。需要注意的是,存儲(chǔ)環(huán)境中的每個(gè)節(jié)點(diǎn)都具有唯一的標(biāo)識(shí)參數(shù)。
在此基礎(chǔ)上,在考慮負(fù)載平衡的前提下,對(duì)存儲(chǔ)的優(yōu)化可以理解為是將存儲(chǔ)任務(wù)分配到具有最大負(fù)載空間的鏈路上[9]。對(duì)各個(gè)鏈路對(duì)應(yīng)的傳輸效率進(jìn)行分析,本文引入了平均期望負(fù)載參數(shù),利用其反饋鏈路期望的最大傳輸流量,該值越高,則表明其傳輸效率越高,對(duì)應(yīng)被選擇的概率也越高。具體的計(jì)算方式可以表示如下:
其中,AVE(l)表示存儲(chǔ)鏈路1的平均期望負(fù)載值,f(i,j)表示連通節(jié)點(diǎn)i和節(jié)點(diǎn)j的任意鏈路可負(fù)載的流量,n表示節(jié)點(diǎn)i和節(jié)點(diǎn)j之間鏈路數(shù)量。
需要注意的是,受實(shí)際運(yùn)行情況的影響,存儲(chǔ)鏈路當(dāng)前執(zhí)行傳輸任務(wù)情況將直接影響其負(fù)載容量,因此,在對(duì)其實(shí)際負(fù)載情況進(jìn)行分析時(shí),需要充分考慮鏈路的當(dāng)前負(fù)載,對(duì)應(yīng)可執(zhí)行傳輸流量可以表示為
其中,P(l)表示l鏈路的實(shí)際可執(zhí)行傳輸流量負(fù)載,p(l)表示l鏈路當(dāng)前執(zhí)行傳輸流量負(fù)載。
以此為基礎(chǔ),本文將P(l)作為關(guān)鍵度分析的基礎(chǔ)參數(shù),P(l)值越高,則表明對(duì)應(yīng)鏈路的關(guān)鍵度越高,相反地,P(l)值越低,則表明對(duì)應(yīng)鏈路的關(guān)鍵度越低。
在確定存儲(chǔ)鏈路關(guān)鍵度的基礎(chǔ)上,本文采用蟻群算法實(shí)現(xiàn)對(duì)存儲(chǔ)的優(yōu)化。其具體的執(zhí)行方案見圖1。
按照?qǐng)D1所示的方式,在獲取到各個(gè)傳輸鏈路的流量信息后,根據(jù)其當(dāng)前執(zhí)行傳輸流量負(fù)載情況,計(jì)算存儲(chǔ)網(wǎng)絡(luò)中鏈路的帶寬利用情況。當(dāng)帶寬利用率較高時(shí),表明該鏈路的負(fù)載也較大,此時(shí)利用蟻群算法,將帶寬利用率作為尋優(yōu)參數(shù)。在蟻群算法具體的實(shí)施過程中,本文將存儲(chǔ)鏈路關(guān)鍵度作為蟻群尋優(yōu)的距離,此時(shí)只需要計(jì)算出源節(jié)點(diǎn)到目的節(jié)點(diǎn)之間最短的路徑,得到的鏈路即為負(fù)載最小的傳輸路徑,將其作為數(shù)據(jù)存儲(chǔ)的鏈路,確保網(wǎng)絡(luò)負(fù)載均衡。為此,蟻群算法的具體步驟如下。
(1)對(duì)參數(shù)進(jìn)行初始處理。
(2)螞蟻k(1,2,...,m) 根據(jù)鏈路上的信息素濃度,確定其選擇概率。其中,信息素濃度的計(jì)算方式可以表示為
其中,ρ表示信息素濃度,也就是鏈路的帶寬空閑率,λ表示鏈路節(jié)點(diǎn)的訪問熱度,Q表示鏈路的額定傳輸帶寬,a表示信息素對(duì)螞蟻的影響因子大小,cost(i,j)表示完成節(jié)點(diǎn)i和節(jié)點(diǎn)j之間數(shù)據(jù)傳輸所需的開銷。
通過式(1)可以看出,存儲(chǔ)路徑上信息素的存量與鏈路節(jié)點(diǎn)的訪問熱度直接相關(guān)。因此,在信息素濃度相同的條件下,螞蟻對(duì)信息素依賴程度會(huì)出現(xiàn)異常。
為此,本文在蟻群算法中引入了啟發(fā)因子,利用其反映路徑上存在的信息素對(duì)螞蟻選擇路徑時(shí)的相對(duì)重要性,其計(jì)算方式可以表示為
其中,h表示啟發(fā)因子,也就是節(jié)點(diǎn)i與節(jié)點(diǎn)j之間鏈路上信息素濃度對(duì)螞蟻的影響程度,c表示螞蟻對(duì)信息素依賴程度,L表示鏈路的長度,e表示對(duì)節(jié)點(diǎn)i與節(jié)點(diǎn)j之間鏈路喜好的程度次數(shù),s表示節(jié)點(diǎn)i與節(jié)點(diǎn)j之間鏈路的擬合系數(shù)。
(3)在此基礎(chǔ)上,螞蟻根據(jù)鏈路上的信息素濃度完成對(duì)傳輸鏈路的選擇,直至存在ρ=ρmax,且h=bmax時(shí),將對(duì)應(yīng)的鏈路做出最終選擇,使得完成存儲(chǔ)的負(fù)載合理地分配到各個(gè)節(jié)點(diǎn)上,保證網(wǎng)絡(luò)的負(fù)載平衡。
(4)需要特別注意的是,由于存儲(chǔ)請(qǐng)求往往存在并發(fā)情況,可能會(huì)導(dǎo)致節(jié)點(diǎn)關(guān)鍵度信息在尋優(yōu)過程中出現(xiàn)更新。因此本文在完成對(duì)目標(biāo)鏈路的選擇后,制定了校驗(yàn)機(jī)制,將當(dāng)前時(shí)刻的存儲(chǔ)鏈路關(guān)鍵度參數(shù)與計(jì)算過程使用的存儲(chǔ)鏈路關(guān)鍵度參數(shù)進(jìn)行比較。當(dāng)二者相同時(shí),則表明并發(fā)請(qǐng)求并未影響鏈路的關(guān)鍵度,可繼續(xù)執(zhí)行蟻群算法的計(jì)算結(jié)果;當(dāng)二者不同時(shí),則表明并發(fā)請(qǐng)求對(duì)鏈路的關(guān)鍵度造成了影響,需要更新蟻群算法的參數(shù)信息,進(jìn)行新一輪的尋優(yōu)計(jì)算。由此確保存儲(chǔ)可以實(shí)現(xiàn)負(fù)載平衡。
在本文構(gòu)建的測(cè)試環(huán)境中,共使用了6臺(tái)物理機(jī)進(jìn)行測(cè)試優(yōu)化信息存儲(chǔ)方法。對(duì)具體的設(shè)置情況進(jìn)行布設(shè)時(shí),將其中兩臺(tái)物理機(jī)作為搭建NFS服務(wù)的核心,其具體的作用是為存儲(chǔ)虛擬機(jī)提供配置信息(內(nèi)存、CPU、硬盤等)。將另外4臺(tái)物理機(jī)作為部署XenServer環(huán)境的核心。在此基礎(chǔ)上,本文將所有XenServer 部署在同一個(gè)數(shù)據(jù)池中,通過這樣的方式使得所有物理機(jī)能夠共享相同的計(jì)算資源。不僅如此,在這樣的環(huán)境下,所有虛擬機(jī)也可以借助數(shù)據(jù)池的同源屬性,將任意一個(gè)物理機(jī)作為動(dòng)態(tài)部署目標(biāo),此時(shí)物理機(jī)之間可以順利地執(zhí)行虛擬機(jī)的遷移。具體的物理架構(gòu)圖見圖2。
按照?qǐng)D2所示的方式,完成對(duì)測(cè)試環(huán)境物理節(jié)點(diǎn)的設(shè)置。
在上述物理節(jié)點(diǎn)的基礎(chǔ)上,本文對(duì)測(cè)試環(huán)境中虛擬節(jié)點(diǎn)的設(shè)置是建立在XenServer服務(wù)基礎(chǔ)之上,并為其構(gòu)建了動(dòng)態(tài)機(jī)制。上文中已經(jīng)提到,本文設(shè)置的物理機(jī)存在于同一數(shù)據(jù)池中,因此XenServer即使部署在特定物理機(jī)上,虛擬機(jī)也不會(huì)對(duì)特定的物理機(jī)產(chǎn)生依賴。在此基礎(chǔ)上,通過預(yù)先在虛擬節(jié)點(diǎn)上安裝Ubuntu Server以及對(duì)應(yīng)Mongo DB存儲(chǔ)構(gòu)架,使得虛擬機(jī)具備存儲(chǔ)功能。在對(duì)Mongo DB的節(jié)點(diǎn)進(jìn)行具體劃分時(shí),按照存儲(chǔ)節(jié)點(diǎn)和非存儲(chǔ)節(jié)點(diǎn),設(shè)置了以輔助功能為基礎(chǔ)的配置節(jié)點(diǎn)和路由節(jié)點(diǎn),對(duì)應(yīng)的數(shù)量均為1個(gè),存儲(chǔ)節(jié)點(diǎn)的數(shù)量為12個(gè)。在此基礎(chǔ)上,為每個(gè)虛擬節(jié)點(diǎn)配置了大小為5G的運(yùn)行空間和大小為20G的存儲(chǔ)空間。
在上述基礎(chǔ)上,本文設(shè)計(jì)測(cè)試方法是通過調(diào)節(jié)存儲(chǔ)請(qǐng)求并發(fā)量,測(cè)試物理節(jié)點(diǎn)和虛擬節(jié)點(diǎn)的利用率。其中,前100 s存儲(chǔ)請(qǐng)求并發(fā)量由0勻速增長到100,100~150 s時(shí)間段內(nèi),并發(fā)數(shù)穩(wěn)定在100狀態(tài),并在結(jié)束時(shí)將并發(fā)請(qǐng)求數(shù)量降低至0。
利用黃永生[4]和閆娟雅[5]提出的方法同時(shí)進(jìn)行存儲(chǔ)測(cè)試,對(duì)比3種方法的測(cè)試結(jié)果。其中,對(duì)于每個(gè)物理節(jié)點(diǎn)上資源的使用率,本文是通過采集其實(shí)時(shí)CPU、內(nèi)存、帶寬的使用量與對(duì)應(yīng)資源的實(shí)際總量進(jìn)行計(jì)算的。對(duì)于虛擬節(jié)點(diǎn)上資源的使用率,本文同樣采用上述方法計(jì)算得出。
對(duì)比3種存儲(chǔ)方法下,物理節(jié)點(diǎn)和虛擬機(jī)節(jié)點(diǎn)的負(fù)載情況,分別見表1和表2。
表1 不同方法下物理節(jié)點(diǎn)利用率對(duì)比表
表2 不同方法下虛擬節(jié)點(diǎn)利用率對(duì)比表
從表1和表2中可以看出,對(duì)比3種數(shù)據(jù)存儲(chǔ)方法,雖然整體上物理節(jié)點(diǎn)和虛擬節(jié)點(diǎn)的利用率均呈現(xiàn)出隨著存儲(chǔ)請(qǐng)求并發(fā)量的增加逐漸上升的趨勢(shì),但是具體的利用率存在明顯差異。其中,黃永生方法和閆娟雅方法物理節(jié)點(diǎn)對(duì)CPU、內(nèi)存以及帶寬的利用率明顯低于本文方法,且虛擬節(jié)點(diǎn)利用率與物理節(jié)點(diǎn)利用率之間的變化關(guān)系并不一致;閆娟雅方法中,虛擬節(jié)點(diǎn)利用率的提升幅度明顯大于物理節(jié)點(diǎn)利用率的提升幅度,黃永生方法中,虛擬節(jié)點(diǎn)利用率的提升幅度明顯小于物理節(jié)點(diǎn)利用率的提升幅度。而相比之下,本文存儲(chǔ)方法下的物理節(jié)點(diǎn)和虛擬節(jié)點(diǎn)的利用率均明顯高于對(duì)比方法,且二者的發(fā)展是存在一定協(xié)調(diào)關(guān)系的。這表明本文提出方法可以保障對(duì)存儲(chǔ)過程的負(fù)載平衡。
為了進(jìn)一步驗(yàn)證分析結(jié)果,對(duì)平均訪問時(shí)間進(jìn)行對(duì)比,其結(jié)果見圖3。
從圖3中可以看出,對(duì)比3種方法,黃永生方法和閆娟雅方法的平均訪問時(shí)間隨著并發(fā)存儲(chǔ)請(qǐng)求規(guī)模的增加,上升趨勢(shì)更加明顯,當(dāng)并發(fā)存儲(chǔ)請(qǐng)求數(shù)量達(dá)到100時(shí),其訪問時(shí)間分別達(dá)到了35.8 ms和33.6 ms。相比之下,本文方法下的訪問時(shí)間發(fā)展趨勢(shì)受并發(fā)存儲(chǔ)請(qǐng)求規(guī)模的影響較小,當(dāng)并發(fā)存儲(chǔ)請(qǐng)求數(shù)量達(dá)到100時(shí),其訪問時(shí)間僅為22.5 ms。這是因?yàn)楸疚奶岢龇椒▽?shí)現(xiàn)了對(duì)存儲(chǔ)負(fù)載的均衡管理,避免了由于單一負(fù)載異常引起的訪問延時(shí),大大提高了對(duì)請(qǐng)求的處理效率。
在云存儲(chǔ)需求不斷提高的時(shí)代背景下,提高存儲(chǔ)性能和對(duì)有限資源的利用率主要取決于分布式集群各節(jié)點(diǎn)負(fù)載的均衡情況。本文提出考慮負(fù)載平衡的海量數(shù)據(jù)信息優(yōu)化存儲(chǔ)方法,實(shí)現(xiàn)了對(duì)物理機(jī)以及虛擬機(jī)資源的有效利用,大大縮短了存儲(chǔ)訪問時(shí)間。通過本文的研究,希望可以為信息時(shí)代下數(shù)據(jù)存儲(chǔ)工作的開展提供有價(jià)值的參考。