專(zhuān)利名稱(chēng):一種基于權(quán)重的元數(shù)據(jù)服務(wù)器集群負(fù)載均衡方法
一種基于權(quán)重的元數(shù)據(jù)服務(wù)器集群負(fù)載均衡方法技術(shù)領(lǐng)域
本發(fā)明屬于網(wǎng)絡(luò)存儲(chǔ)中元數(shù)據(jù)服務(wù)器(MDS,MetaData Server)技術(shù)領(lǐng)域,特別是涉及一種基于權(quán)重的MDS集群動(dòng)態(tài)負(fù)載均衡方法。
背景技術(shù):
對(duì)象存儲(chǔ)(OBS,Object-based Morage)技術(shù)將文件數(shù)據(jù)和元數(shù)據(jù)分開(kāi)存儲(chǔ),綜合傳統(tǒng)NAS和SAN的優(yōu)點(diǎn),同時(shí)具備SAN的快速訪問(wèn)和NAS的跨平臺(tái)數(shù)據(jù)共享等優(yōu)勢(shì)。同時(shí)對(duì)象存儲(chǔ)設(shè)備(OSD,Object-based Device)本身具備智能管理功能。因此OBS系統(tǒng)具有高性能、可擴(kuò)展、高可用性和強(qiáng)安全性等特點(diǎn)。OBS系統(tǒng)主要由三部分組成,分別為客戶端、MDS集群和OSD集群。其中MDS在對(duì)象存儲(chǔ)系統(tǒng)中名字空間、控制用戶訪問(wèn)和映射文件物理存儲(chǔ)位置的角色。雖然單個(gè)元數(shù)據(jù)數(shù)據(jù)量很小,但涉及文件元數(shù)據(jù)的操作卻非常頻繁。 元數(shù)據(jù)處理能力是整個(gè)對(duì)象存儲(chǔ)系統(tǒng)高效運(yùn)作的重要一環(huán)。以Hadoop和Lustre為代表的集中式元數(shù)據(jù)處理方案存在單點(diǎn)故障和性能瓶頸的問(wèn)題。為了保證OBS系統(tǒng)元數(shù)據(jù)的處理能力,由多臺(tái)MDS服務(wù)器協(xié)同合作構(gòu)成MDS集群的分布式處理方案是發(fā)展方向。
為了在有限資源下最大化MDS集群元數(shù)據(jù)處理能力,防止任意MDS成為系統(tǒng)瓶頸, MDS之間的負(fù)載均衡就顯得非常重要。MDS集群負(fù)載均衡方面的研究主要集中在數(shù)據(jù)分區(qū)和服務(wù)器性能評(píng)估兩個(gè)方面。
數(shù)據(jù)分區(qū)主要研究文件系統(tǒng)元數(shù)據(jù)在MDS中的分布問(wèn)題,主要有以NFS和Gph為代表的目錄子樹(shù)分區(qū)和zFS和Lazy Hybrid為代表的Hash分布。
1.目錄子樹(shù)分區(qū)的優(yōu)點(diǎn)是利用了文件訪問(wèn)的局部性原理,能夠快速遍歷文件系統(tǒng)。它主要可分為靜態(tài)子樹(shù)分區(qū)和動(dòng)態(tài)子樹(shù)分區(qū)。前者的設(shè)計(jì)簡(jiǎn)單,數(shù)據(jù)存儲(chǔ)負(fù)載分布需要管理員手動(dòng)指定,在負(fù)載出現(xiàn)變化時(shí)不能及時(shí)調(diào)整,主要適用于TB級(jí)存儲(chǔ)規(guī)模;后者設(shè)計(jì)較為復(fù)雜,適用于PB級(jí)海量數(shù)據(jù)數(shù)據(jù)應(yīng)用場(chǎng)景,是當(dāng)前的研究熱點(diǎn)。
2. Hash分布利用文件絕對(duì)路徑或其它唯一標(biāo)識(shí)來(lái)決定元數(shù)據(jù)的存放位置,該策略的優(yōu)點(diǎn)是簡(jiǎn)單高效,客戶端能夠直接定位文件。而且由于它徹底散列化了文件分布,有效的避免了由于局部性訪問(wèn)引起單個(gè)目錄集中訪問(wèn)。但是Hash分布在MDS數(shù)量發(fā)生改變時(shí)通常導(dǎo)致大量數(shù)據(jù)遷移。
服務(wù)器性能評(píng)估主要研究準(zhǔn)確評(píng)價(jià)服務(wù)器固有性能的問(wèn)題。一般而言,服務(wù)器的處理能力主要與CPU、內(nèi)存、網(wǎng)絡(luò)帶寬、磁盤(pán)性能等相關(guān)。有研究者對(duì)上述影響參數(shù)進(jìn)行排序,根據(jù)影響力的大小確定權(quán)重,并以一定的系數(shù)計(jì)算加權(quán)值來(lái)綜合考慮設(shè)備的處理能力。 但是上述“白盒”性能模型面臨兩個(gè)問(wèn)題一方面,不同負(fù)載類(lèi)型通常會(huì)有不同負(fù)載特征, 對(duì)服務(wù)器要求的側(cè)重點(diǎn)也不一樣;另一方面,影響因子之間存在互相制約關(guān)系,例如某個(gè)影響因子配置過(guò)低,成為性能瓶頸后,再增加其它影響因子的配置對(duì)MDS元數(shù)據(jù)處理性能提升并不明顯。因此,上述方案很難準(zhǔn)確地量化每個(gè)因子的影響力。如果權(quán)重系數(shù)選擇不當(dāng), 反而會(huì)影響系統(tǒng)性能。發(fā)明內(nèi)容
本發(fā)明的目的在于針對(duì)已有技術(shù)沒(méi)有考慮MDS集群中設(shè)備異構(gòu)情況和服務(wù)器固有性能難以量化的問(wèn)題,本發(fā)明提出了一種基于權(quán)重的元數(shù)據(jù)服務(wù)器集群負(fù)載均衡方法。
本發(fā)明方法利用最小二乘法并行請(qǐng)求數(shù)和平均操作延時(shí)的映射關(guān)系曲線進(jìn)行線性擬合,并得出擬合曲線斜率用于反應(yīng)MDS的固有性能,為均衡負(fù)載提供了依據(jù);根據(jù)集群中MDS的處理能力分配對(duì)應(yīng)比例的工作負(fù)載,從而使得MDS集群在設(shè)備異構(gòu)情況下保持負(fù)載均衡以達(dá)到較高的整體吞吐量。實(shí)驗(yàn)證明本發(fā)明方法開(kāi)銷(xiāo)小、動(dòng)態(tài)調(diào)整工作負(fù)載、元數(shù)據(jù)服務(wù)器集群在設(shè)備異構(gòu)情況下保持負(fù)載均衡。
本發(fā)明具體步驟為1在元數(shù)據(jù)服務(wù)器空載狀態(tài)下,通過(guò)基準(zhǔn)測(cè)試工具mdtest測(cè)得每臺(tái)元數(shù)據(jù)服務(wù)器在不同并行服務(wù)請(qǐng)求數(shù)下的平均操作延時(shí)。
2利用最小二乘法對(duì)步驟1中測(cè)得并行請(qǐng)求數(shù)和平均操作延時(shí)的映射關(guān)系曲線進(jìn)行線性擬合,并得出擬合曲線斜率,然后將斜率值的倒數(shù)作為權(quán)重輸入元數(shù)據(jù)服務(wù)器配置參數(shù)表。
3每臺(tái)元數(shù)據(jù)服務(wù)器開(kāi)啟一個(gè)守護(hù)進(jìn)程,對(duì)服務(wù)器處理的訪問(wèn)請(qǐng)求數(shù)計(jì)數(shù)作為參數(shù)得出服務(wù)器的當(dāng)前負(fù)載,記錄請(qǐng)求時(shí)間。
4每個(gè)心跳周期時(shí)間到時(shí),元數(shù)據(jù)服務(wù)器通過(guò)UDP協(xié)議向集群中其它所有元數(shù)據(jù)服務(wù)器廣播自己的當(dāng)前負(fù)載水平和權(quán)重,并記錄發(fā)送時(shí)間。
5元數(shù)據(jù)服務(wù)器接收完畢集群中其它服務(wù)器廣播信息后,計(jì)算出目標(biāo)負(fù)載。
6將服務(wù)器的當(dāng)前其當(dāng)前負(fù)載與步驟5中目標(biāo)負(fù)載相減,如果差值為正并且大于閾值,則執(zhí)行步驟7 ;如果差值為不為正并且大于閾值則轉(zhuǎn)至步驟8。
7啟動(dòng)目錄子樹(shù)遷移過(guò)程,根據(jù)當(dāng)前負(fù)載和目標(biāo)負(fù)載的差值,選擇負(fù)載和為差值的目錄子樹(shù)遷移到當(dāng)前負(fù)載低于目標(biāo)負(fù)載的元數(shù)據(jù)服務(wù)器。
8判斷負(fù)載均衡任務(wù)是否結(jié)束,如果負(fù)載均衡任務(wù)結(jié)束,則任務(wù)結(jié)束;如果負(fù)載均衡任務(wù)沒(méi)有結(jié)束,則返回至步驟3。
步驟3中所述服務(wù)器的當(dāng)前負(fù)載由以下方法得出1)對(duì)元數(shù)據(jù)服務(wù)器中每個(gè)目錄和文件設(shè)置對(duì)應(yīng)的負(fù)載計(jì)數(shù)器,并以此衡量該文件和目錄的負(fù)載。
2)當(dāng)服務(wù)器處理服務(wù)請(qǐng)求時(shí),與之對(duì)應(yīng)的負(fù)載計(jì)數(shù)器就會(huì)增加1。
3)元數(shù)據(jù)服務(wù)器的當(dāng)前負(fù)載為其所包含的所有目錄和文件的負(fù)載計(jì)數(shù)器值之和。
所述計(jì)數(shù)器值會(huì)隨時(shí)間呈指數(shù)型衰減。
步驟4中所述心跳周期通過(guò)元數(shù)據(jù)服務(wù)器配置參數(shù)設(shè)置。
所述目標(biāo)負(fù)載的 計(jì)算公式為 Iarg ei. Joadi =蚵/ WmsiHotalJoad ;其中IargetJoadi編號(hào)為i的服務(wù)器的目標(biāo)負(fù)載,Wi編號(hào)為i的服務(wù)器的權(quán)重,Wtotal為集群中所有元數(shù)據(jù)服務(wù)器權(quán)重之和,total_load為集群中所有元數(shù)據(jù)服務(wù)器當(dāng)前負(fù)載之和。
所述目錄子樹(shù)遷移過(guò)程,包括以下步驟A初始化Importer_set禾口 Exporter_set為空,Importer_set表示當(dāng)前負(fù)載低于目標(biāo)負(fù)載的元數(shù)據(jù)服務(wù)器集合,Exporter_set表示當(dāng)前負(fù)載大于目標(biāo)負(fù)載的元數(shù)據(jù)服務(wù)器集
B遍歷集群中所有元數(shù)據(jù)服務(wù)器節(jié)點(diǎn),將每個(gè)節(jié)點(diǎn)的當(dāng)前其當(dāng)前負(fù)載與目標(biāo)負(fù)載相減,如果差值為正并且大于閾值,則將該將節(jié)點(diǎn)歸入EXp0rter_set ;如果差值為負(fù)并且絕對(duì)值大于閾值,則將該將節(jié)點(diǎn)歸入Imp0rter_set。
C從步驟A所述Exp0rter_Set中選取元數(shù)據(jù)服務(wù)器,記作MDSi,并將步驟B所述差值記為IMi。
D從Imp0rter_Set選取元數(shù)據(jù)服務(wù)器,記作MDSp并將所述步驟B所述差值的絕對(duì)值記作IMj。
E比較步驟C所述IMi和D所述IMj,并將兩者的較小值記作Riiig,在步驟C所述 MDSi中選取負(fù)載值為Riiig的目錄子樹(shù)遷移到步驟D所述MD。。
F更新步驟C所述IMi為IMi和步驟E所述Riiig相減的差值,更新步驟D所述IMj 為IMj和步驟E所述Riiig相減的差值。
G判斷是否步驟F中所述更新后的IMi小于或等于閾值,如果步驟F中所述更新后的IMi小于或等于閾值則執(zhí)行H ;如果步驟F中所述更新后的IMi大于閾值,則返回至步驟 D0
H判斷是否已經(jīng)遍歷完Exporter_set中所有節(jié)點(diǎn),如果已經(jīng)遍歷完Exporter_set 中所有節(jié)點(diǎn),則遷移過(guò)程結(jié)束;如果沒(méi)有遍歷完Exp0rter_Set中所有節(jié)點(diǎn),則返回至步驟 C0
所述閾值通過(guò)元數(shù)據(jù)服務(wù)器配置參數(shù)設(shè)置。
與已有技術(shù)方案相比,本發(fā)明主要的優(yōu)點(diǎn)有1.根據(jù)MDS固有性能按比例分配相應(yīng)工作負(fù)載,并能根據(jù)當(dāng)前負(fù)載進(jìn)行動(dòng)態(tài)調(diào)整,支持異構(gòu)MDS集群。
2.屏蔽MDS底層配置細(xì)節(jié),避免了性能模型中量化影響因子的難題準(zhǔn)確評(píng)估MDS 的元數(shù)據(jù)處理能力。
圖1為實(shí)測(cè)并行服務(wù)請(qǐng)求數(shù)和平均操作延時(shí)的關(guān)系圖。
圖2為對(duì)象存儲(chǔ)系統(tǒng)的典型框架圖。
圖3為是MDS集群中文件系統(tǒng)名字空間的分布。
圖4為本發(fā)明的總體流程圖。
圖5為本發(fā)明的目錄子樹(shù)流程圖。
具體實(shí)施方式
本發(fā)明方法應(yīng)用于對(duì)象存儲(chǔ)系統(tǒng)中,對(duì)象存儲(chǔ)系統(tǒng)主要由三部分組成,分別為客戶端、MDS集群和OSD集群,參看圖2。OSD集群將數(shù)據(jù)和元數(shù)據(jù)作為對(duì)象存儲(chǔ);客戶端為用戶提供訪問(wèn)接口 ;元數(shù)據(jù)服務(wù)器管理文件系統(tǒng)名字空間(參見(jiàn)圖3)、控制用戶訪問(wèn)和映射文件物理存儲(chǔ)位置,并周期性地共享各自的負(fù)載水平,當(dāng)某一臺(tái)MDS的負(fù)載超過(guò)集群平均值一定閥值后,將啟動(dòng)子樹(shù)遷移,根據(jù)過(guò)載的負(fù)載選擇適當(dāng)?shù)哪夸涀訕?shù)遷移到負(fù)載較輕的節(jié)點(diǎn),以均衡系統(tǒng)負(fù)載。
本發(fā)明的總體邏輯流程如下,參見(jiàn)圖4 1在元數(shù)據(jù)服務(wù)器空載狀態(tài)下,通過(guò)基準(zhǔn)測(cè)試工具mdtest測(cè)得每臺(tái)元數(shù)據(jù)服務(wù)器在不同并行服務(wù)請(qǐng)求數(shù)下的平均操作延時(shí)。
2利用最小二乘法對(duì)步驟1中測(cè)得并行請(qǐng)求數(shù)和平均操作延時(shí)的映射關(guān)系曲線進(jìn)行線性擬合,并得出擬合曲線斜率,然后將斜率值的倒數(shù)作為權(quán)重輸入元數(shù)據(jù)服務(wù)器配置參數(shù)表。圖1為實(shí)測(cè)并行服務(wù)請(qǐng)求數(shù)和平均操作延時(shí)的關(guān)系圖。從圖1中可以得出a隨著客戶端數(shù)量的增加,MDS的平均操作延時(shí)也呈現(xiàn)線性增加;b隨著MDS性能增強(qiáng),對(duì)應(yīng)的擬合曲線斜率單調(diào)減小。
3每臺(tái)元數(shù)據(jù)服務(wù)器開(kāi)啟一個(gè)守護(hù)進(jìn)程,對(duì)服務(wù)器處理的訪問(wèn)請(qǐng)求數(shù)計(jì)數(shù)作為參數(shù)得出服務(wù)器的當(dāng)前負(fù)載,記錄請(qǐng)求時(shí)間。
4每個(gè)心跳周期時(shí)間到時(shí),元數(shù)據(jù)服務(wù)器通過(guò)UDP協(xié)議向集群中其它所有元數(shù)據(jù)服務(wù)器廣播自己的當(dāng)前負(fù)載水平和權(quán)重,并記錄發(fā)送時(shí)間。心跳周期通過(guò)元數(shù)據(jù)服務(wù)器配置參數(shù)設(shè)置。
5元數(shù)據(jù)服務(wù)器接收完畢集群中其它服務(wù)器廣播信息后,計(jì)算出目標(biāo)負(fù)載。
6將服務(wù)器的當(dāng)前其當(dāng)前負(fù)載與步驟5中目標(biāo)負(fù)載相減,如果差值為正并且大于閾值,則執(zhí)行步驟7 ;如果差值為不為正并且大于閾值則轉(zhuǎn)至步驟8閾值通過(guò)元數(shù)據(jù)服務(wù)器配置參數(shù)設(shè)置。
7啟動(dòng)目錄子樹(shù)遷移過(guò)程,根據(jù)當(dāng)前負(fù)載和目標(biāo)負(fù)載的差值,選擇負(fù)載和為差值的目錄子樹(shù)遷移到當(dāng)前負(fù)載低于目標(biāo)負(fù)載的元數(shù)據(jù)服務(wù)器。
8當(dāng)計(jì)時(shí)周期結(jié)束時(shí),判斷負(fù)載均衡任務(wù)是否結(jié)束,如果負(fù)載均衡任務(wù)結(jié)束,則任務(wù)結(jié)束;如果負(fù)載均衡任務(wù)沒(méi)有結(jié)束,則重復(fù)計(jì)算當(dāng)前負(fù)載和廣播服務(wù)器負(fù)載水平和的過(guò)程,即返回至步驟3。
步驟3中所述服務(wù)器的當(dāng)前負(fù)載由以下方法得出1)對(duì)元數(shù)據(jù)服務(wù)器中每個(gè)目錄和文件設(shè)置對(duì)應(yīng)的負(fù)載計(jì)數(shù)器,并以此衡量該文件和目錄的負(fù)載;2)當(dāng)服務(wù)器處理服務(wù)請(qǐng)求時(shí),與之對(duì)應(yīng)的負(fù)載計(jì)數(shù)器就會(huì)增加1;3)元數(shù)據(jù)服務(wù)器的當(dāng)前負(fù)載為其所包含的所有目錄和文件的負(fù)載計(jì)數(shù)器值之和;所述計(jì)數(shù)器計(jì)數(shù)值會(huì)隨時(shí)間呈指數(shù)型衰減,衰減函數(shù)為= ^"1*5% ,其中At 為最近一次訪問(wèn)請(qǐng)求數(shù)的記錄時(shí)間與當(dāng)前時(shí)間的差值。
所述目標(biāo)負(fù)載的計(jì)算公式為 arg招J— = Wi f Wt-Hoial Joctd ;其中target_Ioadi編號(hào)為i的服務(wù)器的目標(biāo)負(fù)載,Wi編號(hào)為i的服務(wù)器的權(quán)重,Wt。tal為集群中所有元數(shù)據(jù)服務(wù)器權(quán)重之和,total_load為集群中所有元數(shù)據(jù)服務(wù)器當(dāng)前負(fù)載之和。
圖5為本發(fā)明的目錄子樹(shù)遷移流程,具體過(guò)程包括以下步驟A初始化Importer_set禾口 Exporter_set為空,Importer_set表示當(dāng)前負(fù)載低于目標(biāo)負(fù)載的元數(shù)據(jù)服務(wù)器集合,Exporter_set表示當(dāng)前負(fù)載大于目標(biāo)負(fù)載的元數(shù)據(jù)服務(wù)器集合;B遍歷集群中所有元數(shù)據(jù)服務(wù)器節(jié)點(diǎn),將每個(gè)節(jié)點(diǎn)的當(dāng)前其當(dāng)前負(fù)載與目標(biāo)負(fù)載相減, 如果差值為正并且大于閾值,則將該將節(jié)點(diǎn)歸入EXp0rter_set ;如果差值為負(fù)并且絕對(duì)值大于閾值,則將該將節(jié)點(diǎn)歸入Imp0rter_set ;C從步驟A所述EXp0rter_set中選取元數(shù)據(jù)服務(wù)器,記作MDSi,并將步驟B所述差值記為IMi ;D從Imp0rter_set選取元數(shù)據(jù)服務(wù)器,記作MD。,并將所述步驟B所述差值的絕對(duì)值記作IMj ;E比較步驟C所述IMi和D所述IMj,并將兩者的較小值記作Riiig,在步驟C所述MDSi 中選取負(fù)載值為Riiig的目錄子樹(shù)遷移到步驟D所述MD^ ;F更新步驟C所述IMi為IMi和步驟E所述Riiig相減的差值,更新步驟D所述IMj為 IMj和步驟E所述Riiig相減的差值;G判斷是否步驟F中所述更新后的IMi小于或等于閾值,如果步驟F中所述更新后的 IMi小于或等于閾值則執(zhí)行H ;如果步驟F中所述更新后的IMi大于閾值,則返回至步驟D ; H判斷是否已經(jīng)遍歷完Exporter_set中所有節(jié)點(diǎn),如果已經(jīng)遍歷完Exporter_set中所有節(jié)點(diǎn),則遷移過(guò)程結(jié)束;如果沒(méi)有遍歷完Exp0rter_Set中所有節(jié)點(diǎn),則返回至步驟C。
由于過(guò)載節(jié)點(diǎn)的負(fù)載輸出量和輕負(fù)載節(jié)點(diǎn)的引進(jìn)量并非一定能一一對(duì)應(yīng),多數(shù)情況下需要多個(gè)節(jié)點(diǎn)協(xié)調(diào)完成上述負(fù)載遷移過(guò)過(guò)程。例如,MDSi需要輸出大量負(fù)載,這時(shí)需要把過(guò)載負(fù)載分別遷移到多個(gè)輕載節(jié)點(diǎn)。遷移過(guò)程首先會(huì)在MDSi中搜索負(fù)載和為Riiig的目錄子樹(shù),然后將轉(zhuǎn)移到的輕負(fù)載節(jié)點(diǎn)MDSp每個(gè)目錄子樹(shù)代表一定的訪問(wèn)負(fù)載,因此把目錄子樹(shù)遷移也就意味著工作負(fù)載的轉(zhuǎn)移。這樣每個(gè)MDS節(jié)點(diǎn)能夠根據(jù)自身的處理能力分配到相應(yīng)比例的工作負(fù)載,最終使MDS集群達(dá)到負(fù)載均衡。
權(quán)利要求
1.一種基于權(quán)重的元數(shù)據(jù)服務(wù)器集群負(fù)載均衡方法,其特征在于該方法包括以下步驟步驟1.在元數(shù)據(jù)服務(wù)器空載狀態(tài)下,通過(guò)基準(zhǔn)測(cè)試工具mdtest測(cè)得每臺(tái)元數(shù)據(jù)服務(wù)器在不同并行服務(wù)請(qǐng)求數(shù)下的平均操作延時(shí);步驟2.利用最小二乘法對(duì)步驟1中并行請(qǐng)求數(shù)和平均操作延時(shí)的映射關(guān)系曲線進(jìn)行線性擬合,并得出擬合曲線斜率,然后將斜率值的倒數(shù)作為權(quán)重輸入元數(shù)據(jù)服務(wù)器配置參數(shù)表;步驟3.每臺(tái)元數(shù)據(jù)服務(wù)器開(kāi)啟一個(gè)守護(hù)進(jìn)程,對(duì)服務(wù)器處理的訪問(wèn)請(qǐng)求進(jìn)行計(jì)數(shù),并把計(jì)數(shù)器值作為參數(shù)得出服務(wù)器的當(dāng)前負(fù)載,記錄請(qǐng)求時(shí)間;步驟4.每個(gè)心跳周期時(shí)間到時(shí),元數(shù)據(jù)服務(wù)器通過(guò)UDP協(xié)議向集群中其它所有元數(shù)據(jù)服務(wù)器廣播自己的當(dāng)前負(fù)載水平和權(quán)重,并記錄發(fā)送時(shí)間;步驟5.元數(shù)據(jù)服務(wù)器接收完畢集群中其它服務(wù)器廣播信息后,計(jì)算出目標(biāo)負(fù)載; 步驟6.將服務(wù)器的當(dāng)前其當(dāng)前負(fù)載與步驟5中目標(biāo)負(fù)載相減,如果差值為正并且大于閾值,則執(zhí)行步驟7 ;如果差值為不為正并且大于閾值則轉(zhuǎn)至步驟8 ;步驟7.啟動(dòng)目錄子樹(shù)遷移過(guò)程,根據(jù)當(dāng)前負(fù)載和目標(biāo)負(fù)載的差值,選擇負(fù)載和為差值的目錄子樹(shù)遷移到當(dāng)前負(fù)載低于目標(biāo)負(fù)載的元數(shù)據(jù)服務(wù)器;步驟8.判斷負(fù)載均衡任務(wù)是否結(jié)束,如果負(fù)載均衡任務(wù)結(jié)束,則任務(wù)結(jié)束;如果負(fù)載均衡任務(wù)沒(méi)有結(jié)束,則返回至步驟3。
2.根據(jù)權(quán)利要求1所述的一種基于權(quán)重的元數(shù)據(jù)服務(wù)器集群負(fù)載均衡方法,其特征在于步驟3所述服務(wù)器的當(dāng)前負(fù)載由以下方法得出對(duì)元數(shù)據(jù)服務(wù)器中每個(gè)目錄和文件設(shè)置對(duì)應(yīng)的負(fù)載計(jì)數(shù)器,并以此衡量該文件和目錄的負(fù)載;當(dāng)服務(wù)器處理服務(wù)請(qǐng)求時(shí),與之對(duì)應(yīng)的負(fù)載計(jì)數(shù)器就會(huì)增加1 ; 元數(shù)據(jù)服務(wù)器的當(dāng)前負(fù)載為其所包含的所有目錄和文件的負(fù)載計(jì)數(shù)器值之和。
3.根據(jù)權(quán)利要求1或2所述的一種基于權(quán)重的元數(shù)據(jù)服務(wù)器集群負(fù)載均衡方法,其特征在于所述計(jì)數(shù)器值會(huì)隨時(shí)間呈指數(shù)型衰減。
4.根據(jù)權(quán)利要求1所述的一種基于權(quán)重的元數(shù)據(jù)服務(wù)器集群負(fù)載均衡方法,其特征在于步驟4中所述心跳周期通過(guò)元數(shù)據(jù)服務(wù)器配置參數(shù)設(shè)置。
5.根據(jù)權(quán)利要求1所述的一種基于權(quán)重的元數(shù)據(jù)服務(wù)器集群負(fù)載均衡方法,其特征在于步驟5所述目標(biāo)負(fù)載的計(jì)算公式為 iarg st Joadi = Wj / W^mHotalJoad ;其中 IargetJoadi 編號(hào)為 i 的服務(wù)器的目標(biāo)負(fù)載,Wi編號(hào)為i的服務(wù)器的權(quán)重,Wtotal為集群中所有元數(shù)據(jù)服務(wù)器權(quán)重之和,total_load為集群中所有元數(shù)據(jù)服務(wù)器當(dāng)前負(fù)載之和。
6.根據(jù)權(quán)利要求1所述的一種基于權(quán)重的元數(shù)據(jù)服務(wù)器集群負(fù)載均衡方法,其特征在于步驟7所述目錄子樹(shù)遷移過(guò)程,包括以下步驟A.初始化Importer_set禾口 Exporter_set為空,Importer_set表示當(dāng)前負(fù)載低于目標(biāo)負(fù)載的元數(shù)據(jù)服務(wù)器集合,EXp0rter_set表示當(dāng)前負(fù)載大于目標(biāo)負(fù)載的元數(shù)據(jù)服務(wù)器集合;B.遍歷集群中所有元數(shù)據(jù)服務(wù)器節(jié)點(diǎn),將每個(gè)節(jié)點(diǎn)的當(dāng)前其當(dāng)前負(fù)載與目標(biāo)負(fù)載相減,如果差值為正并且大于閾值,則將該將節(jié)點(diǎn)歸入EXp0rter_set ;如果差值為負(fù)并且絕對(duì)值大于閾值,則將該將節(jié)點(diǎn)歸入Imp0rter_set ;C.從步驟A所述EXp0rter_set中選取元數(shù)據(jù)服務(wù)器,記作MDSi,并將步驟B所述差值記為IMi ;D.從Imp0rter_set選取元數(shù)據(jù)服務(wù)器,記作MD。,并將所述步驟B所述差值的絕對(duì)值記作IMj ;E.比較步驟C所述IMi和D所述IMj,并將兩者的較小值記作Riiig,在步驟C所述MDSi 中選取負(fù)載值為Riiig的目錄子樹(shù)遷移到步驟D所述MD^ ;F.更新步驟C所述IMi為IMi和步驟E所述Riiig相減的差值,更新步驟D所述IMj為 IMj和步驟E所述Riiig相減的差值;G.判斷是否步驟F中所述更新后的IMi小于或等于閾值,如果步驟F中所述更新后的 IMi小于或等于閾值則執(zhí)行H ;如果步驟F中所述更新后的IMi大于閾值,則返回至步驟D ;H.判斷是否已經(jīng)遍歷完Exporter_set中所有節(jié)點(diǎn),如果已經(jīng)遍歷完Exporter_set中所有節(jié)點(diǎn),則遷移過(guò)程結(jié)束;如果沒(méi)有遍歷完Exp0rter_Set中所有節(jié)點(diǎn),則返回至步驟C。
7.根據(jù)權(quán)利要求1或6所述的一種基于權(quán)重的元數(shù)據(jù)服務(wù)器集群負(fù)載均衡方法,其特征在于所述閾值通過(guò)元數(shù)據(jù)服務(wù)器配置參數(shù)設(shè)置。
全文摘要
本發(fā)明涉及一種基于權(quán)重的元數(shù)據(jù)服務(wù)器集群負(fù)載均衡方法。元數(shù)據(jù)服務(wù)器是對(duì)象存儲(chǔ)系統(tǒng)的重要組成部分,扮演管理文件系統(tǒng)名字空間、控制用戶訪問(wèn)和映射文件物理存儲(chǔ)位置的角色。本發(fā)明通過(guò)收集元數(shù)據(jù)服務(wù)并行處理的服務(wù)請(qǐng)求數(shù)和平均操作延時(shí),利用最小二乘法對(duì)兩者的映射關(guān)系曲線進(jìn)行線性擬合,將擬合曲線斜率值的倒數(shù)作為元數(shù)據(jù)服務(wù)器的固有性能;通過(guò)對(duì)工作負(fù)載根據(jù)元數(shù)據(jù)服務(wù)器的固有性能作為權(quán)重進(jìn)行按比例分配,使其支持異構(gòu)元數(shù)據(jù)服務(wù)器集群。本發(fā)明方法開(kāi)銷(xiāo)小、動(dòng)態(tài)調(diào)整工作負(fù)載、元數(shù)據(jù)服務(wù)器集群在設(shè)備異構(gòu)情況下保持負(fù)載均衡。
文檔編號(hào)H04L29/08GK102523158SQ20111042024
公開(kāi)日2012年6月27日 申請(qǐng)日期2011年12月15日 優(yōu)先權(quán)日2011年12月15日
發(fā)明者萬(wàn)健, 任永堅(jiān), 張紀(jì)林, 徐向華, 殷昱煜, 蔣從鋒, 錢(qián)偉 申請(qǐng)人:杭州電子科技大學(xué)