一種基于多衡量指標(biāo)的hdfs負(fù)載源宿節(jié)點(diǎn)選取方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于互聯(lián)網(wǎng)數(shù)據(jù)存儲(chǔ)領(lǐng)域,具體設(shè)及一種基于多衡量指標(biāo)的皿FS負(fù)載源 宿節(jié)點(diǎn)選取方法。
【背景技術(shù)】
[0002] 近年來,隨著社會(huì)信息化程度的提高和互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,越來越多的人使 用互聯(lián)網(wǎng)絡(luò)來獲取所需的信息、購物W及娛樂。隨之產(chǎn)生的海量數(shù)據(jù)對(duì)各類數(shù)據(jù)存儲(chǔ)和處 理中屯、的服務(wù)器提出了更高的要求,尤其是如何存儲(chǔ)該些海量信息和對(duì)海量數(shù)據(jù)的處理。 云計(jì)算和云存儲(chǔ)亦是在此背景下應(yīng)用而生,而化doop是發(fā)展勢(shì)頭較好且比較成熟的云計(jì) 算平臺(tái)之一,國內(nèi)外一些大型企業(yè)和研究機(jī)構(gòu)都在利用化doop的工作機(jī)制,開發(fā)和構(gòu)建各 自的云計(jì)算平臺(tái)。皿FS化adoop Distribute File Syste化化doop分布式文件系統(tǒng))作為 化doop中負(fù)責(zé)海量數(shù)據(jù)存儲(chǔ)的云存儲(chǔ)系統(tǒng),它不僅在應(yīng)用領(lǐng)域得到廣泛使用,而且也得到 了學(xué)術(shù)界的極大關(guān)注。
[0003] 由于在皿FS中節(jié)點(diǎn)數(shù)量多,組成復(fù)雜,個(gè)體資源配置差異大,隨著用戶數(shù)據(jù)的增 速加劇,用戶數(shù)據(jù)也許并不是非常均勻的分布在各個(gè)數(shù)據(jù)節(jié)點(diǎn)中的,常見的原因是往皿FS 增添新的數(shù)據(jù)節(jié)點(diǎn),從而造成數(shù)據(jù)節(jié)點(diǎn)間數(shù)據(jù)負(fù)載不均衡,使皿FS的效率和吞吐率降低, 甚至可能會(huì)導(dǎo)致皿FS日常運(yùn)行的不穩(wěn)定,嚴(yán)重影響服務(wù)的質(zhì)量。而負(fù)載均衡技術(shù)是保證云 存儲(chǔ)系統(tǒng)穩(wěn)健運(yùn)行的重要方法。一種好的負(fù)載均衡算法則能有效的解決W上該些問題,能 夠保障集群穩(wěn)定的運(yùn)行。
[0004] 如果皿FS的負(fù)載均衡策略不能具有良好的適應(yīng)性,則很有可能會(huì)造成皿FS中一 些數(shù)據(jù)節(jié)點(diǎn)過于忙碌而成為訪問"熱點(diǎn)",而有些數(shù)據(jù)節(jié)點(diǎn)則未充分發(fā)揮各自的處理計(jì)算 能力的情況處于空閑狀態(tài),從而會(huì)造成集群系統(tǒng)各數(shù)據(jù)節(jié)點(diǎn)負(fù)載不均衡,繼而影響集群的 整體性能,嚴(yán)重的情況下會(huì)導(dǎo)致數(shù)據(jù)節(jié)點(diǎn)擁痕而造成網(wǎng)絡(luò)服務(wù)的中斷,甚至可能會(huì)引發(fā)集 群中的連鎖反應(yīng),進(jìn)而可能會(huì)演化成集群系統(tǒng)的災(zāi)難。
[0005] 皿FS默認(rèn)負(fù)載均衡算法根據(jù)磁盤空間使用率的一個(gè)負(fù)載指標(biāo)來反映各數(shù)據(jù)節(jié)點(diǎn) 的工作負(fù)載,并由主節(jié)點(diǎn)負(fù)責(zé)所有節(jié)點(diǎn)的負(fù)載計(jì)算,最后在選取負(fù)載遷移源宿節(jié)點(diǎn)時(shí)根據(jù) 預(yù)先定義好的策略隨機(jī)選取。默認(rèn)算法在均衡過程中,單一指標(biāo)無法真實(shí)反映個(gè)節(jié)點(diǎn)的實(shí) 際工作負(fù)載狀況,主節(jié)點(diǎn)負(fù)責(zé)計(jì)算負(fù)載會(huì)導(dǎo)致主節(jié)點(diǎn)的負(fù)載加重,而源宿節(jié)點(diǎn)選取的隨機(jī) 性可能會(huì)導(dǎo)致部分負(fù)載遷移不準(zhǔn)確,從而使得部分節(jié)點(diǎn)工作負(fù)載過重而使其性能下降,甚 至可能會(huì)出現(xiàn)數(shù)據(jù)節(jié)點(diǎn)擁痕的狀況,進(jìn)而影響皿FS整體的性能。因此,研究皿FS負(fù)載均衡 算法具有很重要的意義。
[0006] 1.與本發(fā)明相關(guān)的現(xiàn)有技術(shù)一
[0007] 1. 1.現(xiàn)有技術(shù)一的技術(shù)方案
[0008] 目前,國內(nèi)外針對(duì)皿FS數(shù)據(jù)負(fù)載均衡算法的改進(jìn)主要有兩個(gè)方面:
[0009] 1)根據(jù)集群狀況動(dòng)態(tài)改變闊值,而無需管理員手動(dòng)輸入闊值;
[0010] 2)根據(jù)各個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)狀況,動(dòng)態(tài)改變用于均衡的網(wǎng)絡(luò)帶寬,W減少集群用于負(fù) 載均衡的時(shí)間。
[0011] 該兩方面的改進(jìn)雖然對(duì)單一指標(biāo)問題和主節(jié)點(diǎn)負(fù)載加重問題都提出了解決方案, 但是并未針對(duì)皿FS默認(rèn)負(fù)載均衡算法中源宿節(jié)點(diǎn)選取策略進(jìn)行改進(jìn),即沿用了皿FS默認(rèn) 算法源宿節(jié)點(diǎn)選取策略。
[0012] 在皿FS負(fù)載均衡過程中,負(fù)載均衡器會(huì)向主節(jié)點(diǎn)請(qǐng)求一份數(shù)據(jù)節(jié)點(diǎn)報(bào)告,在收到 報(bào)告之后,使用獲得的信息,計(jì)算出網(wǎng)絡(luò)拓?fù)?、集群平均存?chǔ)使用率,然后把各個(gè)數(shù)據(jù)節(jié)點(diǎn) 分成過載節(jié)點(diǎn)、負(fù)載節(jié)點(diǎn)、存儲(chǔ)使用率高于平均水平的節(jié)點(diǎn)和低于平均水平的節(jié)點(diǎn)四類, 再判斷是否有節(jié)點(diǎn)處于過載和負(fù)載狀態(tài)(也即過載節(jié)點(diǎn)列表和負(fù)載節(jié)點(diǎn)列表中是否有機(jī) 器),如果是則繼續(xù),否則退出。如果判斷可繼續(xù),則遍歷過載節(jié)點(diǎn)列表和負(fù)載節(jié)點(diǎn)列表W生 成負(fù)載重新分配策略。
[0013] 皿FS生成負(fù)載重新分配策略的過程包括W下步驟:
[0014] a、選擇數(shù)據(jù)移動(dòng)的源節(jié)點(diǎn)和目的節(jié)點(diǎn),選擇依據(jù)如下:
[0015] 1)對(duì)于負(fù)載節(jié)點(diǎn),依據(jù)W下條件隨機(jī)選取作為其源節(jié)點(diǎn),條件優(yōu)先級(jí)自上而下遞 減:
[0016] ①同一機(jī)架上的過載節(jié)點(diǎn);
[0017] ②同一機(jī)架上的高于平均使用率的節(jié)點(diǎn);
[0018] ⑨其他機(jī)架上的過載節(jié)點(diǎn);
[0019] ④其他機(jī)架上的高于平均使用率的節(jié)點(diǎn)。
[0020] 。對(duì)于過載節(jié)點(diǎn),依據(jù)W下條件隨機(jī)選取作為其目標(biāo)節(jié)點(diǎn),條件優(yōu)先級(jí)自上而下 遞減:
[0021] ①同一機(jī)架上的負(fù)載節(jié)點(diǎn);
[0022] ②同一機(jī)架上的低于平均使用率的節(jié)點(diǎn);
[0023] ⑨其他機(jī)架上的負(fù)載節(jié)點(diǎn);
[0024] ④其他機(jī)架上的低于平均使用率的節(jié)點(diǎn)。
[00巧]b、計(jì)算每個(gè)源節(jié)點(diǎn)到每個(gè)目標(biāo)節(jié)點(diǎn)要移動(dòng)的數(shù)據(jù)量。如果源節(jié)點(diǎn)是過載節(jié)點(diǎn),貝U看容積允許偏差值是否大于1GB,大于則取1GB,否則取允許偏差值。如果源節(jié)點(diǎn)只是高于 平均使用率而沒有達(dá)到過載的條件,則看該節(jié)點(diǎn)實(shí)際容積率與集群平均容積率之差是否大 于2GB,大于取2GB,否則取前者。目標(biāo)節(jié)點(diǎn)也同理計(jì)算。
[0026] 1. 2現(xiàn)有技術(shù)一的技術(shù)缺陷:
[0027] 可W看到皿FS默認(rèn)源宿節(jié)點(diǎn)選取方案沒有根據(jù)實(shí)際的節(jié)點(diǎn)工作負(fù)載來選取,而 是隨機(jī)的從隊(duì)列中進(jìn)行選取,存在一定的缺陷。
[002引 2與本發(fā)明相關(guān)的現(xiàn)有技術(shù)二
[0029] 2. 1現(xiàn)有技術(shù)二的技術(shù)方案
[0030]中國專利公開號(hào)為104063501A的專利,該發(fā)明公開了一種基于皿FS的副本平衡 方法,其在集群配置項(xiàng)中設(shè)計(jì)抽象化計(jì)ormance類,并通過屯、跳信息收集各化taNode的性 能數(shù)據(jù),在數(shù)據(jù)遷移時(shí),DataNode的匹配除了需要符合現(xiàn)有Balancer程序的節(jié)點(diǎn)匹配規(guī)則 夕F,還需要參考化taNode的性能指標(biāo)數(shù)據(jù),按照化taNode的性能評(píng)分和存儲(chǔ)量的比值進(jìn)行 評(píng)價(jià),并在評(píng)價(jià)最優(yōu)和評(píng)價(jià)最差的化taNode之間進(jìn)行匹配,使化taNode存放的數(shù)據(jù)量正比 于化taNode的性能,提高皿FS分布式文件系統(tǒng)負(fù)載均衡能力,提升集群性能。在組建集群 時(shí),無需考慮集群中各節(jié)點(diǎn)配置的性能差異。
[0031] 該發(fā)明中針對(duì)皿FS默認(rèn)的源宿節(jié)點(diǎn)選取策略進(jìn)行了改進(jìn)。該發(fā)明的主要步驟如 下:
[0032] 1)、集群配置:
[0033] 設(shè)計(jì)用于代表化taNode性能評(píng)價(jià)指標(biāo)的化計(jì)ormance類,Performance類提供一 個(gè)用于獲得對(duì)應(yīng)的性能數(shù)據(jù)的ge巧erformance方法;定義對(duì)應(yīng)化taNode各性能指標(biāo)的性 能類,性能類是繼承化計(jì)ormance類的子類;在皿FS通訊協(xié)議的屯、跳信息中增加對(duì)應(yīng)性能 類的性能指標(biāo)數(shù)據(jù);
[0034] 2)、數(shù)據(jù)收集:
[0035]DataNode通過ge巧erformance方法收集與各性能類對(duì)應(yīng)的性能指標(biāo)數(shù)據(jù);然后 由化taNode定時(shí)發(fā)送屯、跳信息,將上述與各性能類對(duì)應(yīng)的性能指標(biāo)數(shù)據(jù)發(fā)送給NameNode, 并由NameNode保存上述與各性能類對(duì)應(yīng)的性能指標(biāo)數(shù)據(jù);
[0036]3)、執(zhí)行Balancer程序:
[0037] 由RebalanceServer從NameNode中獲取各DataNode的性能指標(biāo)數(shù)據(jù);
[0038] ①根據(jù)獲取的性能指標(biāo)數(shù)據(jù),計(jì)算各DataNode性能評(píng)分;
[0039]②計(jì)算各化taNode性能評(píng)分與其存儲(chǔ)量的比值a,W及各化taNode的a值的平 均值awg;
[0040] ⑨通過Balancer命令的threshold參數(shù)獲取允許的性能誤差范圍,根據(jù)awg結(jié) 合t虹esho