一種集群調(diào)度方法、負(fù)載均衡器以及集群系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù),特別涉及一種集群調(diào)度方法、負(fù)載均衡器以及集群系統(tǒng)。
【背景技術(shù)】
[0002]集群(cluster)技術(shù)是一種較新的技術(shù),通過集群技術(shù),可以在付出較低成本的情況下獲得在性能、可靠性、靈活性方面的相對(duì)較高的收益。集群是一組相互獨(dú)立的、通過高速網(wǎng)絡(luò)互聯(lián)的計(jì)算機(jī),它們構(gòu)成了一個(gè)組,并以單一系統(tǒng)的模式加以管理。在集群系統(tǒng)中,主要包括負(fù)載均衡器(Load Balancer)、服務(wù)器池(Server Pool)和后端的存儲(chǔ)設(shè)備(Storage Device)組成。后端的服務(wù)器池通過負(fù)載均衡器映射給前端,前端看到的就是一個(gè)高性能、高可用的虛擬的服務(wù)器。一個(gè)客戶與集群相互作用時(shí),集群像是一個(gè)獨(dú)立的服務(wù)器。
[0003]在集群系統(tǒng)中,任務(wù)調(diào)度是集群系統(tǒng)中的核心處理。目前,集群調(diào)度的方式主要包括:當(dāng)出現(xiàn)任務(wù)調(diào)度時(shí),負(fù)載均衡器根據(jù)集群系統(tǒng)中各個(gè)節(jié)點(diǎn)當(dāng)前的負(fù)載數(shù)量,確定各個(gè)節(jié)點(diǎn)的負(fù)載大小,選擇負(fù)載最小的節(jié)點(diǎn),將任務(wù)分配給所選擇的節(jié)點(diǎn)。
[0004]可見,現(xiàn)有技術(shù)的集群調(diào)度方式不夠合理。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種集群調(diào)度方法、負(fù)載均衡器以及集群系統(tǒng),使得集群調(diào)度更為合理。
[0006]—種集群調(diào)度方法,應(yīng)用于集群中的負(fù)載均衡器,包括:
[0007]負(fù)載均衡器實(shí)時(shí)接收集群中的各節(jié)點(diǎn)發(fā)來的運(yùn)行信息;
[0008]負(fù)載均衡器對(duì)各節(jié)點(diǎn)的運(yùn)行信息進(jìn)行解析,確定每一個(gè)節(jié)點(diǎn)發(fā)來的運(yùn)行信息為正常運(yùn)行信息或非正常運(yùn)行信息;其中,當(dāng)運(yùn)行信息為正常運(yùn)行信息時(shí),該正常運(yùn)行信息中包括節(jié)點(diǎn)的處理器利用率;
[0009]當(dāng)接收到需分配的當(dāng)前任務(wù)時(shí),負(fù)載均衡器對(duì)發(fā)來正常運(yùn)行信息的各第一節(jié)點(diǎn),利用正常運(yùn)行信息中包括的節(jié)點(diǎn)的處理器利用率P,計(jì)算各第一節(jié)點(diǎn)的負(fù)載值;
[0010]根據(jù)計(jì)算的負(fù)載值,從各個(gè)第一節(jié)點(diǎn)中選擇一個(gè)節(jié)點(diǎn);
[0011]負(fù)載均衡器將當(dāng)前的任務(wù)分配給所選擇的節(jié)點(diǎn)。
[0012]可選地,所述利用正常運(yùn)行信息中包括的節(jié)點(diǎn)的處理器利用率計(jì)算各第一節(jié)點(diǎn)的負(fù)載值包括:
[0013]針對(duì)每一個(gè)第一節(jié)點(diǎn),所述負(fù)載均衡器利用公式Z = CXP計(jì)算對(duì)應(yīng)的負(fù)載值;
[0014]其中,Z表示對(duì)應(yīng)第一節(jié)點(diǎn)的負(fù)載值,C表示對(duì)應(yīng)第一節(jié)點(diǎn)當(dāng)前的連接數(shù),P表示對(duì)應(yīng)第一節(jié)點(diǎn)的處理器利用率。
[0015]可選地,所述計(jì)算各第一節(jié)點(diǎn)的負(fù)載值包括:
[0016]針對(duì)每一個(gè)第一節(jié)點(diǎn),所述負(fù)載均衡器利用公式Z = CXPXS計(jì)算對(duì)應(yīng)的負(fù)載值;
[0017]其中,Z表示對(duì)應(yīng)第一節(jié)點(diǎn)的負(fù)載值,C表示對(duì)應(yīng)第一節(jié)點(diǎn)當(dāng)前的連接數(shù),P表示對(duì)應(yīng)第一節(jié)點(diǎn)的處理器利用率,S表示所述當(dāng)前任務(wù)對(duì)應(yīng)的請(qǐng)求的加權(quán)值,該加權(quán)值根據(jù)所述當(dāng)前任務(wù)對(duì)應(yīng)的請(qǐng)求連接的類型預(yù)先設(shè)定。
[0018]優(yōu)選地,進(jìn)一步包括:所述負(fù)載均衡器建立白名單和灰名單;
[0019]每當(dāng)負(fù)載均衡器接收到一個(gè)節(jié)點(diǎn)發(fā)來的正常運(yùn)行信息時(shí),從灰名單中排除該節(jié)點(diǎn),并將該節(jié)點(diǎn)更新進(jìn)所述白名單;每當(dāng)負(fù)載均衡器接收到一個(gè)節(jié)點(diǎn)發(fā)來的非正常運(yùn)行信息時(shí),從灰名單中更新進(jìn)該節(jié)點(diǎn),并將該節(jié)點(diǎn)從所述白名單中排除;
[0020]所述根據(jù)計(jì)算的負(fù)載值從各個(gè)第一節(jié)點(diǎn)中選擇一個(gè)節(jié)點(diǎn)包括:從最新的白名單中,選擇所述負(fù)載值最小的節(jié)點(diǎn)。
[0021]—種集群調(diào)度方法,應(yīng)用于集群中的節(jié)點(diǎn),包括:
[0022]集群中的節(jié)點(diǎn)實(shí)時(shí)獲取自身的運(yùn)行信息,該運(yùn)行信息中包括該節(jié)點(diǎn)的處理器的利用率;
[0023]所述節(jié)點(diǎn)解析獲取的運(yùn)行信息,如果運(yùn)行正常,則將處理器的利用率攜帶在正常運(yùn)行信息中發(fā)送給集群中的負(fù)載均衡器,如果運(yùn)行異常,則將非正常運(yùn)行信息發(fā)送給集群中的負(fù)載均衡器。
[0024]可選地,所述運(yùn)行信息包括:電源狀態(tài)、網(wǎng)絡(luò)狀態(tài)、與存儲(chǔ)池連接情況、處理器利用率以及內(nèi)存利用率中的任意一個(gè)或多個(gè)。
[0025]一種負(fù)載均衡器,包括:
[0026]交互單元,用于實(shí)時(shí)接收集群中的各節(jié)點(diǎn)發(fā)來的運(yùn)行信息;
[0027]信息解析單元,用于對(duì)所述交互單元接收到的各節(jié)點(diǎn)的運(yùn)行信息進(jìn)行解析,確定每一個(gè)節(jié)點(diǎn)發(fā)來的運(yùn)行信息為正常運(yùn)行信息或非正常運(yùn)行信息;其中,當(dāng)運(yùn)行信息為正常運(yùn)行信息時(shí),該正常運(yùn)行信息中包括節(jié)點(diǎn)的處理器利用率;
[0028]調(diào)度處理單元,用于當(dāng)接收到需分配的當(dāng)前任務(wù)時(shí),根據(jù)所述信息解析單元的解析結(jié)果,對(duì)正常運(yùn)行信息對(duì)應(yīng)的各第一節(jié)點(diǎn),利用正常運(yùn)行信息中包括的節(jié)點(diǎn)的處理器利用率P,計(jì)算各第一節(jié)點(diǎn)的負(fù)載值;根據(jù)計(jì)算的負(fù)載值,從各個(gè)第一節(jié)點(diǎn)中選擇一個(gè)節(jié)點(diǎn),將當(dāng)前的任務(wù)分配給所選擇的節(jié)點(diǎn)。
[0029]較佳地,所述調(diào)度處理單元包括:
[0030]第一計(jì)算子單元,用于針對(duì)每一個(gè)第一節(jié)點(diǎn),具體利用公式Z = CXP計(jì)算每一個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)的負(fù)載值;其中,Z表示對(duì)應(yīng)第一節(jié)點(diǎn)的負(fù)載值,C表示對(duì)應(yīng)第一節(jié)點(diǎn)當(dāng)前的連接數(shù),P表示對(duì)應(yīng)第一節(jié)點(diǎn)的處理器利用率。
[0031]第二計(jì)算子單元,用于針對(duì)每一個(gè)第一節(jié)點(diǎn),具體利用公式Z = CXPXS計(jì)算每一個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)的負(fù)載值;其中,Z表示對(duì)應(yīng)第一節(jié)點(diǎn)的負(fù)載值,C表示對(duì)應(yīng)第一節(jié)點(diǎn)當(dāng)前的連接數(shù),P表示對(duì)應(yīng)第一節(jié)點(diǎn)的處理器利用率,S表示所述當(dāng)前任務(wù)對(duì)應(yīng)的請(qǐng)求的加權(quán)值,該加權(quán)值根據(jù)所述當(dāng)前任務(wù)對(duì)應(yīng)的請(qǐng)求連接的類型預(yù)先設(shè)定。
[0032]一種節(jié)點(diǎn),該節(jié)點(diǎn)位于集群中,包括:
[0033]運(yùn)行信息獲取單元,用于實(shí)時(shí)獲取所在節(jié)點(diǎn)的運(yùn)行信息,該運(yùn)行信息中包括該節(jié)點(diǎn)的處理器的利用率;
[0034]運(yùn)行信息處理單元,用于解析獲取的運(yùn)行信息,如果運(yùn)行正常,則將處理器的利用率攜帶在正常運(yùn)行信息中發(fā)送給集群中的負(fù)載均衡器,如果運(yùn)行異常,則將非正常運(yùn)行信息發(fā)送給集群中的負(fù)載均衡器。
[0035]一種集群系統(tǒng),包括:上述任意一種負(fù)載均衡器,以及至少兩個(gè)上述任意一種節(jié)點(diǎn)。
[0036]本發(fā)明實(shí)施例提供的集群調(diào)度方法、負(fù)載均衡器、節(jié)點(diǎn)以及集群系統(tǒng),通過集群中負(fù)載均衡器與節(jié)點(diǎn)雙向的配合處理,比如,節(jié)點(diǎn)獲取并上報(bào)自身是否運(yùn)行正常的信息以及處理器的利用率,負(fù)載均衡器根據(jù)節(jié)點(diǎn)上報(bào)的信息計(jì)算并選擇節(jié)點(diǎn)進(jìn)行任務(wù)分配,因此,解決僅由負(fù)載均衡器進(jìn)行單方面處理的不合理性,使得集群調(diào)度更為合理。
【附圖說明】
[0037]圖1是本發(fā)明一個(gè)實(shí)施例中應(yīng)用于負(fù)載均衡器的集群調(diào)度方法的流程圖。
[0038]圖2是本發(fā)明另一個(gè)實(shí)施例中應(yīng)用于節(jié)點(diǎn)的集群調(diào)度方法的流程圖。
[0039]圖3是本發(fā)明一個(gè)實(shí)施例中負(fù)載均衡器與節(jié)點(diǎn)配合完成集群調(diào)度的流程圖。
[0040]圖4是本發(fā)明一個(gè)實(shí)施例中負(fù)載均衡器的結(jié)構(gòu)示意圖。
[0041]圖5是本發(fā)明一個(gè)實(shí)施例中節(jié)點(diǎn)的結(jié)構(gòu)示意圖。
[0042]圖6是本發(fā)明一個(gè)實(shí)施例中集群系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0043]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0044]本發(fā)明一個(gè)實(shí)施例提出了一種集群調(diào)度方法,應(yīng)用于集群中的負(fù)載均衡器,參見圖1,該方法包括:
[0045]步驟101:負(fù)載均衡器實(shí)時(shí)接收集群中的各節(jié)點(diǎn)發(fā)來的運(yùn)行信息;
[0046]步驟102:負(fù)載均衡器對(duì)各節(jié)點(diǎn)的運(yùn)行信息進(jìn)行解析,確定每一個(gè)節(jié)點(diǎn)發(fā)來的運(yùn)行信息為正常運(yùn)行信息或非正常運(yùn)行信息;其中,當(dāng)運(yùn)行信息為正常運(yùn)行信息時(shí),該正常運(yùn)行信息中包括節(jié)點(diǎn)的處理器利用率;
[0047]步驟103:當(dāng)接收到需分配的當(dāng)前任務(wù)時(shí),負(fù)載均衡器對(duì)發(fā)來正常運(yùn)行信息的各第一節(jié)點(diǎn),利用正常運(yùn)行信息中包括的節(jié)點(diǎn)的處理器利用率P,計(jì)算各第一節(jié)點(diǎn)的負(fù)載值;
[0048]步驟104:根據(jù)計(jì)算的負(fù)載值,從各個(gè)第一節(jié)點(diǎn)中選擇一個(gè)節(jié)點(diǎn);
[0049]步驟105:負(fù)載均衡器將當(dāng)前的任務(wù)分配給所選擇的節(jié)點(diǎn)。
[0050]可見,在本發(fā)明的上述實(shí)施例中,負(fù)載均衡器不是直接根據(jù)自身已有的信息來直接選擇將當(dāng)前的任務(wù)分配給集群中的哪一個(gè)節(jié)點(diǎn),而是由節(jié)點(diǎn)自身統(tǒng)計(jì)上報(bào)運(yùn)行是否正常的信息,并包括節(jié)點(diǎn)的處理器利用率,這樣,負(fù)載均衡器在選擇節(jié)點(diǎn)時(shí),是與節(jié)點(diǎn)配合,通過負(fù)載均衡器與節(jié)點(diǎn)的雙向處理,完成了任務(wù)分配的過程,因此,調(diào)度過程更為合理。
[0051]在本發(fā)明一個(gè)實(shí)施例中,可以根據(jù)節(jié)點(diǎn)的當(dāng)前連接數(shù)以及處理器利用率來計(jì)算節(jié)點(diǎn)的負(fù)載值,此時(shí),步驟10