• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于MooseFS分布式云存儲(chǔ)系統(tǒng)負(fù)載均衡方法的研究

      2016-04-05 10:02:30崔海莉黃戈合肥學(xué)院信息化建設(shè)與管理中心安徽合肥230601
      關(guān)鍵詞:負(fù)載均衡集中式

      崔海莉,黃戈(合肥學(xué)院信息化建設(shè)與管理中心,安徽合肥 230601)

      ?

      基于MooseFS分布式云存儲(chǔ)系統(tǒng)負(fù)載均衡方法的研究

      崔海莉,黃戈
      (合肥學(xué)院信息化建設(shè)與管理中心,安徽合肥230601)

      摘要:基于MooseFS的分布式云存儲(chǔ)系統(tǒng),在節(jié)點(diǎn)間性能差異較大時(shí)存在負(fù)載不均衡問(wèn)題,文章提出了一種兩級(jí)負(fù)載均衡的策略,將存儲(chǔ)節(jié)點(diǎn)分為若干集合,不同集合節(jié)點(diǎn)采用優(yōu)先權(quán)值進(jìn)行調(diào)度,同一個(gè)集合中節(jié)點(diǎn)采用權(quán)重輪詢(xún)均衡算法。實(shí)際部署及實(shí)驗(yàn)結(jié)果表明,該文提出的負(fù)載均衡方法在存儲(chǔ)結(jié)點(diǎn)性能差異較大時(shí),可以很好地實(shí)現(xiàn)基于MooseFS分布式云存儲(chǔ)系統(tǒng)的負(fù)載均衡。

      關(guān)鍵詞:分布式文件系統(tǒng);負(fù)載均衡;集中式;動(dòng)態(tài)反饋

      數(shù)據(jù)的高可靠性和系統(tǒng)的高訪(fǎng)問(wèn)性是云存儲(chǔ)系統(tǒng)的重點(diǎn)。云存儲(chǔ)系統(tǒng)一般采用分布式存儲(chǔ)技術(shù)來(lái)管理和存儲(chǔ)數(shù)據(jù),即數(shù)據(jù)被拆分成多個(gè)相同大小的數(shù)據(jù)塊盡量存儲(chǔ)到不同的數(shù)據(jù)服務(wù)器中,分?jǐn)偣?jié)點(diǎn)訪(fǎng)問(wèn)壓力[1],避免性能瓶頸以提高系統(tǒng)性能;另外,采用副本機(jī)制,數(shù)據(jù)塊有多個(gè)副本,用冗余副本保證數(shù)據(jù)的可靠性。這種分布式的模式對(duì)系統(tǒng)的負(fù)載均衡提出了要求。

      本文針對(duì)基于MooseFS分布式文件系統(tǒng)構(gòu)建的云存儲(chǔ)系統(tǒng),在節(jié)點(diǎn)間性能差異較大時(shí)存在負(fù)載不均衡問(wèn)題,提出了一種兩級(jí)負(fù)載均衡的策略,在性能差異較大的節(jié)點(diǎn)之間做到負(fù)載均衡并且能分擔(dān)中心節(jié)點(diǎn)的負(fù)載均衡壓力,降低中心節(jié)點(diǎn)的性能瓶頸。實(shí)驗(yàn)驗(yàn)證了該方法的有效性。

      1 相關(guān)研究

      MooseFS(Moose File System,簡(jiǎn)稱(chēng)MFS)[2]是由Gemius SA開(kāi)發(fā)的一個(gè)具有容錯(cuò)、可擴(kuò)展、兼容POSIX標(biāo)準(zhǔn)和多用途功能的文件系統(tǒng)。它通過(guò)分布式技術(shù)將數(shù)據(jù)分散存儲(chǔ)在多個(gè)不同的物理機(jī)器中,但這些對(duì)于用戶(hù)是透明的。

      MFS分布式文件系統(tǒng)由“managing server (master server)”、“metadata backup server(s)(metalogger server)”、“mata servers(chunk servers)”、“client computers”組成。系統(tǒng)采用主從式結(jié)構(gòu),master server主要負(fù)責(zé)元數(shù)據(jù)管理,包括“每個(gè)文件信息與屬性和文件位置(多個(gè))”、存儲(chǔ)節(jié)點(diǎn)管理、節(jié)點(diǎn)負(fù)載均衡、數(shù)據(jù)塊副本管理等;數(shù)據(jù)真正是存儲(chǔ)在chunk servers上,并且“在它們之間進(jìn)行同步(如果某個(gè)文件的多個(gè)副本存在)”??蛻?hù)端和“master server通信(接收和修改文件元數(shù)據(jù)),和chunk servers通信(進(jìn)行實(shí)際的文件數(shù)據(jù)交換)”。metalogger server作為master server的備份,主要“存儲(chǔ)元數(shù)據(jù)更新日志,并定期下載主要的元數(shù)據(jù)文件”,用于master server的故障恢復(fù)[2]。其邏輯拓?fù)鋱D如圖1所示。除主控點(diǎn)是單點(diǎn)外,其余各點(diǎn)均具備冗余性。

      圖1 MFS拓?fù)浣Y(jié)構(gòu)

      云存儲(chǔ)系統(tǒng)為了提高系統(tǒng)訪(fǎng)問(wèn)性能,避免性能瓶頸,必須確保數(shù)據(jù)分散存儲(chǔ)在各個(gè)存儲(chǔ)節(jié)點(diǎn),這樣才能分?jǐn)偣?jié)點(diǎn)訪(fǎng)問(wèn)壓力,從而實(shí)現(xiàn)存儲(chǔ)空間的負(fù)載均衡和網(wǎng)絡(luò)訪(fǎng)問(wèn)帶寬的負(fù)載均衡[3]。在數(shù)據(jù)分布策略上人們提出了一系列的經(jīng)典算法,如早期的LH*[4]、一致性哈希[5]等經(jīng)典算法。隨著技術(shù)的發(fā)展,在Dynamo[6]、Lustre[7]、GPFS[8]等系統(tǒng)中,根據(jù)不同的應(yīng)用需求又有不同的數(shù)據(jù)分布解決方案。

      雖然目前開(kāi)始出現(xiàn)一些分布式文件系統(tǒng)如IBM的GPFS[9],利用文件分塊技術(shù)對(duì)文件的元數(shù)據(jù)進(jìn)行分布式管理,但大多數(shù)分布式文件系統(tǒng)(Google的GFS[10]、Hadoop的HDFS[11]、MooseFS 的MFS[2])仍采用中心節(jié)點(diǎn)來(lái)?yè)?dān)當(dāng)負(fù)載均衡節(jié)點(diǎn),例如MFS中的master節(jié)點(diǎn),它主要用來(lái)維護(hù)文件塊被分配到chunkservers的位置。

      負(fù)載均衡的實(shí)現(xiàn)方法主要分靜態(tài)負(fù)載均衡和動(dòng)態(tài)負(fù)載均衡。靜態(tài)方法的均衡策略是事先制定好的、固定的,對(duì)于構(gòu)成復(fù)雜的云存儲(chǔ)系統(tǒng)來(lái)說(shuō),不能適應(yīng)隨時(shí)變化的節(jié)點(diǎn)的負(fù)載狀況,負(fù)載均衡效果并不好。動(dòng)態(tài)方法則是實(shí)時(shí)收集、存儲(chǔ)和分析系統(tǒng)的當(dāng)前狀況,在各節(jié)點(diǎn)間有目的地、動(dòng)態(tài)調(diào)度任務(wù)。動(dòng)態(tài)方法的負(fù)載均衡效果顯然比靜態(tài)要好,但是不可避免地會(huì)增加額外開(kāi)銷(xiāo)[12]。

      云存儲(chǔ)系統(tǒng)中,每個(gè)存儲(chǔ)節(jié)點(diǎn)都有性能監(jiān)測(cè)模塊收集諸如磁盤(pán)剩余空間、網(wǎng)絡(luò)帶寬利用率、CPU利用率等狀態(tài)信息。在動(dòng)態(tài)負(fù)載均衡算法中,這些信息實(shí)時(shí)地向負(fù)載均衡節(jié)點(diǎn)反饋,負(fù)載均衡節(jié)點(diǎn)再根據(jù)請(qǐng)求任務(wù)的需求在各存儲(chǔ)節(jié)點(diǎn)間分配。分配的策略主要是依據(jù)云存儲(chǔ)系統(tǒng)應(yīng)用環(huán)境的類(lèi)型,比如計(jì)算任務(wù)大的,分配依據(jù)就偏重于CPU利用率;讀寫(xiě)任務(wù)大的,分配依據(jù)就偏重于讀寫(xiě)次數(shù)。集中式動(dòng)態(tài)負(fù)載均衡一般是在節(jié)點(diǎn)的初始集群生成后,負(fù)載均衡節(jié)點(diǎn)依據(jù)制定的選擇策略,根據(jù)所提出的目標(biāo)函數(shù),首先獲取當(dāng)前集群中各節(jié)點(diǎn)的目標(biāo)值,然后依據(jù)該目標(biāo)值進(jìn)行評(píng)價(jià),計(jì)算相對(duì)應(yīng)的評(píng)價(jià)值,以確定選擇該節(jié)點(diǎn)的概率[13-16]。這些必然會(huì)增加負(fù)載均衡節(jié)點(diǎn)的額外開(kāi)銷(xiāo),所以還要考慮由負(fù)載均衡策略帶來(lái)的這些額外開(kāi)銷(xiāo)和增加的系統(tǒng)性能之間的平衡。

      MFS分布式文件系統(tǒng)采用集中式動(dòng)態(tài)負(fù)載均衡算法,由master擔(dān)任負(fù)載均衡節(jié)點(diǎn)角色。

      2 MFS負(fù)載均衡策略

      MFS中采用拆分技術(shù),大文件被拆分成每份大小不超過(guò)64 M的chunk進(jìn)行存儲(chǔ);小于64 M的文件,該chunk的大小即為該文件大小。

      當(dāng)有數(shù)據(jù)存儲(chǔ)請(qǐng)求時(shí),由master負(fù)責(zé)選出當(dāng)前可用的chunkserver。MFS對(duì)chunkserver可用性的解釋為:每個(gè)chunkserver的磁盤(pán)都要為增長(zhǎng)中的chunks保留一些磁盤(pán)空間以滿(mǎn)足創(chuàng)建新的chunk的需求。MFS要求的這一值為1 GB。然后根據(jù)評(píng)價(jià)策略,在可用chunkserver的集合中計(jì)算出每個(gè)chunkserver的評(píng)價(jià)指標(biāo)值,將這些評(píng)價(jià)值從大到小做快速排序,優(yōu)先選擇評(píng)價(jià)值最大的chunkserver。顯然如何選擇用于存儲(chǔ)數(shù)據(jù)的chunkserver在一定程度上影響了系統(tǒng)負(fù)載的均衡。

      當(dāng)有數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求時(shí),master根據(jù)元數(shù)據(jù)信息找到文件對(duì)應(yīng)數(shù)據(jù)塊所在的chunkserver,并向MFS client返回。client收到master傳遞過(guò)來(lái)副本所在chunkserver的ip和port時(shí),選擇當(dāng)時(shí)正在讀寫(xiě)次數(shù)少的chunkserver作為訪(fǎng)問(wèn)對(duì)象。

      chunkserver的評(píng)價(jià)指標(biāo)是MFS中數(shù)據(jù)分布算法的核心。MFS中chunkserver的負(fù)載均衡部分在文件matocsserv.c中實(shí)現(xiàn)。在服務(wù)開(kāi)啟時(shí),先通過(guò)函數(shù)rndu32()為每個(gè)chunkserver隨機(jī)產(chǎn)生一個(gè)評(píng)價(jià)指標(biāo)值carry:

      eptr→carry=(double)(rndu32())/(double)(0xFFFFFFFFU)。

      而carry的修正量是用當(dāng)前chunkserver的總空間(totalspace)和系統(tǒng)中最大的chunkserver總空間(maxtotalspace)的比值產(chǎn)生的:

      servtab[allcnt].W=(double)eptr→totalspace/(double)maxtotalspace。

      由修正量的迭代累加得到評(píng)價(jià)指標(biāo):

      carry=servtab[i].carry+servtab[i].W。

      從上面的分析可以看出決定chunkserver選擇的評(píng)價(jià)指標(biāo)值與該chunkserver的totalspace有關(guān)。在chunkserver的總空間(totalspace)差別不大的情況下,chunk基本上可以均衡地分布到各個(gè)chunkserver上。在4.1節(jié)的性能測(cè)試中有數(shù)據(jù)證明了chunkserver配置相同時(shí)chunk的均衡分布。

      如果chunkserver的總空間(totalspace)差別較大,上述算法容易導(dǎo)致在有存儲(chǔ)請(qǐng)求時(shí)存儲(chǔ)空間越大的chunkserver,chunk的分布就越多,訪(fǎng)問(wèn)壓力越大。各chunkserver之間的訪(fǎng)問(wèn)壓力不均衡,機(jī)器之間無(wú)法達(dá)到更好的網(wǎng)絡(luò)帶寬使用率,最終會(huì)影響系統(tǒng)的整體性能。而有訪(fǎng)問(wèn)請(qǐng)求時(shí)讀寫(xiě)次數(shù)也不能真實(shí)反映服務(wù)節(jié)點(diǎn)的負(fù)載情況,這有可能是因?yàn)楣?jié)點(diǎn)的外在性能不好而無(wú)法接受新的任務(wù)導(dǎo)致的。這種任務(wù)調(diào)度策略在節(jié)點(diǎn)外在性能差異較大的情況下,也不能做到負(fù)載均衡。

      3 改進(jìn)的MFS負(fù)載均衡策略及算法

      基于MFS原有的集中式管理,改進(jìn)的策略中充分考慮導(dǎo)致存儲(chǔ)節(jié)點(diǎn)性能差異的因素和節(jié)點(diǎn)負(fù)載狀況,由此增加的額外開(kāi)銷(xiāo)采用分?jǐn)偟姆绞椒稚⒌礁鞔鎯?chǔ)節(jié)點(diǎn),即采用各存儲(chǔ)節(jié)點(diǎn)自適應(yīng)收集信息,根據(jù)自身狀態(tài)反饋給中心節(jié)點(diǎn)的分步式主動(dòng)反饋替代原來(lái)由中心節(jié)點(diǎn)主動(dòng)收集的集中式反饋,同時(shí)盡量減小負(fù)載均衡算法的復(fù)雜度。

      3.1改進(jìn)的負(fù)載均衡策略

      影響chunkserver性能的因素很多,chunkserver選擇的基本依據(jù)是計(jì)算能力強(qiáng)、存儲(chǔ)容量大、帶寬充足等這類(lèi)資源充足的節(jié)點(diǎn)。首先分析所有存儲(chǔ)節(jié)點(diǎn)的負(fù)載權(quán)重狀況,依據(jù)各存儲(chǔ)節(jié)點(diǎn)的負(fù)載狀況監(jiān)測(cè)模塊監(jiān)測(cè)到的節(jié)點(diǎn)計(jì)算資源、存儲(chǔ)資源和網(wǎng)絡(luò)資源等狀態(tài)信息可以設(shè)計(jì)存儲(chǔ)服務(wù)器的負(fù)載評(píng)價(jià)函數(shù),由負(fù)載評(píng)價(jià)函數(shù)得到的負(fù)載值將服務(wù)器劃分成3個(gè)集合:輕載集合、適載集合和重載集合。

      定義1 C代表chunkserver,那么Ci就是第i 個(gè)chunkserver,第i個(gè)chunkserver可用必須同時(shí)滿(mǎn)足條件:①Ci是存活狀態(tài);②Ci剩余可用空間大于一個(gè)設(shè)定的值,在MFS中該值為1 G。

      按定義1,對(duì)可用節(jié)點(diǎn)服務(wù)器負(fù)載信息采用資源消耗模型,這里主要考慮CPU利用率、內(nèi)存使用率、網(wǎng)絡(luò)帶寬利用率等因素??捎么鎯?chǔ)節(jié)點(diǎn)Ci在某一時(shí)刻負(fù)載評(píng)價(jià)函數(shù)如下:

      這里設(shè)計(jì)可用存儲(chǔ)節(jié)點(diǎn)Ci的負(fù)載主要包含3項(xiàng)指標(biāo):CPU(Ci)為CPU利用率,MEM(Ci)為內(nèi)存利用率,NET(Ci)為網(wǎng)絡(luò)帶寬利用率,ηi為3項(xiàng)負(fù)載指標(biāo)的加權(quán)系數(shù),η1+η2+η3=1,ηi的取值取決于CPU、內(nèi)存和網(wǎng)絡(luò)帶寬利用率對(duì)負(fù)載變量L(Ci)的影響程度,依據(jù)系統(tǒng)的服務(wù)不同,各權(quán)值的影響也各不相同,可以根據(jù)系統(tǒng)實(shí)際測(cè)試進(jìn)行設(shè)置,以期達(dá)到最佳狀態(tài)。

      在負(fù)載指標(biāo)收集過(guò)程中,由于多種因素的影響會(huì)出現(xiàn)某項(xiàng)指標(biāo)值的暫時(shí)波動(dòng)從而導(dǎo)致負(fù)載評(píng)價(jià)函數(shù)曲線(xiàn)的擾動(dòng)。為了降低因這種波動(dòng)而導(dǎo)致服務(wù)器集合劃分時(shí)出現(xiàn)誤差的可能性,這里引入降擾修正函數(shù):

      其中,L(Ci)n為經(jīng)修正計(jì)算過(guò)的負(fù)載值;L(Ci)l為前一次采集后進(jìn)行修正的負(fù)載值;L(Ci)o為當(dāng)前采集的負(fù)載值;λ為修正因子。修正因子的取值依據(jù)其對(duì)負(fù)載曲線(xiàn)的影響程度,在系統(tǒng)實(shí)際測(cè)試中進(jìn)行設(shè)置,選取負(fù)載曲線(xiàn)較為平滑時(shí)的值,這樣有利于后續(xù)劃分服務(wù)器集合策略的準(zhǔn)確性,而使得服務(wù)器的負(fù)載信息數(shù)據(jù)的采集不容易受到非正常擾動(dòng)的影響。

      依據(jù)L(Ci)將整個(gè)負(fù)載狀況分成3個(gè)集合,區(qū)間劃分為(0,θ1]、(θ1,θ2]、(θ2,1],其中θ1、θ2為負(fù)載輕重閾值(0<θ1<θ2<1)。據(jù)此劃分,主控服務(wù)器節(jié)點(diǎn)管理模塊把存儲(chǔ)節(jié)點(diǎn)分成3類(lèi),分別存放在SCH、SCM、SCL3個(gè)集合中。其中,SCH、SCM、SCL分別表示重載、適載、輕載的存儲(chǔ)節(jié)點(diǎn)集合。集合中保存了所有可用存儲(chǔ)服務(wù)器節(jié)點(diǎn)的信息。分布式主動(dòng)反饋中,各存儲(chǔ)節(jié)點(diǎn)每隔一段時(shí)間,根據(jù)負(fù)載評(píng)價(jià)函數(shù)的影響因素計(jì)算出自己的負(fù)載值L(Ci),只在當(dāng)某存儲(chǔ)節(jié)點(diǎn)的負(fù)載L(Ci)發(fā)生較大變化,從一個(gè)集合跳至另一集合時(shí),才向主節(jié)點(diǎn)反饋信息,這樣可以降低存儲(chǔ)節(jié)點(diǎn)周期性反饋所占用的網(wǎng)絡(luò)開(kāi)銷(xiāo),也不影響該節(jié)點(diǎn)的負(fù)載狀況在主節(jié)點(diǎn)的及時(shí)更新。主節(jié)點(diǎn)根據(jù)存儲(chǔ)節(jié)點(diǎn)的反饋信息對(duì)節(jié)點(diǎn)進(jìn)行出隊(duì)、入隊(duì)等操作。

      集合內(nèi)采用加權(quán)輪詢(xún)調(diào)度算法選擇可直接存儲(chǔ)數(shù)據(jù)的chunkserver。針對(duì)原chunkserver選擇算法中僅考慮總存儲(chǔ)空間這一單一因素,充分考慮各個(gè)節(jié)點(diǎn)自身能力的大小,進(jìn)行合理選擇,盡可能使chunk塊平均地分布到各chunkserver上。設(shè)Ci的調(diào)度評(píng)價(jià)值為carryi。

      定義2第i個(gè)chunkserver可直接存儲(chǔ)數(shù)據(jù)必須同時(shí)滿(mǎn)足條件:①可用chunkserver的定義;②Ci的評(píng)價(jià)指標(biāo)值不小于1,即carryi≥1。

      存儲(chǔ)節(jié)點(diǎn)的調(diào)度思想是資源充足、負(fù)載低的節(jié)點(diǎn)優(yōu)先被選擇。根據(jù)負(fù)載評(píng)價(jià)函數(shù)劃分出集合后,對(duì)于同一集合內(nèi)的存儲(chǔ)節(jié)點(diǎn)負(fù)載狀況在同一區(qū)間,差別不大,這時(shí)的主要選擇依據(jù)為節(jié)點(diǎn)自身的資源使用狀況。對(duì)存儲(chǔ)容量來(lái)說(shuō),容量大的節(jié)點(diǎn)有優(yōu)勢(shì),但是還要看容量使用情況,只要存儲(chǔ)空間使用率不超過(guò)某一閾值,也應(yīng)該有被調(diào)度的機(jī)會(huì)。這樣對(duì)各節(jié)點(diǎn)的存儲(chǔ)空間利用相對(duì)平均,保證數(shù)據(jù)有目的地均衡分散到系統(tǒng)各節(jié)點(diǎn),而不僅僅集中于空間容量大的節(jié)點(diǎn)。

      按定義2,設(shè)可直接存儲(chǔ)數(shù)據(jù)的節(jié)點(diǎn)總存儲(chǔ)空間為T(mén)i,該系統(tǒng)中所有節(jié)點(diǎn)總存儲(chǔ)空間最大的存儲(chǔ)空間為T(mén)max,節(jié)點(diǎn)已使用空間為Ui。

      根據(jù)第2節(jié)的分析,為避免在chunkserver總空間差別較大時(shí)出現(xiàn)chunk分布不均的問(wèn)題,可以加入存儲(chǔ)空間使用率因素來(lái)加以控制。修改原算法中carry的修正量W為:

      servtab[allcnt].W=(maxtotalspace-eptr→usedspace)/eptr→maxtotalspace

      進(jìn)一步,單純考慮存儲(chǔ)空間使用率雖然可以避免上述可能出現(xiàn)的問(wèn)題,但是這樣又會(huì)使得原存儲(chǔ)空間優(yōu)勢(shì)較大的節(jié)點(diǎn)沒(méi)有充分發(fā)揮其性能,因此引入存儲(chǔ)空間容量權(quán)重因素,節(jié)點(diǎn)的評(píng)價(jià)指標(biāo)值carry的修正值W為:其中,Wt為節(jié)點(diǎn)總存儲(chǔ)空間權(quán)重;Wu為已使用空間權(quán)重;Wt+Wu=1;μ為存儲(chǔ)空間使用率閾值。

      3.2算法設(shè)計(jì)

      當(dāng)有訪(fǎng)問(wèn)任務(wù)請(qǐng)求到達(dá)時(shí),在主控服務(wù)器節(jié)點(diǎn)管理模塊的可用存儲(chǔ)服務(wù)器節(jié)點(diǎn)集合中,優(yōu)先選擇輕載集合SCL,若SCL??,選取該集合中的存儲(chǔ)節(jié)點(diǎn)加入備選節(jié)點(diǎn)集合S;否則選擇適載集合SCM,若SCM??,選取該集合中的節(jié)點(diǎn)加入備選節(jié)點(diǎn)集合S;否則選擇重載集合SCH,若SCH??,選取該集合中的節(jié)點(diǎn)加入備選節(jié)點(diǎn)集合S;否則返回失?。o(wú)可用節(jié)點(diǎn))。

      系統(tǒng)在集合內(nèi)選擇的算法流程如下:

      (1)服務(wù)開(kāi)啟時(shí),每個(gè)chunkserver隨機(jī)產(chǎn)生一個(gè)評(píng)價(jià)指標(biāo)值carry。

      (2)master獲取備選集合S內(nèi)各存儲(chǔ)節(jié)點(diǎn)的carry值。此時(shí),各節(jié)點(diǎn)的carry=carry+W,對(duì)其按從大到小進(jìn)行快速排序,其中W為按(3)式得出的carry的修正值。

      (3)如果此時(shí)最大的carry值大于1且同時(shí)擁有該值的chunkserver剩余的空間大于1 G,即滿(mǎn)足定義2,為可直接存儲(chǔ)節(jié)點(diǎn),則選擇該值對(duì)應(yīng)的chunkserver,之后修正該節(jié)點(diǎn)的評(píng)價(jià)指標(biāo)值carry=carry-1。

      (4)如果carry最大值小于1,則每一個(gè)節(jié)點(diǎn)的carry值均加上W。之后重新排序回到步驟(2)進(jìn)行選擇,直到選到1臺(tái)chunkserver的carry值大于1為止,然后重復(fù)步驟(3)。

      4 實(shí)驗(yàn)結(jié)果及分析

      4.1MooseFS集群性能測(cè)試及分析

      實(shí)驗(yàn)環(huán)境采用MooseFS 1.6.27版本軟件,集群服務(wù)器為6臺(tái)物理機(jī):1臺(tái)MFS元數(shù)據(jù)服務(wù)器(Master),IP為192.168.20.41,2.0 GHz雙核CPU,32 G內(nèi)存;5臺(tái)MFS數(shù)據(jù)存儲(chǔ)服務(wù)器(ChunkServer),IP為192.168.20.42~46,2.4 GHz單核CPU,16 G內(nèi)存;其中IP為192.168.20.42也作為元數(shù)據(jù)日志服務(wù)器(Metalogger)。每臺(tái)服務(wù)器各自?huà)燧d28 T存儲(chǔ)空間,服務(wù)器操作系統(tǒng)采用符合POSIX規(guī)范的CentOS6.5。為保證數(shù)據(jù)傳輸,所有服務(wù)器均配置千兆全雙工網(wǎng)卡,之間通過(guò)1臺(tái)千兆交換機(jī)互連。MFS將多臺(tái)存儲(chǔ)服務(wù)器的硬盤(pán)空間在邏輯上虛擬成一個(gè)大容量存儲(chǔ)池,為業(yè)務(wù)系統(tǒng)提供存儲(chǔ)服務(wù)。MFS client能通過(guò)Linux內(nèi)核FUSE模塊將MFS所構(gòu)建的大容量存儲(chǔ)池掛載到本地文件系統(tǒng)中使用。云存儲(chǔ)系統(tǒng)建成,獲得136 T的可用空間。圖2所示為系統(tǒng)在有持續(xù)讀寫(xiě)時(shí)各存儲(chǔ)節(jié)點(diǎn)磁盤(pán)運(yùn)行狀態(tài)的基本信息,可以看出采用MFS選擇算法在各節(jié)點(diǎn)存儲(chǔ)空間差別不大的情況下chunk均衡分布。

      圖2 MooseFS集群的磁盤(pán)運(yùn)行狀態(tài)

      4.2改進(jìn)算法測(cè)試與分析

      在當(dāng)前實(shí)驗(yàn)環(huán)境下,為測(cè)試改進(jìn)算法負(fù)載均衡效果,調(diào)整其中1臺(tái)存儲(chǔ)節(jié)點(diǎn)chunkserver 4的配置,改變MFS掛載分區(qū)的大小為2 T,其他配置相同。在4.1節(jié)介紹的實(shí)驗(yàn)環(huán)境中,各節(jié)點(diǎn)外部性能差異不大,集合之間的加權(quán)因素?zé)o法充分體現(xiàn),因此本次測(cè)試的主要目的為:①觀察改進(jìn)的算法在集合內(nèi)chunkserver容量不均的情況下數(shù)據(jù)分布狀況;②觀察存儲(chǔ)節(jié)點(diǎn)動(dòng)態(tài)管理策略對(duì)主服務(wù)器流量的影響。

      在3.1節(jié)提出的改進(jìn)算法中修改了MFS原 chunkserver選擇算法中僅考慮總存儲(chǔ)空間這一單一因素,引入存儲(chǔ)空間容量權(quán)重因素。因此此次實(shí)驗(yàn)從3個(gè)方面對(duì)比chunk的分布情況:①存儲(chǔ)節(jié)點(diǎn)的評(píng)價(jià)指標(biāo)為節(jié)點(diǎn)總存儲(chǔ)空間大小;②存儲(chǔ)節(jié)點(diǎn)的評(píng)價(jià)指標(biāo)為節(jié)點(diǎn)存儲(chǔ)空間使用率;③存儲(chǔ)節(jié)點(diǎn)的評(píng)價(jià)指標(biāo)引入存儲(chǔ)空間容量權(quán)重因素。測(cè)試前將chunkserver 4調(diào)整掛載分區(qū)大小后各chunkserver的初始狀態(tài)見(jiàn)表1所列。

      表1 各chunkserver初始條件

      使用MFS提供的mfssetgoal命令,該命令的作用是設(shè)置文件副本數(shù)。在這里設(shè)置goal為2,即每份數(shù)據(jù)存儲(chǔ)2份副本。對(duì)算法中涉及的參數(shù)做如下設(shè)置:Wt節(jié)點(diǎn)總存儲(chǔ)空間權(quán)重設(shè)為0.6,Wu已使用空間權(quán)重設(shè)為0.4,存儲(chǔ)空間使用率的閾值μ設(shè)為0.5。用dd命令,goal=2,bs=2 M,count=5 000多次寫(xiě)入10 G文件,觀察數(shù)據(jù)塊在存儲(chǔ)節(jié)點(diǎn)上的分布情況,測(cè)試結(jié)果見(jiàn)表2所列。

      表2 3種算法chunkserver存儲(chǔ)空間使用情況

      實(shí)驗(yàn)對(duì)原算法、考慮存儲(chǔ)空間利用率和考慮存儲(chǔ)容量權(quán)重3種集合內(nèi)選擇算法分別做3次數(shù)據(jù)寫(xiě)入測(cè)試。為方便說(shuō)明,先根據(jù)節(jié)點(diǎn)性能把chunkserver 1、2、3、5稱(chēng)為第1組節(jié)點(diǎn),chunkserver 4稱(chēng)為第2組節(jié)點(diǎn)。在進(jìn)行完3輪數(shù)據(jù)存儲(chǔ)后,評(píng)價(jià)指標(biāo)為節(jié)點(diǎn)總存儲(chǔ)空間大小時(shí)第1組節(jié)點(diǎn)平均空間使用率為0.126 8%,第2組為0.111 1%;評(píng)價(jià)指標(biāo)為存儲(chǔ)空間使用率時(shí),第1組節(jié)點(diǎn)平均空間使用率為0.125 9%,第2組為0.111 1%;引入存儲(chǔ)空間權(quán)重因素后,第1組節(jié)點(diǎn)平均空間使用率為0.128 7%,第2組為0.111 1%。

      原算法中只考慮存儲(chǔ)服務(wù)器的總存儲(chǔ)空間,在節(jié)點(diǎn)總存儲(chǔ)空間差異較大時(shí),數(shù)據(jù)分布選擇總存儲(chǔ)空間大的節(jié)點(diǎn)的概率很高。修改為存儲(chǔ)空間使用率因素后,由于本實(shí)驗(yàn)環(huán)境中節(jié)點(diǎn)之間的空間差異沒(méi)有梯度化,2組節(jié)點(diǎn)空間差異較大,所以算法優(yōu)化后存儲(chǔ)空間利用率變化沒(méi)有呈現(xiàn)梯度化的差異,但是仍可明顯看出第1組性能好的節(jié)點(diǎn)空間使用率有所下降,相對(duì)來(lái)說(shuō)第2組節(jié)點(diǎn)空間使用率則沒(méi)有發(fā)生變化。引入容量權(quán)重因素后,因?yàn)橄到y(tǒng)中存儲(chǔ)的測(cè)試數(shù)據(jù)量相對(duì)節(jié)點(diǎn)總存儲(chǔ)空間來(lái)說(shuō),各節(jié)點(diǎn)存儲(chǔ)空間使用率遠(yuǎn)遠(yuǎn)小于設(shè)置的閾值,在這種情況下,性能好的節(jié)點(diǎn)權(quán)重修正量W遠(yuǎn)遠(yuǎn)大于性能差的節(jié)點(diǎn)(按本次實(shí)驗(yàn)所取參數(shù),第1組節(jié)點(diǎn)的權(quán)重修正量為0.6,第2組為0.04),所以此時(shí)第1組節(jié)點(diǎn)的空間使用率又有所上升。引入容量權(quán)重因素可以使chunk的分布更加合理,而且權(quán)重因子可以根據(jù)實(shí)際應(yīng)用環(huán)境,選擇更加合理的值,以使整個(gè)系統(tǒng)負(fù)載更加均衡。

      采用兩級(jí)負(fù)載策略,存儲(chǔ)服務(wù)器根據(jù)自身狀態(tài)和設(shè)置的閾值,分步式主動(dòng)反饋給中心節(jié)點(diǎn)負(fù)載狀況,分流了計(jì)算任務(wù),避免因算法中考慮因素增多而加重中心節(jié)點(diǎn)的負(fù)擔(dān),圖3所示為在測(cè)試期間監(jiān)控到的主節(jié)點(diǎn)的數(shù)據(jù)流量分布,3段峰值分別對(duì)應(yīng)原算法、考慮存儲(chǔ)空間使用率和考慮存儲(chǔ)空間容量權(quán)重算法時(shí)的流量,可以看出主節(jié)點(diǎn)的流量負(fù)擔(dān)并沒(méi)有加重。

      圖3 3種算法主節(jié)點(diǎn)流量分布圖

      5 結(jié)束語(yǔ)

      本文對(duì)現(xiàn)有MFS負(fù)載均衡算法的核心進(jìn)行分析,指出在集群性能差異較大的情況下考慮因素單一、負(fù)載均衡效果不明顯的缺陷,提出按節(jié)點(diǎn)負(fù)載權(quán)重狀況劃分集合,集合之間采用優(yōu)先權(quán)法,根據(jù)優(yōu)先值選擇集合;集合內(nèi)采用權(quán)重輪詢(xún)均衡算法,充分考慮各個(gè)節(jié)點(diǎn)自身能力的大小,進(jìn)行合理選擇。實(shí)驗(yàn)驗(yàn)證了該算法的有效性。

      [參考文獻(xiàn)]

      [1]Rabinovich M,Rabinovich I,Rajaraman R,et al.A dynamic object replication and migration protocol for an Internet hosting service[C]//Proc of the 19th IEEE International Conference on Distributed Computing Systems,1999:101-113.

      [2]MooseFS Team.MooseFS[EB/OL].[2005-09-12].http://www.moosefs.org/about-mfs.html.

      [3]Zeng Wenying,Zhao Yuelong,Ou Kairi,et al.Research on cloud storage architecture and key technologies[C]//ICIS ' 09:Proceedings of the 2nd International Conference on Interaction Sciences:Information Technology,Culture and Human.New York:ACM,2009:1044-1048.

      [4]Litwin W,Neimat M-A,Schneider D A.L H*:a scalable,distributed data structure[J].ACM Transactions on Database Systems,1996,21(4):480-525.

      [5]Lewin D.Consistent hashing and random trees:algorithms for caching in distributed networks[D].Cambridge,Massachusetts:Massachusetts Institute of Technology,Department of E-lectrical Engineering and Computer Science,1998.

      [6]Decandia G,Hastorun D,Jampani M,et al.Dynamo:Amazon’s highly available key-value store[C]//SOSP’07:Proceedings of the 21st ACM Symposium on Operating Systems Principles.New York:ACM,2007:205-220.

      [7]Oracle Corp.Lustre file system[EB/OL].(2011-06-12).http://wiki.lustre.Org/index.php/Main-Page.

      [8]Schmuck F,Haskin R.GPFS:a shared-disk file system for large computing clusters[C]//FAST’02:Proceedings of the 1st USENIX Conference on File and Storage Technologies.Berkeley,CA:USENIX,2002:231-244.

      [9]Hsiao H,Chung H,Shen H,et al.Load rebalancing for distributed file systems in clouds[J].Applied Soft Computing,2012,21:102-105.

      [10]Ghemawat S,Gobiof H,Leung S T.The Google file system [J].ACM SIGOPS Operating Systems Review,2003,37(5):29-43.

      [11]Shvachko K,Kuang Hairong,Radia S,et al.The Hadoop Distributed File System[C]//Proc of the 26th IEEE Symposium on Mass Storage Systems and Technologies,2010:1-10.

      [12]陳亮.集群負(fù)載均衡關(guān)鍵技術(shù)研究[D].長(zhǎng)沙:中南大學(xué),2009.

      [13]薛偉.分布式文件系統(tǒng)關(guān)鍵技術(shù)研究與實(shí)現(xiàn)[D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2011.

      [14]劉玉艷,沈明玉.一種LVS負(fù)載均衡調(diào)度算法WLC的改進(jìn)[J].制造業(yè)自動(dòng)化,2010,32(9):187-191.

      [15]劉玉艷,沈明玉.LVS負(fù)載均衡技術(shù)在網(wǎng)絡(luò)服務(wù)中的應(yīng)用[J].合肥工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2007,30(12):1592-1595.

      [16]王命全.網(wǎng)格環(huán)境中基于負(fù)載均衡的工作流調(diào)度算法[J].計(jì)算機(jī)應(yīng)用,2010,30(12):3184-3186.

      (責(zé)任編輯張镅)

      Research on load balancing method for distributed cloud storage system based on MooseFS

      CUI Hai-li,HUANG Ge
      (Center of Information Development and Management,Hefei University,Hefei 230601,China)

      Abstract:In the distributed cloud storage system based on MooseFS,there is load imbalance problem due to the large difference in performance between nodes.In this paper,a two-stage load balancing strategy is proposed,in which the storage nodes are divided into several sets,and different sets of nodes are scheduled by using priority values and the same sets of nodes using weights polling algorithm.The application and experimental results show that in the case of large difference in performance between nodes,the proposed load balancing method can be very good for achieving the load balance of the distributed cloud storage system based on MooseFS.

      Key words:distributed file system;load balancing;centralization;dynamic feedback

      作者簡(jiǎn)介:崔海莉(1970-),女,安徽銅陵人,合肥學(xué)院講師.

      基金項(xiàng)目:安徽省2014年度省級(jí)質(zhì)量工程教學(xué)研究資助項(xiàng)目(2014jyxm319)

      收稿日期:2015-09-16;修回日期:2015-10-29

      Doi:10.3969/j.issn.1003-5060.2016.01.014

      中圖分類(lèi)號(hào):TP393

      文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號(hào):1003-5060(2016)01-0073-06

      猜你喜歡
      負(fù)載均衡集中式
      光伏:分布式新增裝機(jī)規(guī)模首次超越集中式
      能源(2018年8期)2018-09-21 07:57:16
      組串式、集中式逆變器的評(píng)估選定淺析
      Linux負(fù)載均衡集群技術(shù)在網(wǎng)絡(luò)服務(wù)器中的應(yīng)用
      Oracle MAA在汽車(chē)行業(yè)電子政務(wù)平臺(tái)中的應(yīng)用
      異構(gòu)環(huán)境下改進(jìn)的LATE調(diào)度算法
      基于負(fù)載均衡的云資源調(diào)度策略研究
      電力公司財(cái)務(wù)管理現(xiàn)狀與財(cái)務(wù)集中式管理模式的構(gòu)建
      接觸網(wǎng)隔離開(kāi)關(guān)集中式控制方案研究
      電氣化鐵道(2016年5期)2016-04-16 05:59:55
      光伏集中式逆變器與組串式逆變器
      多站點(diǎn)同步更新系統(tǒng)的設(shè)計(jì)
      科技視界(2016年3期)2016-02-26 20:16:57
      青海省| 五华县| 自治县| 平昌县| 凌海市| 长汀县| 长泰县| 高平市| 晋州市| 淳化县| 九龙县| 马山县| 乌拉特中旗| 平安县| 天津市| 达州市| 岫岩| 扎兰屯市| 南丰县| 金平| 宕昌县| 长海县| 兴文县| 冕宁县| 霞浦县| 桂东县| 建湖县| 司法| 南涧| 璧山县| 东至县| 金溪县| 田林县| 济源市| 客服| 凌云县| 墨玉县| 肃北| 驻马店市| 濮阳县| 鄂尔多斯市|