專利名稱:基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,特別是指一種綜合考慮節(jié)點(diǎn)異構(gòu)與應(yīng)用間差異,基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法。屬于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)。
背景技術(shù):
商業(yè)機(jī)群系統(tǒng)自身具有很強(qiáng)的靈活性;相同的應(yīng)用可以選擇不同的節(jié)點(diǎn)進(jìn)行部署,同一個(gè)任務(wù)也可以分配給不同的節(jié)點(diǎn)來完成。隨著商業(yè)應(yīng)用規(guī)模的不斷膨脹,應(yīng)用所在節(jié)點(diǎn)所承擔(dān)的負(fù)載越來越重;同時(shí),節(jié)點(diǎn)之間也有可能出現(xiàn)負(fù)載分配不均衡的現(xiàn)象。商務(wù)應(yīng)用任務(wù)具有與科學(xué)計(jì)算任務(wù)明顯的不同特點(diǎn)任務(wù)粒度較小、運(yùn)行時(shí)間相對(duì)較短,一般不需要將任務(wù)進(jìn)行并行化處理;但是,商務(wù)應(yīng)用任務(wù)的數(shù)量比較大,各個(gè)節(jié)點(diǎn)的負(fù)載隨時(shí)間變化明顯。
綜上所述,像“應(yīng)用部署”、“任務(wù)分配”等全局決策活動(dòng)已經(jīng)不能僅由系統(tǒng)管理員根據(jù)主觀意愿進(jìn)行靜態(tài)的配置。根據(jù)各個(gè)節(jié)點(diǎn)的實(shí)際負(fù)載,合理的將應(yīng)用在機(jī)群內(nèi)動(dòng)態(tài)部署、均衡的將任務(wù)在多個(gè)節(jié)點(diǎn)間動(dòng)態(tài)分配,將是實(shí)現(xiàn)機(jī)群系統(tǒng)內(nèi)負(fù)載均衡并最終提高系統(tǒng)整體性能的關(guān)鍵,而這一切的基礎(chǔ)就是實(shí)時(shí)而準(zhǔn)確的衡量各個(gè)節(jié)點(diǎn)上的工作負(fù)載。
目前,針對(duì)負(fù)載均衡問題,人們已經(jīng)做了大量的工作,真正實(shí)現(xiàn)一個(gè)系統(tǒng)的負(fù)載均衡,需要綜合考慮負(fù)載信息采集、負(fù)載衡量、負(fù)載分配等多方面因素。如圖1所示,現(xiàn)有技術(shù)對(duì)此問題的解決方法主要集中在負(fù)載調(diào)度算法的改進(jìn)方面;但是,如何全面地衡量系統(tǒng)的負(fù)載卻是一個(gè)一直被忽視的問題。
傳統(tǒng)的方法往往過于簡(jiǎn)單有些系統(tǒng)為每個(gè)程序設(shè)定一個(gè)固定的負(fù)載因子,根據(jù)程序執(zhí)行的次數(shù)與負(fù)載因子的乘積來衡量系統(tǒng)負(fù)載。這種方法沒有考慮實(shí)時(shí)的系統(tǒng)級(jí)負(fù)載診斷信息(如CPU使用率、內(nèi)存使用率等),因而缺乏動(dòng)態(tài)性和科學(xué)性。有些系統(tǒng)雖然考慮了系統(tǒng)級(jí)負(fù)載信息,并以此為依據(jù)比較各節(jié)點(diǎn)間負(fù)載的相對(duì)大小,但是卻缺乏對(duì)系統(tǒng)異構(gòu)性、以及應(yīng)用差異的分析。這里的系統(tǒng)異構(gòu)性主要是指不同節(jié)點(diǎn)上的同種資源在性能上的差異;例如兩臺(tái)處理機(jī)所擁有的處理器的運(yùn)算速度的不同。不同的應(yīng)用之間也可能存在差異;例如有的應(yīng)用需要消耗大量的內(nèi)存而對(duì)網(wǎng)絡(luò)帶寬要求不高,有些正好相反。
一種真正合理的機(jī)群節(jié)點(diǎn)負(fù)載衡量技術(shù)應(yīng)有助于實(shí)現(xiàn)①在節(jié)點(diǎn)性能相同時(shí),分配到各節(jié)點(diǎn)上的工作負(fù)載應(yīng)大致相同;②在節(jié)點(diǎn)性能不同時(shí),更多的負(fù)載應(yīng)分配到性能更高、資源更多的節(jié)點(diǎn)上;③為不同類型的應(yīng)用分配最適合它們的運(yùn)行環(huán)境。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提出一種基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,適合于機(jī)群系統(tǒng),綜合考慮其節(jié)點(diǎn)異構(gòu)與應(yīng)用間的差異,使在節(jié)點(diǎn)性能相同時(shí),使分配到各節(jié)點(diǎn)上的工作負(fù)載應(yīng)該大致相同;在節(jié)點(diǎn)性能不同時(shí),使更多的負(fù)載應(yīng)分配到性能更高、資源更多的節(jié)點(diǎn)上。
本發(fā)明的又一目的在于提出一種基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,為不同類型的應(yīng)用分配最適合它們的運(yùn)行環(huán)境。
本發(fā)明的目的是這樣實(shí)現(xiàn)的一種基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,由多個(gè)主機(jī)節(jié)點(diǎn)組成的機(jī)群系統(tǒng)將同一應(yīng)用部署在多臺(tái)主機(jī)節(jié)點(diǎn)上,任一時(shí)刻至少有一個(gè)節(jié)點(diǎn)上的該應(yīng)用處于運(yùn)行狀態(tài);控制節(jié)點(diǎn)選擇備份節(jié)點(diǎn)重新啟動(dòng)應(yīng)用或?qū)?yīng)用從當(dāng)前節(jié)點(diǎn)遷移到備份節(jié)點(diǎn)。
所述的控制節(jié)點(diǎn)選擇資源剩余最多的備份節(jié)點(diǎn)重新啟動(dòng)應(yīng)用或?qū)?yīng)用從當(dāng)前節(jié)點(diǎn)進(jìn)行遷移,至少包括步驟1配置資源因子。
步驟2配置資源依賴因子;步驟3采集系統(tǒng)級(jí)診斷信息;步驟4計(jì)算與應(yīng)用相關(guān)的節(jié)點(diǎn)綜合資源剩余率;步驟5更新負(fù)載均衡前置節(jié)點(diǎn);步驟6判斷應(yīng)用被部署為高可用應(yīng)用還是負(fù)載均衡應(yīng)用,如果是高可用應(yīng)用,則選擇最適合該應(yīng)用運(yùn)行的備份節(jié)點(diǎn)作為新的運(yùn)行節(jié)點(diǎn);結(jié)束;步驟7如果是負(fù)載均衡應(yīng)用,則根據(jù)備用節(jié)點(diǎn)的權(quán)重部署該應(yīng)用,節(jié)點(diǎn)的權(quán)重越高,則分配的任務(wù)就越多;結(jié)束。
所述的步驟1具體包括步驟11為機(jī)群系統(tǒng)定義應(yīng)用程序的通用資源,并為每一種資源指定系統(tǒng)級(jí)診斷信息;步驟12為機(jī)群系統(tǒng)靜態(tài)配置節(jié)點(diǎn)信息,并在添加新節(jié)點(diǎn)時(shí),指明該節(jié)點(diǎn)包含的所有資源種類以及資源因子。
所述的系統(tǒng)級(jí)診斷信息至少包括處理器資源、內(nèi)存資源和網(wǎng)絡(luò)資源;其中,處理器利用率為處理器資源的系統(tǒng)級(jí)診斷信息,內(nèi)存利用率為內(nèi)存資源的系統(tǒng)級(jí)診斷信息,網(wǎng)卡實(shí)際傳輸速率/網(wǎng)卡最大傳輸速率為網(wǎng)絡(luò)資源的系統(tǒng)級(jí)診斷信息。
在設(shè)定節(jié)點(diǎn)的資源因子時(shí),至少需要執(zhí)行以下步驟步驟121選擇代表該節(jié)點(diǎn)資源性能水平的參數(shù)指標(biāo);步驟122根據(jù)如下公式計(jì)算該節(jié)點(diǎn)資源在系統(tǒng)中的平均性能參數(shù);
P=(∑Pi/N)其中,P為該資源的平均性能參數(shù),Pi為i節(jié)點(diǎn)上該資源的實(shí)際性能參數(shù),N為機(jī)群中的節(jié)點(diǎn)數(shù)目;步驟123依據(jù)如下公式計(jì)算該節(jié)點(diǎn)資源的實(shí)際性能參數(shù)與平均性能參數(shù)的比值;P’=(P/P)其中,P’為該節(jié)點(diǎn)資源的實(shí)際性能參數(shù)與平均性能參數(shù)的比值;P為該節(jié)點(diǎn)資源在系統(tǒng)中的平均性能參數(shù);P為該節(jié)點(diǎn)資源的實(shí)際性能參數(shù);步驟124設(shè)定資源因子的數(shù)值,且該資源因子的值在1與P’之間。
所述的步驟4具體為根據(jù)如下公式計(jì)算節(jié)點(diǎn)針對(duì)應(yīng)用的綜合資源剩余率Σall_resourceremain*res_factor*dep_factor]]>其中,remain從節(jié)點(diǎn)上獲取的相應(yīng)資源的剩余率;res_factor為節(jié)點(diǎn)上被計(jì)算資源的資源因子;dep_factor為應(yīng)用對(duì)相應(yīng)資源的資源依賴因子;all_resource為應(yīng)用所關(guān)心的所有資源。
步驟5的具體操作為控制節(jié)點(diǎn)周期性地計(jì)算所有節(jié)點(diǎn)的資源剩余率,然后將它們直接或經(jīng)過處理后作為節(jié)點(diǎn)應(yīng)用權(quán)重發(fā)送給負(fù)載均衡應(yīng)用的前置節(jié)點(diǎn),用于更新已過時(shí)的節(jié)點(diǎn)應(yīng)用權(quán)重。
所述的前置節(jié)點(diǎn)將多個(gè)運(yùn)行相同應(yīng)用的節(jié)點(diǎn)在邏輯上組織為一個(gè)整體,并負(fù)責(zé)任務(wù)的分發(fā)。前置節(jié)點(diǎn)中保存有每個(gè)應(yīng)用運(yùn)行節(jié)點(diǎn)的權(quán)重,該前置節(jié)點(diǎn)進(jìn)行任務(wù)分發(fā)時(shí)選擇權(quán)重最高的節(jié)點(diǎn)。應(yīng)用運(yùn)行節(jié)點(diǎn)的權(quán)重根據(jù)該節(jié)點(diǎn)資源剩余量確定,剩余資源越多,相應(yīng)的權(quán)重值應(yīng)越大。
通過以上的技術(shù)方案,本發(fā)明更真實(shí)地根據(jù)各節(jié)點(diǎn)之間的性能差異、負(fù)載差異與資源利用情況,使得故障的排除與接管、任務(wù)的分配更加合理,解決了傳統(tǒng)方法中對(duì)系統(tǒng)異構(gòu)性與應(yīng)用差異考慮不足的問題;利用該方法所計(jì)算出的資源剩余率為實(shí)現(xiàn)系統(tǒng)內(nèi)負(fù)載的均衡和整體性能的提高提供了堅(jiān)實(shí)的系統(tǒng)級(jí)數(shù)據(jù)信息保障。
圖1為負(fù)載均衡過程示意圖;圖2為本發(fā)明負(fù)載對(duì)象模型示意圖;圖3為機(jī)群應(yīng)用高可用模型示意圖;圖4為機(jī)群應(yīng)用負(fù)載均衡模型示意圖。
具體實(shí)施例方式
以下結(jié)合附圖和具體的實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明機(jī)群系統(tǒng)在硬件方面由多個(gè)主機(jī)節(jié)點(diǎn)組成,在軟件方面由多個(gè)應(yīng)用組成;節(jié)點(diǎn)是不同種類資源的集合體,在同一節(jié)點(diǎn)上可以部署多個(gè)不同的應(yīng)用;而資源是系統(tǒng)運(yùn)行的基礎(chǔ),每一種資源都有相應(yīng)的系統(tǒng)級(jí)診斷信息,例如,CPU利用率是處理器資源的系統(tǒng)級(jí)診斷信息。
操作系統(tǒng)可提供獲取各種資源診斷信息的方法或工具。如果遇到某種資源擁有多個(gè)系統(tǒng)級(jí)診斷信息時(shí),例如,衡量CPU的狀態(tài)參數(shù)有CPU利用率、CPU上下文切換頻率、等待進(jìn)程隊(duì)列長(zhǎng)度等,可以按診斷項(xiàng)目對(duì)應(yīng)用運(yùn)行的影響程度為其設(shè)定一個(gè)權(quán)值,然后取各個(gè)診斷項(xiàng)目的加權(quán)平均值作為最后的系統(tǒng)級(jí)診斷信息,或者,如果診斷項(xiàng)目對(duì)應(yīng)用運(yùn)行影響較小,可以忽略不計(jì)。系統(tǒng)只考慮影響大的診斷項(xiàng)目。
不同節(jié)點(diǎn)可以擁有相同種類的資源,但是異構(gòu)性允許同類資源之間在多個(gè)方面存在差異。要想進(jìn)行準(zhǔn)確的負(fù)載衡量,必須充分考慮同類資源之間的性能差異。因此,用資源因子做為異構(gòu)參數(shù),在描述每個(gè)節(jié)點(diǎn)的資源時(shí),將以該種資源的機(jī)群范圍內(nèi)的平均性能水平為基準(zhǔn)來設(shè)定資源因子。資源因子越高,表明某節(jié)點(diǎn)上該種資源的性能越優(yōu)異。但要注意一般不宜簡(jiǎn)單地將節(jié)點(diǎn)間資源性能指標(biāo)的絕對(duì)比值作為資源因子的數(shù)值。
應(yīng)用是在機(jī)群內(nèi)部署的程序,可以對(duì)外或?qū)?nèi)提供某種服務(wù)。根據(jù)自身任務(wù)特點(diǎn),應(yīng)用可以分為計(jì)算密集型、I/O密集型和通信密集型等多種類型。由于不同類型應(yīng)用對(duì)各種系統(tǒng)資源的關(guān)心程度各不相同,因此對(duì)不同應(yīng)用來說基于相同的系統(tǒng)級(jí)診斷信息所得出的節(jié)點(diǎn)負(fù)載值也應(yīng)是不一樣的,因此,負(fù)載是與服務(wù)相關(guān)的,即應(yīng)用對(duì)各資源的依賴程度信息,用資源依賴因子來表示,在為系統(tǒng)配置應(yīng)用時(shí),應(yīng)同時(shí)配置資源依賴因子。
參見圖2由此可得機(jī)群負(fù)載的對(duì)象模型。在機(jī)群系統(tǒng)中,硬件方面由許多節(jié)點(diǎn)組成,軟件方面由許多應(yīng)用組成;節(jié)點(diǎn)擁有各種資源,不同的節(jié)點(diǎn)可以擁有相同資源,也可以擁有不同的資源;該節(jié)點(diǎn)的資源信息由資源因子表示;在同一節(jié)點(diǎn)上可以部署多個(gè)不同的應(yīng)用,該應(yīng)用對(duì)各種資源的依賴程度由資源依賴因子表示。節(jié)點(diǎn)與應(yīng)用為部署關(guān)系,資源與應(yīng)用為使用關(guān)系。
本發(fā)明以集中控制為例說明本技術(shù)方案由圖1可知在機(jī)群系統(tǒng)中,可以將同一個(gè)應(yīng)用部署在多臺(tái)主機(jī)節(jié)點(diǎn)上以提供高可用的服務(wù)。參見圖3,任一時(shí)刻總有一個(gè)節(jié)點(diǎn)node1上的該應(yīng)用處于運(yùn)行狀態(tài)(active)。當(dāng)運(yùn)行中應(yīng)用出現(xiàn)故障時(shí)(節(jié)點(diǎn)故障或應(yīng)用本身故障),控制節(jié)點(diǎn)(control node)選擇一個(gè)備份節(jié)點(diǎn)(standby)重新啟動(dòng)應(yīng)用,即“應(yīng)用故障處理”。即使運(yùn)行應(yīng)用沒有出現(xiàn)致命問題,系統(tǒng)也可能需要將應(yīng)用從當(dāng)前節(jié)點(diǎn)遷移到其它的備份節(jié)點(diǎn),即“應(yīng)用遷移”。無論是哪一種情況,所面臨的問題實(shí)質(zhì)上是一個(gè)——如何合理的選擇備份節(jié)點(diǎn)。本發(fā)明的原則是選擇資源剩余最多的備份節(jié)點(diǎn)。
在機(jī)群系統(tǒng)中,也可以在多個(gè)節(jié)點(diǎn)上同時(shí)運(yùn)行相同的應(yīng)用,整個(gè)應(yīng)用存在一個(gè)前置節(jié)點(diǎn)(dispatcher)負(fù)責(zé)任務(wù)的分發(fā),它把多個(gè)運(yùn)行相同應(yīng)用的節(jié)點(diǎn)在邏輯上組織為一個(gè)整體,參見如圖4中的應(yīng)用app1、應(yīng)用app2。在前置節(jié)點(diǎn)中保存了每個(gè)應(yīng)用運(yùn)行節(jié)點(diǎn)的權(quán)重,任務(wù)分發(fā)時(shí)應(yīng)選擇權(quán)重最高的節(jié)點(diǎn)。問題是如何設(shè)置節(jié)點(diǎn)的應(yīng)用權(quán)重,本發(fā)明的原則是根據(jù)節(jié)點(diǎn)資源剩余的多少來設(shè)置節(jié)點(diǎn)應(yīng)用權(quán)重的大小,剩余資源越多,相應(yīng)的權(quán)重值應(yīng)越大。
在任一時(shí)刻,節(jié)點(diǎn)的負(fù)載不是一個(gè)單值,而是一個(gè)多值的集合,針對(duì)每一個(gè)部署在節(jié)點(diǎn)上的應(yīng)用都應(yīng)有其相應(yīng)的應(yīng)用負(fù)載,基于相同的系統(tǒng)級(jí)診斷信息,同一個(gè)節(jié)點(diǎn)的應(yīng)用負(fù)載可能會(huì)不同。
具體的衡量節(jié)點(diǎn)的應(yīng)用負(fù)載方法為步驟1配置資源因子;具體包括步驟11為機(jī)群系統(tǒng)定義應(yīng)用程序的通用資源,并為每一種資源指定能夠代表其負(fù)載的系統(tǒng)級(jí)診斷信息;例如處理器資源(CPU)、內(nèi)存資源(MEMORY)、網(wǎng)絡(luò)資源(NETWORK)等,處理器利用率作為處理器資源的系統(tǒng)級(jí)診斷信息,內(nèi)存利用率作為內(nèi)存資源的系統(tǒng)級(jí)診斷信息,網(wǎng)卡實(shí)際傳輸速率/網(wǎng)卡最大傳輸速率作為網(wǎng)絡(luò)資源的系統(tǒng)級(jí)診斷信息;步驟12為機(jī)群系統(tǒng)靜態(tài)配置節(jié)點(diǎn)信息,在添加新節(jié)點(diǎn)時(shí),指明節(jié)點(diǎn)所包含的所有資源種類,以及每種資源在該節(jié)點(diǎn)上的性能水平——資源因子;在設(shè)定資源因子時(shí),需要進(jìn)一步進(jìn)行
步驟121選擇一種能夠代表資源性能水平的參數(shù)指標(biāo),如處理器資源的CPU主頻速度,并確定該資源在系統(tǒng)中的平均性能參數(shù)(P);步驟122以平均性能參數(shù)為基準(zhǔn)將某節(jié)點(diǎn)資源的實(shí)際性能參數(shù)(P)與平均性能參數(shù)進(jìn)行比較(P/P)得出比值P’;步驟12 3根據(jù)經(jīng)驗(yàn)值與實(shí)驗(yàn)數(shù)據(jù)來設(shè)定資源因子的數(shù)值大小,一般資源因子應(yīng)取值在1與P’之間。
表1 在表1中,對(duì)兩個(gè)節(jié)點(diǎn)node1、node2的資源因子進(jìn)行了配置。系統(tǒng)定義了三種通用資源處理器資源、內(nèi)存資源和網(wǎng)絡(luò)資源,衡量它們的性能指標(biāo)分別為CPU主頻速度、內(nèi)存大小和網(wǎng)卡最大傳輸速率;當(dāng)對(duì)某個(gè)節(jié)點(diǎn)的資源部件進(jìn)行添加、刪除或更換時(shí),應(yīng)及時(shí)對(duì)資源因子配置信息進(jìn)行更新。
步驟2配置資源依賴因子;管理員在部署應(yīng)用程序時(shí)應(yīng)配置應(yīng)用對(duì)不同資源的依賴程度,即資源依賴因子。對(duì)于某個(gè)應(yīng)用,某種資源所對(duì)應(yīng)的資源依賴因子越高,說明該應(yīng)用越渴望得到該種資源,因此該資源在衡量對(duì)該應(yīng)用而言的節(jié)點(diǎn)負(fù)載時(shí)的作用就越大。
為了方便管理員的工作,本發(fā)明預(yù)定義一套資源依賴模版,在每個(gè)模版中設(shè)定了適用于特定類型應(yīng)用的各個(gè)資源的依賴因子。每個(gè)模版中的所有資源依賴因子的總和應(yīng)等于1。例如表2
在表2中定義了兩個(gè)資源依賴模版(計(jì)算密集型模板和通信密集型模板)。在計(jì)算密集型應(yīng)用中,任務(wù)對(duì)處理器資源的需求程度最高;在通信密集型應(yīng)用中,任務(wù)對(duì)網(wǎng)絡(luò)資源的需求程度最高;在兩種類型的應(yīng)用中,任務(wù)都對(duì)內(nèi)存具有較高的要求。
步驟3采集系統(tǒng)級(jí)診斷信息;系統(tǒng)級(jí)診斷信息代表了節(jié)點(diǎn)資源當(dāng)前的負(fù)載狀況,所有節(jié)點(diǎn)都應(yīng)定時(shí)的、周期的將本地的系統(tǒng)級(jí)診斷信息發(fā)送到機(jī)群內(nèi)的其它節(jié)點(diǎn)。在分布式控制機(jī)群中可以采用廣播的方式進(jìn)行發(fā)送。在集中式控制機(jī)群中可以采用點(diǎn)對(duì)點(diǎn)通信的方式向機(jī)群內(nèi)的控制節(jié)點(diǎn)進(jìn)行匯報(bào)。無論采用何種方式,最終都將使控制節(jié)點(diǎn)看到完整的(包含所有當(dāng)前機(jī)群內(nèi)的存活節(jié)點(diǎn))、一致的(不同節(jié)點(diǎn)上的冗余信息應(yīng)保持相同)系統(tǒng)級(jí)診斷信息。
如何采集每一種系統(tǒng)級(jí)診斷信息都應(yīng)有專門的代理程序執(zhí)行獲取。系統(tǒng)在初始時(shí)會(huì)提供一些基本的代理程序,用戶也可以按照系統(tǒng)規(guī)定的格式自己編寫相應(yīng)的代理程序,然后將其配置到系統(tǒng)中,系統(tǒng)為它們預(yù)留了調(diào)用接口。
在實(shí)際計(jì)算中,需要將原始的關(guān)于利用率的診斷信息轉(zhuǎn)換為關(guān)于剩余率的診斷信息,這樣所得出的結(jié)論將可用于比較各節(jié)點(diǎn)資源剩余的總體情況。如表3所示表3 步驟4計(jì)算與應(yīng)用相關(guān)的節(jié)點(diǎn)資源剩余率;在完成了上述一系列配置工作,以及周期性接收到各節(jié)點(diǎn)的系統(tǒng)級(jí)診斷信息后,就可以針對(duì)每個(gè)應(yīng)用進(jìn)行節(jié)點(diǎn)剩余資源的衡量。這里需要說明的是本發(fā)明并不直接衡量節(jié)點(diǎn)負(fù)載,而是衡量節(jié)點(diǎn)剩余資源,因?yàn)樽罱K的目標(biāo)是要將任務(wù)分配到資源剩余最多的節(jié)點(diǎn)上執(zhí)行;針對(duì)應(yīng)用,節(jié)點(diǎn)的資源剩余率計(jì)算公式如下Σall_resourceremain*res_factor*dep_factor]]>(公式1)其中,remain為節(jié)點(diǎn)上某種資源的剩余率;res_factor為節(jié)點(diǎn)N上某種資源的資源因子;dep_factor為應(yīng)用對(duì)某種資源的資源依賴因子;all_resource為應(yīng)用所關(guān)心的所有資源。
假設(shè)在節(jié)點(diǎn)node1與節(jié)點(diǎn)node2上同時(shí)部署兩個(gè)應(yīng)用app1、app2,該應(yīng)用app1是計(jì)算密集型應(yīng)用,應(yīng)用app2是通信密集型應(yīng)用?,F(xiàn)根據(jù)上述的公式,以及上面所設(shè)定的配置信息和采集到的診斷信息,針對(duì)各個(gè)應(yīng)用衡量所有節(jié)點(diǎn)在一時(shí)刻上的資源剩余情況,參見表4表4 步驟5更新負(fù)載均衡前置節(jié)點(diǎn);控制節(jié)點(diǎn)周期性地計(jì)算所有節(jié)點(diǎn)的資源剩余率,然后將它們直接(或經(jīng)過適當(dāng)處理后)作為節(jié)點(diǎn)應(yīng)用權(quán)重發(fā)送給負(fù)載均衡應(yīng)用的前置節(jié)點(diǎn),用于更新已過時(shí)的節(jié)點(diǎn)應(yīng)用權(quán)重。
步驟6如果應(yīng)用app1與應(yīng)用app2均被部署為高可用應(yīng)用,除了運(yùn)行節(jié)點(diǎn)外,節(jié)點(diǎn)node1與節(jié)點(diǎn)node2是當(dāng)前可用的備份節(jié)點(diǎn)(standby),并以表4中的數(shù)據(jù)為依據(jù)進(jìn)行應(yīng)用的接管。當(dāng)運(yùn)行節(jié)點(diǎn)出現(xiàn)故障時(shí),應(yīng)用app1將由節(jié)點(diǎn)node1接管,應(yīng)用app2將由節(jié)點(diǎn)node2接管。
步驟7如果應(yīng)用app1與應(yīng)用app2均被部署為負(fù)載均衡應(yīng)用,并以表4中的數(shù)據(jù)為依據(jù)進(jìn)行任務(wù)調(diào)度,應(yīng)用app1的新任務(wù)將被調(diào)度到節(jié)點(diǎn)1node1執(zhí)行;應(yīng)用2app2的新任務(wù)將被調(diào)度到節(jié)點(diǎn)2(node2)執(zhí)行。
最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明而并非限制本發(fā)明所描述的技術(shù)方案;因此,盡管本說明書參照上述的各個(gè)實(shí)施例對(duì)本發(fā)明已進(jìn)行了詳細(xì)的說明,但是,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,仍然可以對(duì)本發(fā)明進(jìn)行修改或者等同替換;而一切不脫離本發(fā)明的精神和范圍的技術(shù)方案及其改進(jìn),其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,其特征在于由多個(gè)主機(jī)節(jié)點(diǎn)組成的機(jī)群系統(tǒng)將同一應(yīng)用部署在多臺(tái)主機(jī)節(jié)點(diǎn)上,任一時(shí)刻至少有一個(gè)節(jié)點(diǎn)上的該應(yīng)用處于運(yùn)行狀態(tài);控制節(jié)點(diǎn)選擇備份節(jié)點(diǎn)重新啟動(dòng)應(yīng)用或?qū)?yīng)用從當(dāng)前節(jié)點(diǎn)遷移到備份節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1所述的基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,其特征在于所述的控制節(jié)點(diǎn)選擇資源剩余最多的備份節(jié)點(diǎn)重新啟動(dòng)應(yīng)用或?qū)?yīng)用從當(dāng)前節(jié)點(diǎn)進(jìn)行遷移,至少包括步驟1配置資源因子。步驟2配置資源依賴因子;步驟3采集系統(tǒng)級(jí)診斷信息;步驟4計(jì)算與應(yīng)用相關(guān)的節(jié)點(diǎn)綜合資源剩余率;步驟5更新負(fù)載均衡前置節(jié)點(diǎn);步驟6判斷應(yīng)用被部署為高可用應(yīng)用還是負(fù)載均衡應(yīng)用,如果是高可用應(yīng)用,則選擇最適合該應(yīng)用運(yùn)行的備份節(jié)點(diǎn)作為新的運(yùn)行節(jié)點(diǎn);結(jié)束;步驟7如果是負(fù)載均衡應(yīng)用,則根據(jù)備用節(jié)點(diǎn)的權(quán)重部署該應(yīng)用,節(jié)點(diǎn)的權(quán)重越高,則分配的任務(wù)就越多;結(jié)束。
3.根據(jù)權(quán)利要求2所述的基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,其特征在于所述的步驟1具體包括步驟11為機(jī)群系統(tǒng)定義應(yīng)用程序的通用資源,并為每一種資源指定系統(tǒng)級(jí)診斷信息;步驟12為機(jī)群系統(tǒng)靜態(tài)配置節(jié)點(diǎn)信息,并在添加新節(jié)點(diǎn)時(shí),指明該節(jié)點(diǎn)包含的所有資源種類以及資源因子。
4.根據(jù)權(quán)利要求3所述的基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,其特征在于所述的系統(tǒng)級(jí)診斷信息至少包括處理器資源、內(nèi)存資源和網(wǎng)絡(luò)資源;其中,處理器利用率為處理器資源的系統(tǒng)級(jí)診斷信息,內(nèi)存利用率為內(nèi)存資源的系統(tǒng)級(jí)診斷信息,網(wǎng)卡實(shí)際傳輸速率/網(wǎng)卡最大傳輸速率為網(wǎng)絡(luò)資源的系統(tǒng)級(jí)診斷信息。
5.根據(jù)權(quán)利要求3所述的基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,其特征在于在設(shè)定節(jié)點(diǎn)的資源因子時(shí),至少需要執(zhí)行以下步驟步驟121選擇代表該節(jié)點(diǎn)資源性能水平的參數(shù)指標(biāo);步驟122根據(jù)如下公式計(jì)算該節(jié)點(diǎn)資源在系統(tǒng)中的平均性能參數(shù);P=(∑Pi/N)其中,P為該資源的平均性能參數(shù),Pi為i節(jié)點(diǎn)上該資源的實(shí)際性能參數(shù),N為機(jī)群中的節(jié)點(diǎn)數(shù)目;步驟123依據(jù)如下公式計(jì)算該節(jié)點(diǎn)資源的實(shí)際性能參數(shù)與平均性能參數(shù)的比值;P’=(P/P)其中,P’為該節(jié)點(diǎn)資源的實(shí)際性能參數(shù)與平均性能參數(shù)的比值;P為該節(jié)點(diǎn)資源在系統(tǒng)中的平均性能參數(shù);P為該節(jié)點(diǎn)資源的實(shí)際性能參數(shù);步驟124設(shè)定資源因子的數(shù)值,且該資源因子的值在1與P’之間。
6.根據(jù)權(quán)利要求2所述的基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,其特征在于所述的步驟4具體為根據(jù)如下公式計(jì)算節(jié)點(diǎn)針對(duì)應(yīng)用的綜合資源剩余率Σall_resourceremain*res_factor*dep_factor]]>其中,remain從節(jié)點(diǎn)上獲取的相應(yīng)資源的剩余率;res_factor為節(jié)點(diǎn)上被計(jì)算資源的資源因子;dep_factor為應(yīng)用對(duì)相應(yīng)資源的資源依賴因子;all_resource為應(yīng)用所關(guān)心的所有資源。
7.根據(jù)權(quán)利要求2所述的基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,其特征在于步驟5的具體操作為控制節(jié)點(diǎn)周期性地計(jì)算所有節(jié)點(diǎn)的資源剩余率,然后將它們直接或經(jīng)過處理后作為節(jié)點(diǎn)應(yīng)用權(quán)重發(fā)送給負(fù)載均衡應(yīng)用的前置節(jié)點(diǎn),用于更新已過時(shí)的節(jié)點(diǎn)應(yīng)用權(quán)重。
8.根據(jù)權(quán)利要求2所述的基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,其特征在于所述的前置節(jié)點(diǎn)將多個(gè)運(yùn)行相同應(yīng)用的節(jié)點(diǎn)在邏輯上組織為一個(gè)整體,并負(fù)責(zé)任務(wù)的分發(fā)。
9.根據(jù)權(quán)利要求2或8所述的基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,其特征在于所述的前置節(jié)點(diǎn)中保存有每個(gè)應(yīng)用運(yùn)行節(jié)點(diǎn)的權(quán)重,該前置節(jié)點(diǎn)進(jìn)行任務(wù)分發(fā)時(shí)選擇權(quán)重最高的節(jié)點(diǎn)。
10.根據(jù)權(quán)利要求9所述的基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,其特征在于所述的應(yīng)用運(yùn)行節(jié)點(diǎn)的權(quán)重根據(jù)該節(jié)點(diǎn)資源剩余量確定,剩余資源越多,相應(yīng)的權(quán)重值應(yīng)越大。
全文摘要
一種基于系統(tǒng)級(jí)診斷信息的負(fù)載衡量方法,由多個(gè)主機(jī)節(jié)點(diǎn)組成的機(jī)群系統(tǒng)將同一應(yīng)用部署在多臺(tái)主機(jī)節(jié)點(diǎn)上,任一時(shí)刻至少有一個(gè)節(jié)點(diǎn)上的該應(yīng)用處于運(yùn)行狀態(tài);控制節(jié)點(diǎn)選擇備份節(jié)點(diǎn)重新啟動(dòng)應(yīng)用或?qū)?yīng)用從當(dāng)前節(jié)點(diǎn)遷移到備份節(jié)點(diǎn)。通過以上的技術(shù)方案,本發(fā)明更真實(shí)地根據(jù)各節(jié)點(diǎn)之間的性能差異、負(fù)載差異與資源利用情況,使得故障的排除與接管、任務(wù)的分配更加合理,解決了傳統(tǒng)方法中對(duì)系統(tǒng)異構(gòu)性與應(yīng)用差異考慮不足的問題;利用該方法所計(jì)算出的資源剩余率為實(shí)現(xiàn)系統(tǒng)內(nèi)負(fù)載的均衡和整體性能的提高提供了堅(jiān)實(shí)的系統(tǒng)級(jí)數(shù)據(jù)信息保障。
文檔編號(hào)G06F15/16GK1512380SQ02159480
公開日2004年7月14日 申請(qǐng)日期2002年12月31日 優(yōu)先權(quán)日2002年12月31日
發(fā)明者李電森, 許正華, 姜曉東, 肖利民 申請(qǐng)人:聯(lián)想(北京)有限公司