本發(fā)明涉及計(jì)算機(jī)硬件領(lǐng)域,特別是涉及一種基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化方法和系統(tǒng)。
背景技術(shù):
分布式文件系統(tǒng)(distributedfilesystem)是指文件系統(tǒng)管理的物理存儲(chǔ)資源不一定直接連接在本地節(jié)點(diǎn)上,而是通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)與節(jié)點(diǎn)相連。分布式文件系統(tǒng)的設(shè)計(jì)基于客戶機(jī)/服務(wù)器模式。一個(gè)典型的網(wǎng)絡(luò)可能包括多個(gè)供多用戶訪問(wèn)的服務(wù)器。另外,對(duì)等特性允許一些系統(tǒng)扮演客戶機(jī)和服務(wù)器的雙重角色。例如,用戶可以"發(fā)表"一個(gè)允許其他客戶機(jī)訪問(wèn)的目錄,一旦被訪問(wèn),這個(gè)目錄對(duì)客戶機(jī)來(lái)說(shuō)就像使用本地驅(qū)動(dòng)器一樣。因此,分布式文件系統(tǒng)可以滿足高性能計(jì)算、數(shù)據(jù)庫(kù)、網(wǎng)站、文件服務(wù)、流媒體、數(shù)字化視頻監(jiān)控、文件備份等領(lǐng)域的應(yīng)用的存儲(chǔ)平臺(tái)。
元數(shù)據(jù),又稱(chēng)中介數(shù)據(jù)、中繼數(shù)據(jù),為描述數(shù)據(jù)的數(shù)據(jù)(dataaboutdata),主要是描述數(shù)據(jù)屬性的信息,用來(lái)支持如指示存儲(chǔ)位置、歷史數(shù)據(jù)、資源查找、文件記錄等功能。
mds(metadataservice):元數(shù)據(jù)服務(wù),提供元數(shù)據(jù)的各種訪問(wèn)操作。元數(shù)據(jù)集群在規(guī)模較小情況下可以采用主備模式(1個(gè)active、1個(gè)standby),在規(guī)模較大或者性能要求較高時(shí)可采用集群模式。據(jù)統(tǒng)計(jì),在文件系統(tǒng)的訪問(wèn)中,元數(shù)據(jù)訪問(wèn)占全部數(shù)據(jù)訪問(wèn)的50%--80%。為應(yīng)對(duì)大量的元數(shù)據(jù)請(qǐng)求,保障系統(tǒng)的性能和穩(wěn)定性,元數(shù)據(jù)的管理方式和mds集群的負(fù)載均衡就極其至關(guān)重要。
元數(shù)據(jù)熱度:當(dāng)客戶端發(fā)出請(qǐng)求元數(shù)據(jù)時(shí),對(duì)應(yīng)的元數(shù)據(jù)熱度加一??紤]到不同時(shí)間元數(shù)據(jù)的熱度是不同的,因此元數(shù)據(jù)的熱度會(huì)隨著時(shí)間逐漸衰減。當(dāng)元數(shù)據(jù)熱度超過(guò)一定的閥值時(shí),將會(huì)觸發(fā)子樹(shù)復(fù)制流程,系統(tǒng)在其他mds上創(chuàng)建緩存副本。
在單臺(tái)mds節(jié)點(diǎn)持續(xù)高于負(fù)載閥值時(shí),將會(huì)進(jìn)行子樹(shù)遷移,流程如下:
根據(jù)mds集群的全局負(fù)載狀況,將高負(fù)載的節(jié)點(diǎn)遷移到低負(fù)載的節(jié)點(diǎn);
根據(jù)mds的整體熱度和負(fù)載關(guān)系,將熱度較高的數(shù)據(jù)進(jìn)行遷移從而達(dá)到元數(shù)據(jù)的負(fù)載均衡。
ceph的元數(shù)據(jù)管理策略可以很好的管理熱度數(shù)據(jù)和負(fù)載分布不均的問(wèn)題,但實(shí)現(xiàn)子樹(shù)遷移的過(guò)程卻有如下問(wèn)題:
遷移算法默認(rèn)了所有的mds的效率是相同的。但是,當(dāng)高配置、高負(fù)載的節(jié)點(diǎn)遷移到低配置、低負(fù)載的節(jié)點(diǎn)中時(shí),低配置的mds節(jié)點(diǎn)接受過(guò)多的負(fù)載時(shí),系統(tǒng)性能會(huì)成為瓶頸,雖然當(dāng)下一輪均衡會(huì)將低配置節(jié)點(diǎn)無(wú)法處理的請(qǐng)求重新遷移到高配置節(jié)點(diǎn)中,但這個(gè)過(guò)程浪費(fèi)了網(wǎng)絡(luò)流量和遷移時(shí)間;子樹(shù)遷移算法的目標(biāo)是全局負(fù)載均衡,在網(wǎng)絡(luò)延遲較大的情況下,這一目標(biāo)需要花費(fèi)較大的代價(jià)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供了一種基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化方法,減少了網(wǎng)絡(luò)流量的朗得,減少了遷移時(shí)間,提高了數(shù)據(jù)遷移效率。
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化方法,包括:
獲取mds節(jié)點(diǎn)的負(fù)載;
獲取mds集群的平均負(fù)載;
依據(jù)所述mds節(jié)點(diǎn)的內(nèi)存、cpu進(jìn)行處理能力計(jì)算,獲得對(duì)應(yīng)的加權(quán)系數(shù);
判斷所述mds節(jié)點(diǎn)的負(fù)載大于所述平均負(fù)載的時(shí)間是否超出閾值;
若是,將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)遷移到低于所述平均負(fù)載的所述mds節(jié)點(diǎn)。
其中,所述將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)遷移到低于所述平均負(fù)載的所述mds節(jié)點(diǎn),包括:
將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)對(duì)負(fù)載最小的所述mds節(jié)點(diǎn)進(jìn)行目錄子樹(shù)遷移。
其中,所述將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)遷移到低于所述平均負(fù)載的所述mds節(jié)點(diǎn),還包括:
將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)對(duì)多個(gè)低于所述平均負(fù)載的所述mds節(jié)點(diǎn)進(jìn)行目錄子樹(shù)遷移。
其中,所述將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)遷移到低于所述平均負(fù)載的所述mds節(jié)點(diǎn),還包括:
根據(jù)所述低于所述平均負(fù)載的所述mds節(jié)點(diǎn)的最大可接受負(fù)載確定,按照從低到高的順序依次進(jìn)行目錄子樹(shù)遷移。
除此之外,本發(fā)明實(shí)施例還提供了一種基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化系統(tǒng),包括:
mds節(jié)點(diǎn)處理能力評(píng)估模塊,用于根據(jù)mds節(jié)點(diǎn)的cpu、內(nèi)存配置進(jìn)行節(jié)點(diǎn)處理能力計(jì)算,獲取對(duì)應(yīng)的加權(quán)系數(shù);
mds節(jié)點(diǎn)負(fù)載計(jì)算模塊,與所述mds節(jié)點(diǎn)處理能力評(píng)估模塊連接,用于根據(jù)所述mds節(jié)點(diǎn)在預(yù)定時(shí)間內(nèi)的元數(shù)據(jù)熱度,計(jì)算所述mds節(jié)點(diǎn)的負(fù)載;
全局平均負(fù)載計(jì)算模塊,與所述mds節(jié)點(diǎn)處理能力評(píng)估模塊連接,根據(jù)所述mds節(jié)點(diǎn)負(fù)載計(jì)算模獲取所有節(jié)點(diǎn)的平均負(fù)載;
mds節(jié)點(diǎn)數(shù)據(jù)均衡模塊,與所述mds節(jié)點(diǎn)處理能力評(píng)估模塊連接,用于將所述mds節(jié)點(diǎn)的負(fù)載中超出從所述全局平均負(fù)載計(jì)算模塊獲得的平均負(fù)載的數(shù)據(jù)量作為需要均衡的數(shù)據(jù)量;
遷移模塊,與所述mds節(jié)點(diǎn)數(shù)據(jù)均衡模塊連接,根據(jù)所述需要均衡的數(shù)據(jù)量和對(duì)應(yīng)的熱度值,選擇負(fù)載較小的所述mds節(jié)點(diǎn)作為目標(biāo)遷移mds節(jié)點(diǎn),將所述需要均衡的數(shù)據(jù)量進(jìn)行目錄子樹(shù)遷移。
其中,還包括:
mds節(jié)點(diǎn)遷移選擇模塊,與所述mds節(jié)點(diǎn)數(shù)據(jù)均衡模塊、所述遷移模塊連接,用于根據(jù)所述mds節(jié)點(diǎn)負(fù)載計(jì)算模塊,獲取負(fù)載最低的所述mds節(jié)點(diǎn),作為所述遷移模塊進(jìn)行數(shù)據(jù)遷移的目標(biāo)mds節(jié)點(diǎn)。
其中,還包括:
mds可接受最大負(fù)載評(píng)估模塊,與所述mds節(jié)點(diǎn)遷移選擇模塊連接,用于根據(jù)所述mds節(jié)點(diǎn)的負(fù)載計(jì)算出所述mds節(jié)點(diǎn)的可接受最大負(fù)載,所述mds節(jié)點(diǎn)遷移選擇模塊根據(jù)所述可接受最大負(fù)載,選擇一個(gè)或多個(gè)所述mds節(jié)點(diǎn)進(jìn)行所述需要均衡的數(shù)據(jù)量的目錄子樹(shù)遷移。
本發(fā)明實(shí)施例所提供的基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化方法和系統(tǒng),與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
本發(fā)明實(shí)施例提供的基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化方法,包括:
獲取mds節(jié)點(diǎn)的負(fù)載;
獲取mds集群的平均負(fù)載;
依據(jù)所述mds節(jié)點(diǎn)的內(nèi)存、cpu進(jìn)行處理能力計(jì)算,獲得對(duì)應(yīng)的加權(quán)系數(shù);
判斷所述mds節(jié)點(diǎn)的負(fù)載大于所述平均負(fù)載的時(shí)間是否超出閾值;
若是,將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)遷移到低于所述平均負(fù)載的所述mds節(jié)點(diǎn)。
本發(fā)明實(shí)施例還提供的基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化系統(tǒng),包括:
mds節(jié)點(diǎn)處理能力評(píng)估模塊,用于根據(jù)mds節(jié)點(diǎn)的cpu、內(nèi)存配置進(jìn)行節(jié)點(diǎn)處理能力計(jì)算,獲取對(duì)應(yīng)的加權(quán)系數(shù);
mds節(jié)點(diǎn)負(fù)載計(jì)算模塊,與所述mds節(jié)點(diǎn)處理能力評(píng)估模塊連接,用于根據(jù)所述mds節(jié)點(diǎn)在預(yù)定時(shí)間內(nèi)的元數(shù)據(jù)熱度,計(jì)算所述mds節(jié)點(diǎn)的負(fù)載;
全局平均負(fù)載計(jì)算模塊,與所述mds節(jié)點(diǎn)處理能力評(píng)估模塊連接,根據(jù)所述mds節(jié)點(diǎn)負(fù)載計(jì)算模獲取所有節(jié)點(diǎn)的平均負(fù)載;
mds節(jié)點(diǎn)數(shù)據(jù)均衡模塊,與所述mds節(jié)點(diǎn)處理能力評(píng)估模塊連接,用于將所述mds節(jié)點(diǎn)的負(fù)載中超出從所述全局平均負(fù)載計(jì)算模塊獲得的平均負(fù)載的數(shù)據(jù)量作為需要均衡的數(shù)據(jù)量;
遷移模塊,與所述mds節(jié)點(diǎn)數(shù)據(jù)均衡模塊連接,根據(jù)所述需要均衡的數(shù)據(jù)量和對(duì)應(yīng)的熱度值,選擇負(fù)載較小的所述mds節(jié)點(diǎn)作為目標(biāo)遷移mds節(jié)點(diǎn),將所述需要均衡的數(shù)據(jù)量進(jìn)行目錄子樹(shù)遷移。
所述基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化方法和系統(tǒng),通過(guò)對(duì)mds節(jié)點(diǎn)的內(nèi)存、cpu進(jìn)行處理能力計(jì)算,獲得對(duì)應(yīng)的加權(quán)系數(shù),使得對(duì)于所有mds節(jié)點(diǎn)的數(shù)據(jù)處理能力得到更加精確的評(píng)估,對(duì)于元數(shù)據(jù)服務(wù)器進(jìn)行區(qū)域劃分,在進(jìn)行子樹(shù)遷移時(shí),綜合考慮負(fù)載和機(jī)器性能,依據(jù)各個(gè)mds節(jié)點(diǎn)的數(shù)據(jù)處理能力以及當(dāng)前的負(fù)載,優(yōu)化子樹(shù)遷移目標(biāo)的選擇策略,不會(huì)給目的mds節(jié)點(diǎn)遷移過(guò)多的數(shù)據(jù)量,減少了遷移次數(shù),減少了網(wǎng)絡(luò)流量和遷移時(shí)間,提高了遷移效率。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化方法的一種具體實(shí)施方式的步驟流程示意圖;
圖2為本發(fā)明實(shí)施例提供的基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化系統(tǒng)的一種具體實(shí)施方式的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例提供的基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化系統(tǒng)的另一種具體實(shí)施方式的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例提供的基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化系統(tǒng)的再一種具體實(shí)施方式的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參考圖1~4,圖1為本發(fā)明實(shí)施例提供的基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化方法的一種具體實(shí)施方式的步驟流程示意圖;圖2為本發(fā)明實(shí)施例提供的基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化系統(tǒng)的一種具體實(shí)施方式的結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例提供的基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化系統(tǒng)的另一種具體實(shí)施方式的結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例提供的基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化系統(tǒng)的再一種具體實(shí)施方式的結(jié)構(gòu)示意圖。
在一種具體實(shí)施方式中,所述基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化方法,包括:
步驟1,獲取mds節(jié)點(diǎn)的負(fù)載;通過(guò)獲取mds節(jié)點(diǎn)的負(fù)載,便于后序與平均負(fù)載之間進(jìn)行比較,判斷該mds節(jié)點(diǎn)是否過(guò)載,以及根據(jù)評(píng)估的處理計(jì)算能力,合理進(jìn)行負(fù)載分配,減少需要均衡的數(shù)據(jù)量的遷移次數(shù)。
步驟2,獲取mds集群的平均負(fù)載;由于子樹(shù)遷移的目標(biāo)是實(shí)現(xiàn)全局負(fù)載均衡,因此,通過(guò)獲取mds集群的平均負(fù)載,可以快速判斷各個(gè)mds節(jié)點(diǎn)是否過(guò)載以及可接受遷移的數(shù)據(jù)量,減少遷移時(shí)間。
步驟3,依據(jù)所述mds節(jié)點(diǎn)的內(nèi)存、cpu進(jìn)行處理能力計(jì)算,獲得對(duì)應(yīng)的加權(quán)系數(shù);通過(guò)以及內(nèi)存、cpu進(jìn)行處理能力計(jì)算,精確獲得mds節(jié)點(diǎn)的數(shù)據(jù)處理能力,不在將各個(gè)mds節(jié)點(diǎn)的效率默認(rèn)為相同,全力發(fā)揮每個(gè)mds節(jié)點(diǎn)的能力,提高硬件的利用效率。
步驟4,判斷所述mds節(jié)點(diǎn)的負(fù)載大于所述平均負(fù)載的時(shí)間是否超出閾值;通過(guò)判斷負(fù)載是否超出平均負(fù)載,判斷是否過(guò)載,是否需要數(shù)據(jù)遷移。
若是,步驟5,將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)遷移到低于所述平均負(fù)載的所述mds節(jié)點(diǎn),實(shí)現(xiàn)全局負(fù)載均衡。
其中,所述將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)遷移到低于所述平均負(fù)載的所述mds節(jié)點(diǎn),包括:
將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)對(duì)負(fù)載最小的所述mds節(jié)點(diǎn)進(jìn)行目錄子樹(shù)遷移。
通過(guò)對(duì)mds節(jié)點(diǎn)的內(nèi)存、cpu進(jìn)行處理能力計(jì)算,獲得對(duì)應(yīng)的加權(quán)系數(shù),使得對(duì)于所有mds節(jié)點(diǎn)的數(shù)據(jù)處理能力得到更加精確的評(píng)估,對(duì)于元數(shù)據(jù)服務(wù)器進(jìn)行區(qū)域劃分,在進(jìn)行子樹(shù)遷移時(shí),綜合考慮負(fù)載和機(jī)器性能,依據(jù)各個(gè)mds節(jié)點(diǎn)的數(shù)據(jù)處理能力以及當(dāng)前的負(fù)載,優(yōu)化子樹(shù)遷移目標(biāo)的選擇策略,不會(huì)給目的mds節(jié)點(diǎn)遷移過(guò)多的數(shù)據(jù)量,減少了遷移次數(shù),減少了網(wǎng)絡(luò)流量和遷移時(shí)間,提高了遷移效率。
在本發(fā)明中,從一個(gè)mds節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移時(shí),如果高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)的數(shù)據(jù)量很小,只要隨便給一個(gè)沒(méi)有超出平均負(fù)載的mds進(jìn)行遷移即可實(shí)現(xiàn),但是也可能過(guò)載的mds節(jié)點(diǎn)的數(shù)據(jù)量過(guò)大,一個(gè)目的mds不能滿足要求,如果只能是兩個(gè)mds節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)遷移,進(jìn)行一次數(shù)據(jù)遷移后,只是將第一個(gè)mds節(jié)點(diǎn)變?yōu)樨?fù)載均衡節(jié)點(diǎn),而另一個(gè)節(jié)點(diǎn)還是過(guò)載,這需要進(jìn)行重新分配,使得遷移次數(shù)增加,增加了遷移時(shí)間,尤其在網(wǎng)絡(luò)延遲較大的情況下,為了實(shí)現(xiàn)全局負(fù)載均衡的目標(biāo),需要花費(fèi)以很大的代價(jià),為解決這一問(wèn)題,所述將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)遷移到低于所述平均負(fù)載的所述mds節(jié)點(diǎn),還包括:
將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)對(duì)多個(gè)低于所述平均負(fù)載的所述mds節(jié)點(diǎn)進(jìn)行目錄子樹(shù)遷移。
通過(guò)將一個(gè)過(guò)載mds節(jié)點(diǎn)的數(shù)據(jù)對(duì)多個(gè)不過(guò)載的mds進(jìn)行目錄子樹(shù)遷移,可以減少了二次過(guò)載的可能性,減少了網(wǎng)絡(luò)流量和遷移時(shí)間的消耗,即使在網(wǎng)絡(luò)延遲較大的情況下,仍然能夠快速實(shí)現(xiàn)全局負(fù)載均衡,擴(kuò)大了ceph的適用范圍。
需要指出的是,本發(fā)明對(duì)于將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)對(duì)多個(gè)低于所述平均負(fù)載的所述mds節(jié)點(diǎn)進(jìn)行目錄子樹(shù)遷移中,低于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)量不作具體限定,對(duì)于具體的低于所述平均負(fù)載的所述mds節(jié)點(diǎn)不作具體限定。
對(duì)于低于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)量,可以指定是3個(gè)或5個(gè),也可以是根據(jù)過(guò)載的程度,如過(guò)載20%時(shí),是對(duì)兩個(gè)目標(biāo)mds節(jié)點(diǎn)進(jìn)行目錄子樹(shù)遷移,過(guò)載40%時(shí),是對(duì)3個(gè)目標(biāo)mds節(jié)點(diǎn)進(jìn)行目錄子樹(shù)遷移;過(guò)載60%時(shí),是對(duì)5個(gè)目標(biāo)mds節(jié)點(diǎn)進(jìn)行目錄子樹(shù)遷移。
同樣的,在本發(fā)明中,為了實(shí)現(xiàn)全局負(fù)載均衡,會(huì)有多個(gè)mds發(fā)生過(guò)載,這些過(guò)載節(jié)點(diǎn)的目錄子樹(shù)遷移,可以是相互獨(dú)立,也可以是具有優(yōu)先級(jí)的,即對(duì)過(guò)載最高的一個(gè)或多個(gè)mds節(jié)點(diǎn)進(jìn)行目錄子樹(shù)遷移,優(yōu)先將過(guò)載過(guò)多的mds節(jié)點(diǎn)均衡掉,能夠更加快速的實(shí)現(xiàn)全局均衡,本發(fā)明對(duì)于多個(gè)過(guò)載mds節(jié)點(diǎn)的負(fù)載均衡過(guò)程不作具體限定。
每個(gè)過(guò)載的mds節(jié)點(diǎn)的過(guò)載情況不同,同樣每個(gè)目標(biāo)mds節(jié)點(diǎn)的可接受數(shù)據(jù)能力也各不相同,為了更加快速地實(shí)現(xiàn)全局負(fù)載均衡,減少目的mds節(jié)點(diǎn)的數(shù)量,減少遷移的復(fù)雜程度,在一個(gè)實(shí)施例中,所述將高于所述平均負(fù)載的所述mds節(jié)點(diǎn)的數(shù)據(jù)遷移到低于所述平均負(fù)載的所述mds節(jié)點(diǎn),還包括:
根據(jù)所述低于所述平均負(fù)載的所述mds節(jié)點(diǎn)的最大可接受負(fù)載確定,按照從低到高的順序依次進(jìn)行目錄子樹(shù)遷移。
即通過(guò)在目的mds節(jié)點(diǎn)的最大可接受負(fù)載進(jìn)行確定和評(píng)估,使其盡量在一次遷移中達(dá)到平均負(fù)載,減少了非平均負(fù)載的數(shù)量,快速降低非平均負(fù)載的數(shù)量和數(shù)據(jù)遷移復(fù)雜程度,使得實(shí)現(xiàn)全局負(fù)載均衡的時(shí)間更短,負(fù)載均衡的效率更快,即使在異構(gòu)數(shù)據(jù)服務(wù)器和網(wǎng)絡(luò)延遲較大的情況下,仍然能夠快速實(shí)現(xiàn)負(fù)載均衡。
除此之外,本發(fā)明實(shí)施例還提供了一種基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化系統(tǒng),包括:
mds節(jié)點(diǎn)處理能力評(píng)估模塊10,用于根據(jù)mds節(jié)點(diǎn)的cpu、內(nèi)存配置進(jìn)行節(jié)點(diǎn)處理能力計(jì)算,獲取對(duì)應(yīng)的加權(quán)系數(shù);
mds節(jié)點(diǎn)負(fù)載計(jì)算模塊20,與所述mds節(jié)點(diǎn)處理能力評(píng)估模塊10連接,用于根據(jù)所述mds節(jié)點(diǎn)在預(yù)定時(shí)間內(nèi)的元數(shù)據(jù)熱度,計(jì)算所述mds節(jié)點(diǎn)的負(fù)載;
全局平均負(fù)載計(jì)算模塊30,與所述mds節(jié)點(diǎn)處理能力評(píng)估模塊10連接,根據(jù)所述mds節(jié)點(diǎn)負(fù)載計(jì)算模獲取所有節(jié)點(diǎn)的平均負(fù)載;
mds節(jié)點(diǎn)數(shù)據(jù)均衡模塊40,與所述mds節(jié)點(diǎn)處理能力評(píng)估模塊10連接,用于將所述mds節(jié)點(diǎn)的負(fù)載中超出從所述全局平均負(fù)載計(jì)算模塊30獲得的平均負(fù)載的數(shù)據(jù)量作為需要均衡的數(shù)據(jù)量;
遷移模塊50,與所述mds節(jié)點(diǎn)數(shù)據(jù)均衡模塊40連接,根據(jù)所述需要均衡的數(shù)據(jù)量和對(duì)應(yīng)的熱度值,選擇負(fù)載較小的所述mds節(jié)點(diǎn)作為目標(biāo)遷移mds節(jié)點(diǎn),將所述需要均衡的數(shù)據(jù)量進(jìn)行目錄子樹(shù)遷移。
在本發(fā)明中,遷移模塊50的作用的是將所述需要均衡的數(shù)據(jù)量進(jìn)行目錄子樹(shù)遷移,但是沒(méi)有確定的遷移目標(biāo),為了使得全局負(fù)載均衡速度更快,遷移效率更高,減少遷移次數(shù),在本發(fā)明的一個(gè)實(shí)施例中,所述基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化系統(tǒng)還包括:
mds節(jié)點(diǎn)遷移選擇模塊60,與所述mds節(jié)點(diǎn)數(shù)據(jù)均衡模塊40、所述遷移模塊50連接,用于根據(jù)所述mds節(jié)點(diǎn)負(fù)載計(jì)算模塊20,獲取負(fù)載最低的所述mds節(jié)點(diǎn),作為所述遷移模塊50進(jìn)行數(shù)據(jù)遷移的目標(biāo)mds節(jié)點(diǎn)。
通過(guò)mds節(jié)點(diǎn)遷移選擇模塊60,獲取負(fù)載最低的所述mds節(jié)點(diǎn),作為所述遷移模塊50進(jìn)行數(shù)據(jù)遷移的目標(biāo)mds節(jié)點(diǎn),盡量減少遷移次數(shù),使得盡快達(dá)到全局負(fù)載均衡,快速減少最大過(guò)載與最低負(fù)載之間的差距,減少網(wǎng)絡(luò)流量。
由于在數(shù)據(jù)遷移的過(guò)程中,為了盡快達(dá)到全局負(fù)載均衡,一般會(huì)同時(shí)將多個(gè)的過(guò)載mds節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移,可以是多個(gè)向一個(gè)遷移,也可以是一個(gè)向多個(gè)遷移,還可以是多個(gè)向多個(gè)遷移,在本發(fā)明一個(gè)實(shí)施例中,為了規(guī)范遷移過(guò)程,所述基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化系統(tǒng)還包括:
mds可接受最大負(fù)載評(píng)估模塊70,與所述mds節(jié)點(diǎn)遷移選擇模塊60連接,用于根據(jù)所述mds節(jié)點(diǎn)的負(fù)載計(jì)算出所述mds節(jié)點(diǎn)的可接受最大負(fù)載,所述mds節(jié)點(diǎn)遷移選擇模塊60根據(jù)所述可接受最大負(fù)載,選擇一個(gè)或多個(gè)所述mds節(jié)點(diǎn)進(jìn)行所述需要均衡的數(shù)據(jù)量的目錄子樹(shù)遷移。
通過(guò)確定能夠每個(gè)mds節(jié)點(diǎn)的可接受最大負(fù)載,在遷移過(guò)程中,不會(huì)個(gè)一個(gè)mds節(jié)點(diǎn)過(guò)多或者過(guò)少的數(shù)據(jù)遷移量,使其能夠更加快速的實(shí)現(xiàn)達(dá)到平均負(fù)載的程度。
如a、b節(jié)點(diǎn)過(guò)載,c、d、e不過(guò)載,c節(jié)點(diǎn)距離全局平衡還需要5個(gè)數(shù)據(jù)量,那么a、b在遷移過(guò)程中會(huì)單個(gè)或總共為c節(jié)點(diǎn)一次性分配5個(gè)單位的數(shù)據(jù)遷移量,使其在一次遷移中實(shí)現(xiàn)達(dá)到平均負(fù)載的目的,甚至通過(guò)極端在同一次遷移中,對(duì)剩余的c、d節(jié)點(diǎn)計(jì)算合適的數(shù)據(jù)遷移量,使其一次性實(shí)現(xiàn)均衡,即使得整體實(shí)現(xiàn)一次遷移負(fù)載達(dá)到均衡的目的。
需要指出的是,在本發(fā)明中,由于各個(gè)節(jié)點(diǎn)的數(shù)據(jù)處理能力不同,平均負(fù)載與現(xiàn)有技術(shù)中的平均負(fù)載有所區(qū)別,不能是如20或50單位的負(fù)載量,而是20%或50%的負(fù)載百分比,即通過(guò)處理能力計(jì)算評(píng)估之后對(duì)應(yīng)的平均負(fù)載。
綜上所述,本發(fā)明實(shí)施例提供的基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化方法和系統(tǒng),通過(guò)對(duì)mds節(jié)點(diǎn)的內(nèi)存、cpu進(jìn)行處理能力計(jì)算,獲得對(duì)應(yīng)的加權(quán)系數(shù),使得對(duì)于所有mds節(jié)點(diǎn)的數(shù)據(jù)處理能力得到更加精確的評(píng)估,對(duì)于元數(shù)據(jù)服務(wù)器進(jìn)行區(qū)域劃分,在進(jìn)行子樹(shù)遷移時(shí),綜合考慮負(fù)載和機(jī)器性能,依據(jù)各個(gè)mds節(jié)點(diǎn)的數(shù)據(jù)處理能力以及當(dāng)前的負(fù)載,優(yōu)化子樹(shù)遷移目標(biāo)的選擇策略,不會(huì)給目的mds節(jié)點(diǎn)遷移過(guò)多的數(shù)據(jù)量,減少了遷移次數(shù),減少了網(wǎng)絡(luò)流量和遷移時(shí)間,提高了遷移效率。
以上對(duì)本發(fā)明所提供的基于分布式存儲(chǔ)的動(dòng)態(tài)元數(shù)據(jù)優(yōu)化方法和系統(tǒng)進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。