一種服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu)及其使用方法
【專利摘要】一種服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu),包括由服務(wù)器組成的服務(wù)器集群及從集群中取出的一臺(tái)或兩臺(tái)服務(wù)器作為均衡器,在集群剩余的服務(wù)器上均安裝桉樹云作為云計(jì)算平臺(tái),取剩余服務(wù)器中的一臺(tái)作為云控制器和集群控制器,一臺(tái)作為存儲(chǔ)服務(wù)器,剩下的服務(wù)器作為節(jié)點(diǎn)控制器,每個(gè)節(jié)點(diǎn)控制器內(nèi)設(shè)置多個(gè)虛擬機(jī),每個(gè)開啟的虛擬機(jī)中部署web服務(wù)器軟件和一個(gè)監(jiān)聽(tīng)器,并制作每個(gè)虛擬機(jī)的鏡像,監(jiān)聽(tīng)器定時(shí)獲取、轉(zhuǎn)發(fā)自身監(jiān)聽(tīng)的虛擬機(jī)的CPU占用率給均衡器,均衡器上安裝檢測(cè)器和代理器,檢測(cè)器根據(jù)監(jiān)聽(tīng)器發(fā)來(lái)的CPU占用率判斷服務(wù)器集群的CPU占用率發(fā)展趨勢(shì)及是否增加或減少虛擬機(jī),代理器將用戶訪問(wèn)集群的請(qǐng)求均衡地轉(zhuǎn)發(fā)到各個(gè)開啟的虛擬機(jī)上。
【專利說(shuō)明】一種服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu)及其使用方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu)及其使用方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的進(jìn)ー步發(fā)展,人們對(duì)網(wǎng)絡(luò)的需求日益増加,對(duì)網(wǎng)絡(luò)傳輸速度的需求尤其緊迫。為了解決這種需求,各個(gè)網(wǎng)絡(luò)服務(wù)商,例如視頻服務(wù)商、捜索服務(wù)商都使用了服務(wù)器集群,而服務(wù)器集群上的負(fù)載均衡就成為了問(wèn)題的焦點(diǎn),目前已經(jīng)有一些解決這ー負(fù)載均衡問(wèn)題的普遍方法,如使用LVS以及LanderBalance。
[0003]LVSCLinux Virtual Server,簡(jiǎn)稱LVS)是一個(gè)開源的軟件,即Linux虛擬服務(wù)器,是ー個(gè)服務(wù)器集群系統(tǒng)。LVS集群采用IP負(fù)載均衡技術(shù)和基于內(nèi)容請(qǐng)求分發(fā)技術(shù),將請(qǐng)求均衡地轉(zhuǎn)發(fā)到不同的服務(wù)器上進(jìn)行執(zhí)行,且自動(dòng)屏蔽掉故障服務(wù)器。
[0004]LanderBalance是ー款企業(yè)級(jí)負(fù)載均衡軟件,在由多臺(tái)服務(wù)器以對(duì)稱或功能等方式組成的一個(gè)服務(wù)器集合中,LanderBalance通過(guò)Active活性負(fù)載均衡技術(shù)庫(kù)將外部發(fā)送來(lái)的請(qǐng)求均勻地分配到集合結(jié)構(gòu)中的某一臺(tái)服務(wù)器上,而接收到請(qǐng)求的服務(wù)器在對(duì)請(qǐng)求進(jìn)行處理后通過(guò)負(fù)載服務(wù)器回應(yīng)客戶的請(qǐng)求。
[0005]目前已有的技術(shù)雖然在一定程度上可以解決對(duì)服務(wù)器集群的需求,但是仍有兩個(gè)重要的問(wèn)題沒(méi)有解決。其一,已有的負(fù)載均衡解決方法均不能實(shí)現(xiàn)在任何操作系統(tǒng)及web服務(wù)器軟件上通用,如LVS要求Linux操作系統(tǒng),而有些負(fù)載均衡軟件對(duì)服務(wù)器軟件有要求,如Nginx服務(wù)器;其ニ,已有的負(fù)載均衡解決方法都是基于服務(wù)器數(shù)目固定的情況,不能實(shí)現(xiàn)服務(wù)器數(shù)目的自動(dòng)增加或者減少,如果想要増加或者減少服務(wù)器數(shù)目就需要管理員進(jìn)行手動(dòng)操作,而人的判斷存在滯后性,且管理中也有可能存在疏漏,使得服務(wù)器數(shù)目不能夠及時(shí)増加或者減少而使得服務(wù)陷入癱瘓。
【發(fā)明內(nèi)容】
[0006]本發(fā)明首要解決的技術(shù)問(wèn)題是針對(duì)上述現(xiàn)有技術(shù)提供ー種通用的服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu),這種構(gòu)架不論服務(wù)器集群使用何種操作系統(tǒng)、何種web服務(wù)器軟件都可以實(shí)現(xiàn)動(dòng)態(tài)負(fù)載均衡,并且可以自動(dòng)地、弾性地増加或者減少服務(wù)器數(shù)目。
[0007]本發(fā)明進(jìn)一歩要解決的技術(shù)問(wèn)題是針對(duì)上述現(xiàn)有技術(shù)提供一種實(shí)現(xiàn)上述服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu)的使用方法。
[0008]本發(fā)明解決上述首要技術(shù)問(wèn)題所采用的技術(shù)方案是:一種服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu),包括由n臺(tái)服務(wù)器組成的服務(wù)器集群,其特征在于,在服務(wù)器集群中抽出一臺(tái)或兩臺(tái)服務(wù)器作為均衡器,在除均衡器外的其余n-1或n-2臺(tái)服務(wù)器上均安裝桉樹云平臺(tái)作為云計(jì)算平臺(tái),在組成云計(jì)算平臺(tái)的服務(wù)器中,一臺(tái)服務(wù)器作為云控制器(CLC)和集群控制器(CC),一臺(tái)服務(wù)器作為存儲(chǔ)服務(wù)器(SC),剩下的服務(wù)器作為節(jié)點(diǎn)控制器(NC),云計(jì)算平臺(tái)中的每個(gè)節(jié)點(diǎn)控制器(NC)內(nèi)設(shè)置多個(gè)虛擬機(jī),然后在云計(jì)算平臺(tái)中每個(gè)開啟的虛擬機(jī)中均部署web服務(wù)器軟件和一個(gè)監(jiān)聽(tīng)器,同時(shí)制作每個(gè)虛擬機(jī)的鏡像,所述監(jiān)聽(tīng)器用于定時(shí)獲取自身監(jiān)聽(tīng)的虛擬機(jī)的CPU占用率狀態(tài)并將該虛擬機(jī)的CPU占用率狀態(tài)發(fā)送給均衡器;
[0009]均衡器上安裝檢測(cè)器和代理器,其中檢測(cè)器用來(lái)收集每個(gè)監(jiān)聽(tīng)器發(fā)來(lái)的虛擬機(jī)的CPU占用率狀態(tài),并根據(jù)這些狀態(tài)判斷整個(gè)服務(wù)器集群的CPU占用率,然后根據(jù)整個(gè)服務(wù)器集群的CPU占用率狀態(tài)的發(fā)展趨勢(shì)判斷是否需要增加或者減少虛擬機(jī);代理器用于管理所有開啟的虛擬機(jī)的IP地址,并將用戶的訪問(wèn)請(qǐng)求均衡地轉(zhuǎn)發(fā)到各個(gè)虛擬機(jī)上;
[0010]用戶訪問(wèn)服務(wù)器集群的時(shí)候,通過(guò)所述代理器將用戶的訪問(wèn)請(qǐng)求均衡地轉(zhuǎn)發(fā)到各個(gè)開啟的虛擬機(jī)上。
[0011]作為改進(jìn),所述檢測(cè)器中設(shè)置有兩個(gè)變量low和up,這兩個(gè)變量初始化為O,監(jiān)聽(tīng)器按照固定時(shí)間間隔發(fā)送自身監(jiān)聽(tīng)到的虛擬機(jī)的CPU占用率狀態(tài),檢測(cè)器收到所有開啟的虛擬機(jī)的CPU占用率狀態(tài)后,取所有虛擬機(jī)的CPU占用率狀態(tài)的平均值作為整個(gè)服務(wù)器集群的CPU占用率,并對(duì)整個(gè)服務(wù)器集群的CPU占用率分別設(shè)置預(yù)定高閾值和預(yù)定低閾值:如果發(fā)現(xiàn)整個(gè)服務(wù)器集群的CPU占用率超過(guò)預(yù)定高閾值,則將變量up的值賦1,如果發(fā)現(xiàn)整個(gè)服務(wù)器集群的CPU占用率低于預(yù)定低閾值,則將變量low的值賦I ;待下一個(gè)固定時(shí)間間隔后,再次獲得整個(gè)服務(wù)器集群的CPU占用率后,如果整個(gè)服務(wù)器集群的CPU占用率不再超過(guò)預(yù)定高閾值或者低于預(yù)定低閾值時(shí),則將變量UP和變量low的值均減I ;如果整個(gè)服務(wù)器集群的CPU占用率仍然繼續(xù)高于預(yù)定高閾值時(shí),則將變量up的值加1,如果整個(gè)服務(wù)器集群的CPU占用率仍然繼續(xù)低于預(yù)定低閾值時(shí),則將變量low的值加I ;當(dāng)變量up的值等于第一預(yù)定倍數(shù)值時(shí),檢測(cè)器通過(guò)調(diào)用桉樹云平臺(tái)的接口應(yīng)用程序開啟一臺(tái)虛擬機(jī),當(dāng)變量low的值等于第二預(yù)定倍數(shù)值時(shí),檢測(cè)器通過(guò)調(diào)用桉樹云平臺(tái)的應(yīng)用接口程序關(guān)閉一臺(tái)虛擬機(jī)。
[0012]作為優(yōu)選,所述預(yù)定高閾值設(shè)置為50%,所述預(yù)定低閾值設(shè)置為30%,所述第一預(yù)定倍數(shù)值設(shè)置為3?5,所述第二預(yù)定倍數(shù)值設(shè)置為-3?-5。
[0013]本發(fā)明解決進(jìn)一步技術(shù)問(wèn)題所采用的技術(shù)方案是:一種具有上述結(jié)構(gòu)的服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu)的使用方法,其特征在于,具有η臺(tái)服務(wù)器的運(yùn)營(yíng)商客戶端按照上述提到的方式構(gòu)架自身的η臺(tái)服務(wù)器,運(yùn)營(yíng)商客戶端開啟云計(jì)算平臺(tái)的服務(wù)程序后:
[0014](I)、監(jiān)聽(tīng)器按照固定時(shí)間間隔獲取自身監(jiān)聽(tīng)的虛擬機(jī)的CPU占用率狀態(tài),并將獲取到的CPU占用率狀態(tài)發(fā)送給檢測(cè)器;
[0015](2)、檢測(cè)器中設(shè)置兩個(gè)變量low和up,這兩個(gè)變量初始化為0,檢測(cè)器收到所有開啟的虛擬機(jī)的CPU占用率狀態(tài)后,取所有虛擬機(jī)的CPU占用率狀態(tài)的平均值作為整個(gè)服務(wù)器集群的CPU占用率,并對(duì)整個(gè)服務(wù)器集群的CPU占用率分別設(shè)置預(yù)定高閾值和預(yù)定低閾值:如果發(fā)現(xiàn)整個(gè)服務(wù)器集群的CPU占用率超過(guò)預(yù)定高閾值,則將變量up的值賦1,如果發(fā)現(xiàn)整個(gè)服務(wù)器集群的CPU占用率低于預(yù)定低閾值,則將變量low的值賦I ;待下一個(gè)固定時(shí)間間隔后,再次獲得整個(gè)服務(wù)器集群的CPU占用率后,如果整個(gè)服務(wù)器集群的CPU占用率不再超過(guò)預(yù)定高閾值或者低于預(yù)定低閾值時(shí),則將變量UP和變量low的值均減I ;如果整個(gè)服務(wù)器集群的CPU占用率仍然繼續(xù)高于預(yù)定高閾值時(shí),則將變量up的值加1,如果整個(gè)服務(wù)器集群的CPU占用率仍然繼續(xù)低于預(yù)定低閾值時(shí),則將變量low的值加I ;當(dāng)變量up的值等于第一預(yù)定倍數(shù)值時(shí),檢測(cè)器通過(guò)調(diào)用桉樹云平臺(tái)的接口應(yīng)用程序開啟一臺(tái)虛擬機(jī),當(dāng)變量low的值等于第二預(yù)定倍數(shù)值時(shí),檢測(cè)器通過(guò)調(diào)用桉樹云平臺(tái)的應(yīng)用接口程序關(guān)閉一臺(tái)虛擬機(jī);
[0016](3)、代理器將用戶的訪問(wèn)請(qǐng)求均衡地轉(zhuǎn)發(fā)到各個(gè)開啟的虛擬機(jī)上:
[0017]所述代理器使用Haproxy負(fù)載均衡工具將用戶的訪問(wèn)請(qǐng)求均衡地轉(zhuǎn)發(fā)到各個(gè)開啟的虛擬機(jī)上。
[0018]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
[0019](I)、本發(fā)明提供的架構(gòu)能夠有效地整合服務(wù)器集群資源,通過(guò)在服務(wù)器集群中搭建云計(jì)算平臺(tái),同時(shí)在均衡器上安裝檢測(cè)器和代理器,從而為云計(jì)算平臺(tái)實(shí)現(xiàn)負(fù)載均衡;
[0020](2)、本發(fā)明提供的架構(gòu)能夠兼容任何種類的操作系統(tǒng)以及服務(wù)器軟件;
[0021](3)、本發(fā)明提供的架構(gòu)能夠?qū)崿F(xiàn)彈性地負(fù)載均衡,在不需要人工干預(yù)的情況下,如果訪問(wèn)量變化過(guò)大,當(dāng)前開啟的虛擬機(jī)承擔(dān)的負(fù)載吃力或者空閑時(shí),服務(wù)器集群能夠自動(dòng)增加或者減少虛擬機(jī)數(shù)目。
【專利附圖】
【附圖說(shuō)明】
[0022]圖1是本發(fā)明實(shí)施例中服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu)的硬件結(jié)構(gòu)示意圖;
[0023]圖2是本發(fā)明實(shí)施例中服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu)的使用方法原理圖。
【具體實(shí)施方式】
[0024]以下結(jié)合附圖實(shí)施例對(duì)本發(fā)明作進(jìn)ー步詳細(xì)描述。
[0025]如圖1所示,本實(shí)施例提供的一種服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu),包括:
[0026]由n臺(tái)服務(wù)器組成的服務(wù)器集群,在服務(wù)器集群中抽出一臺(tái)或兩臺(tái)服務(wù)器作為均衡器,在除均衡器外的其余n-1或n-2臺(tái)服務(wù)器上均安裝桉樹云平臺(tái)作為云計(jì)算平臺(tái):
[0027]桉樹云平臺(tái)(英文簡(jiǎn)稱為Eucalyptus)是ー種開源的軟件基礎(chǔ)結(jié)構(gòu),即服務(wù)”私有云計(jì)算平臺(tái),用來(lái)通過(guò)計(jì)算集群或工作站群實(shí)現(xiàn)彈性地、實(shí)用地云計(jì)算。Eucalyptus云平臺(tái)包括云控制器(Cloud Controller,簡(jiǎn)稱CLC)、集群控制器(Cluster Controller,簡(jiǎn)稱CC)、節(jié)點(diǎn)控制器(Node Controller,簡(jiǎn)稱NC)、Walrus控制器及存儲(chǔ)服務(wù)器(StorageController,簡(jiǎn)稱SC)5個(gè)主要構(gòu)件,采用SOAP或REST等消息傳遞協(xié)議,相互協(xié)作共同提供云服務(wù),其中:
[0028]云控制器(CLC)是主要的控制器構(gòu)件,負(fù)責(zé)管理整個(gè)系統(tǒng),是Eucalyptus云的對(duì)外“窗ロ,,;
[0029]集群控制器(CC)負(fù)責(zé)管理一個(gè)集群中的虛擬實(shí)例網(wǎng)絡(luò),它將開啟虛擬實(shí)例的請(qǐng)求路由到具有可用資源的節(jié)點(diǎn)控制器(NC);
[0030]節(jié)點(diǎn)控制器(NC)負(fù)責(zé)控制主機(jī)操作系統(tǒng)及相應(yīng)的系統(tǒng)管理程序(Hypervisor),在虛擬實(shí)例(根據(jù)來(lái)自CC的請(qǐng)求實(shí)例化)的每個(gè)機(jī)器上必須運(yùn)行ー個(gè)NC實(shí)例,每個(gè)節(jié)點(diǎn)控制器(NC)可以根據(jù)其自身CPU的狀態(tài)開啟多個(gè)虛擬機(jī),如一個(gè)節(jié)點(diǎn)控制器(NC)的CPU為4核處理器,那么該節(jié)點(diǎn)控制器(NC)最多可開啟4臺(tái)虛擬機(jī),一個(gè)節(jié)點(diǎn)控制器(NC)的CPU為16核處理器,那么該節(jié)點(diǎn)控制器(NC)最多可開啟16臺(tái)虛擬機(jī);
[0031]Walrus控制器是ー個(gè)與Amazon S3類似的存儲(chǔ)服務(wù),負(fù)責(zé)管理對(duì)Eucalyptus云平臺(tái)內(nèi)的虛擬機(jī)映像和用戶數(shù)據(jù)存儲(chǔ)服務(wù)的訪問(wèn),請(qǐng)求通過(guò)基于SOAP或REST的接ロ傳遞至Walrus控制器;[0032]存儲(chǔ)服務(wù)器(SC)主要負(fù)責(zé)實(shí)現(xiàn)Amazon的S3接口,與Walrus控制器聯(lián)合工作,用于存儲(chǔ)和訪問(wèn)虛擬機(jī)映像、內(nèi)核映像、RAM磁盤映像和用戶數(shù)據(jù)。其中,虛擬機(jī)映像可以是公共的,也可以是私有的,并最初以壓縮和加密的格式存儲(chǔ),這些映像只有在某個(gè)節(jié)點(diǎn)需要啟動(dòng)一個(gè)新的實(shí)例并請(qǐng)求訪問(wèn)此映像時(shí)才會(huì)被解密。
[0033]在組成云計(jì)算平臺(tái)的服務(wù)器中,一臺(tái)服務(wù)器作為云控制器(CLC)和集群控制器(CC),一臺(tái)服務(wù)器作為存儲(chǔ)服務(wù)器(SC),剩下的服務(wù)器作為節(jié)點(diǎn)控制器(NC),云計(jì)算平臺(tái)中的每個(gè)節(jié)點(diǎn)控制器(NC)能設(shè)置多個(gè)虛擬機(jī),然后在云計(jì)算平臺(tái)中每個(gè)開啟的虛擬機(jī)中均部署web服務(wù)器軟件和一個(gè)監(jiān)聽(tīng)器,同時(shí)制作每個(gè)虛擬機(jī)的鏡像,所述監(jiān)聽(tīng)器用于定時(shí)獲取自身監(jiān)聽(tīng)的虛擬機(jī)的CPU占用率狀態(tài)并將該虛擬機(jī)的CPU占用率狀態(tài)發(fā)送給均衡器;
[0034]在均衡器上安裝檢測(cè)器和代理器:(I)、檢測(cè)器用來(lái)收集每個(gè)監(jiān)聽(tīng)器發(fā)來(lái)的關(guān)于自身監(jiān)聽(tīng)到的虛擬機(jī)的CPU占用率狀態(tài),并根據(jù)這些狀態(tài)判斷整個(gè)服務(wù)器集群的CPU占用率,然后根據(jù)整個(gè)服務(wù)器集群的CPU占用率狀態(tài)的發(fā)展趨勢(shì)判斷是否需要增加或減少虛擬機(jī):
(2)、代理器用于管理所有開啟的虛擬機(jī)的IP地址,并將用戶的訪問(wèn)請(qǐng)求均衡地轉(zhuǎn)發(fā)到各個(gè)虛擬機(jī)上;
[0035]等用戶訪問(wèn)服務(wù)器集群的時(shí)候,通過(guò)所述代理器將用戶的訪問(wèn)請(qǐng)求均衡地轉(zhuǎn)發(fā)到各個(gè)開啟的虛擬機(jī)上,所述代理器優(yōu)選為HapiOxy負(fù)載均衡工具。
[0036]檢測(cè)器根據(jù)整個(gè)服務(wù)器集群的CPU占用率對(duì)增加或減少虛擬機(jī)的判斷操作如下:
[0037]檢測(cè)器中設(shè)置有兩個(gè)變量low和up,將這兩個(gè)變量初始化為0,檢測(cè)器收到所有開啟的虛擬機(jī)的CPU占用率狀態(tài)后,取所有虛擬機(jī)的CPU占用率狀態(tài)的平均值作為整個(gè)服務(wù)器集群的CPU占用率,并對(duì)整個(gè)服務(wù)器集群的CPU占用率分別設(shè)置預(yù)定高閾值和預(yù)定低閾值:如果發(fā)現(xiàn)整個(gè)服務(wù)器集群的CPU占用率超過(guò)預(yù)定高閾值,則將變量up的值賦1,如果發(fā)現(xiàn)整個(gè)服務(wù)器集群的CPU占用率低于預(yù)定低閾值,則將變量low的值賦I ;待下一個(gè)固定時(shí)間間隔后,再次獲得整個(gè)服務(wù)器集群的CPU占用率后,如果整個(gè)服務(wù)器集群的CPU占用率不再超過(guò)預(yù)定高閾值或者低于預(yù)定低閾值時(shí),則將變量UP和變量low的值均減I ;如果整個(gè)服務(wù)器集群的CPU占用率仍然繼續(xù)高于預(yù)定高閾值時(shí),則將變量up的值加1,如果整個(gè)服務(wù)器集群的CPU占用率仍然繼續(xù)低于預(yù)定低閾值時(shí),則將變量low的值加I ;當(dāng)變量up的值等于第一預(yù)定倍數(shù)值時(shí),檢測(cè)器通過(guò)調(diào)用桉樹云平臺(tái)的接口應(yīng)用程序開啟一臺(tái)虛擬機(jī),當(dāng)變量low的值等于第二預(yù)定倍數(shù)值時(shí),檢測(cè)器通過(guò)調(diào)用桉樹云平臺(tái)的應(yīng)用接口程序關(guān)閉一臺(tái)虛擬機(jī)。
[0038]本實(shí)施例中,所述預(yù)定高閾值設(shè)置為50%,所述預(yù)定低閾值設(shè)置為30%,所述第一預(yù)定倍數(shù)值設(shè)置為3?5,所述第二預(yù)定倍數(shù)值設(shè)置為-3?-5。
[0039]下面對(duì)服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu)的使用方法進(jìn)行詳細(xì)說(shuō)明,如圖2所示:
[0040]具有η臺(tái)服務(wù)器的運(yùn)營(yíng)商客戶端按照上述服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu)構(gòu)架自身的η臺(tái)服務(wù)器,運(yùn)營(yíng)商客戶端開啟云計(jì)算平臺(tái)的服務(wù)程序后:
[0041](I)、監(jiān)聽(tīng)器按照固定時(shí)間間隔獲取自身監(jiān)聽(tīng)的虛擬機(jī)的CPU占用率狀態(tài),并將獲取到的CPU占用率狀態(tài)發(fā)送給檢測(cè)器;
[0042](2)、在檢測(cè)器中設(shè)置兩個(gè)變量low和up,將這兩個(gè)變量初始化為0,檢測(cè)器收到所有開啟的虛擬機(jī)的CPU占用率狀態(tài)后,取所有虛擬機(jī)的CPU占用率狀態(tài)的平均值作為整個(gè)服務(wù)器集群的CPU占用率,并對(duì)整個(gè)服務(wù)器集群的CPU占用率分別設(shè)置預(yù)定高閾值和預(yù)定低閾值:如果發(fā)現(xiàn)整個(gè)服務(wù)器集群的CPU占用率超過(guò)預(yù)定高閾值,則將變量up的值賦1,如果發(fā)現(xiàn)整個(gè)服務(wù)器集群的CPU占用率低于預(yù)定低閾值,則將變量low的值賦I ;待下ー個(gè)固定時(shí)間間隔后,再次獲得整個(gè)服務(wù)器集群的CPU占用率后,如果整個(gè)服務(wù)器集群的CPU占用率不再超過(guò)預(yù)定高閾值或者低于預(yù)定低閾值吋,則將變量up和變量low的值均減I ;如果整個(gè)服務(wù)器集群的CPU占用率仍然繼續(xù)高于預(yù)定高閾值時(shí),則將變量up的值加1,如果整個(gè)服務(wù)器集群的CPU占用率仍然繼續(xù)低于預(yù)定低閾值吋,則將變量low的值加I ;當(dāng)變量up的值等于第一預(yù)定倍數(shù)值時(shí),檢測(cè)器通過(guò)調(diào)用桉樹云平臺(tái)的接ロ應(yīng)用程序開啟一臺(tái)虛擬機(jī),當(dāng)變量low的值等于第二預(yù)定倍數(shù)值時(shí),檢測(cè)器通過(guò)調(diào)用桉樹云平臺(tái)的應(yīng)用接ロ程序關(guān)閉一臺(tái)虛擬機(jī);
[0043]作為優(yōu)選,所述預(yù)定高閾值設(shè)置為50%,所述預(yù)定低閾值設(shè)置為30%,所述第一預(yù)定倍數(shù)值設(shè)置為3?5,所述第二預(yù)定倍數(shù)值設(shè)置為-3?-5 ;
[0044](3)、代理器將用戶的訪問(wèn)請(qǐng)求均衡地轉(zhuǎn)發(fā)到各個(gè)開啟的虛擬機(jī)上:
[0045]在步驟(3)中,代理器使用Haproxy負(fù)載均衡工具將用戶的訪問(wèn)請(qǐng)求均衡地轉(zhuǎn)發(fā)到各個(gè)開啟的虛擬機(jī)上。
【權(quán)利要求】
1.一種服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu),包括由η臺(tái)服務(wù)器組成的服務(wù)器集群,其特征在于,在服務(wù)器集群中抽出一臺(tái)或兩臺(tái)服務(wù)器,作為均衡器,在除均衡器外的其余η-1或η-2臺(tái)服務(wù)器上均安裝桉樹云平臺(tái)作為云計(jì)算平臺(tái),在組成云計(jì)算平臺(tái)的服務(wù)器中,一臺(tái)服務(wù)器作為云控制器(CLC)和集群控制器(CC),一臺(tái)服務(wù)器作為存儲(chǔ)服務(wù)器(SC),剩下的服務(wù)器作為節(jié)點(diǎn)控制器(NC),云計(jì)算平臺(tái)中的每個(gè)節(jié)點(diǎn)控制器(NC)內(nèi)設(shè)置多個(gè)虛擬機(jī),然后在云計(jì)算平臺(tái)中每個(gè)開啟的虛擬機(jī)中均部署web服務(wù)器軟件和一個(gè)監(jiān)聽(tīng)器,同時(shí)制作每個(gè)虛擬機(jī)的鏡像,所述監(jiān)聽(tīng)器用于定時(shí)獲取自身監(jiān)聽(tīng)的虛擬機(jī)的CPU占用率狀態(tài)并將該虛擬機(jī)的CPU占用率狀態(tài)發(fā)送給均衡器; 在均衡器上安裝檢測(cè)器和代理器,其中檢測(cè)器用來(lái)收集每個(gè)監(jiān)聽(tīng)器發(fā)來(lái)的關(guān)于自身監(jiān)聽(tīng)到的虛擬機(jī)的CPU占用率狀態(tài),并根據(jù)這些狀態(tài)判斷整個(gè)服務(wù)器集群的CPU占用率,然后根據(jù)整個(gè)服務(wù)器集群的CPU占用率狀態(tài)的發(fā)展趨勢(shì)判斷是否需要增加或者減少虛擬機(jī);代理器用于管理所有開啟的虛擬機(jī)的IP地址,并將用戶的訪問(wèn)請(qǐng)求均衡地轉(zhuǎn)發(fā)到各個(gè)虛擬機(jī)上; 用戶訪問(wèn)服務(wù)器集群的時(shí)候,通過(guò)所述代理器將用戶的訪問(wèn)請(qǐng)求均衡地轉(zhuǎn)發(fā)到各個(gè)開啟的虛擬機(jī)上。
2.根據(jù)權(quán)利要求1所述的服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu),其特征在于,所述檢測(cè)器中設(shè)置有兩個(gè)變量low和up,這兩個(gè)變 量初始化為0,檢測(cè)器收到所有開啟的虛擬機(jī)的CPU占用率狀態(tài)后,取所有虛擬機(jī)的CPU占用率狀態(tài)的平均值作為整個(gè)服務(wù)器集群的CPU占用率,并對(duì)整個(gè)服務(wù)器集群的CPU占用率分別設(shè)置預(yù)定高閾值和預(yù)定低閾值:如果發(fā)現(xiàn)整個(gè)服務(wù)器集群的CPU占用率超過(guò)預(yù)定高閾值,則將變量up的值賦1,如果發(fā)現(xiàn)整個(gè)服務(wù)器集群的CPU占用率低于預(yù)定低閾值,則將變量low的值賦I ;待下一個(gè)固定時(shí)間間隔后,再次獲得整個(gè)服務(wù)器集群的CPU占用率后,如果整個(gè)服務(wù)器集群的CPU占用率不再超過(guò)預(yù)定高閾值或者低于預(yù)定低閾值時(shí),則將變量up和變量low的值均減I ;如果整個(gè)服務(wù)器集群的CPU占用率仍然繼續(xù)高于預(yù)定高閾值時(shí),則將變量up的值加1,如果整個(gè)服務(wù)器集群的CPU占用率仍然繼續(xù)低于預(yù)定低閾值時(shí),則將變量low的值加I ;當(dāng)變量up的值等于第一預(yù)定倍數(shù)值時(shí),檢測(cè)器通過(guò)調(diào)用桉樹云平臺(tái)的接口應(yīng)用程序開啟一臺(tái)虛擬機(jī),當(dāng)變量low的值等于第二預(yù)定倍數(shù)值時(shí),檢測(cè)器通過(guò)調(diào)用桉樹云平臺(tái)的應(yīng)用接口程序關(guān)閉一臺(tái)虛擬機(jī)。
3.根據(jù)權(quán)利要求2所述的服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu),其特征在于,所述預(yù)定高閾值設(shè)置為50%,所述預(yù)定低閾值設(shè)置為30%,所述第一預(yù)定倍數(shù)值設(shè)置為3~5,所述第二預(yù)定倍數(shù)值設(shè)置為-3~-5。
4.一種如權(quán)利要求1所述的服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu)的使用方法,其特征在于,具有η臺(tái)服務(wù)器的運(yùn)營(yíng)商客戶端按照權(quán)利要求1提到的方式構(gòu)架自身的η臺(tái)服務(wù)器,運(yùn)營(yíng)商客戶端開啟云計(jì)算平臺(tái)的服務(wù)程序后: (1)、所述監(jiān)聽(tīng)器按照固定時(shí)間間隔獲取自身監(jiān)聽(tīng)的虛擬機(jī)的CPU占用率狀態(tài),并將獲取到的CPU占用率狀態(tài)發(fā)送給檢測(cè)器; (2)、檢測(cè)器中設(shè)置有兩個(gè)變量low和up,這兩個(gè)變量初始化為0,檢測(cè)器收到所有開啟的虛擬機(jī)的CPU占用率狀態(tài)后,取所有虛擬機(jī)的CPU占用率狀態(tài)的平均值作為整個(gè)服務(wù)器集群的CPU占用率,并對(duì)整個(gè)服務(wù)器集群的CPU占用率分別設(shè)置預(yù)定高閾值和預(yù)定低閾值:如果發(fā)現(xiàn)整個(gè)服務(wù)器集群的CPU占用率超過(guò)預(yù)定高閾值,則將變量up的值賦1,如果發(fā)現(xiàn)整個(gè)服務(wù)器集群的CPU占用率低于預(yù)定低閾值,則將變量low的值賦I ;待下ー個(gè)固定時(shí)間間隔后,再次獲得整個(gè)服務(wù)器集群的CPU占用率后,如果整個(gè)服務(wù)器集群的CPU占用率不再超過(guò)預(yù)定高閾值或者低于預(yù)定低閾值時(shí),則將變量up和變量low的值均減I ;如果整個(gè)服務(wù)器集群的CPU占用率仍然繼續(xù)高于預(yù)定高閾值時(shí),則將變量up的值加1,如果整個(gè)服務(wù)器集群的CPU占用率仍然繼續(xù)低于預(yù)定低閾值時(shí),則將變量low的值加I ;當(dāng)變量up的值等于第一預(yù)定倍數(shù)值時(shí),檢測(cè)器通過(guò)調(diào)用桉樹云平臺(tái)的接ロ應(yīng)用程序開啟一臺(tái)虛擬機(jī),當(dāng)變量low的值等于第二預(yù)定倍數(shù)值時(shí),檢測(cè)器通過(guò)調(diào)用桉樹云平臺(tái)的應(yīng)用接ロ程序關(guān)閉一臺(tái)虛擬機(jī); (3)、代理器將用戶的訪問(wèn)請(qǐng)求均衡地轉(zhuǎn)發(fā)到各個(gè)開啟的虛擬機(jī)上。
5.根據(jù)權(quán)利要求4所述的服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡架構(gòu)的使用方法,其特征在干,所述代理器使用Haproxy負(fù)載均衡工具將用戶的訪問(wèn)請(qǐng)求均衡地轉(zhuǎn)發(fā)到各個(gè)開啟的虛擬機(jī)上。
【文檔編號(hào)】G06F9/50GK103581039SQ201310557825
【公開日】2014年2月12日 申請(qǐng)日期:2013年11月8日 優(yōu)先權(quán)日:2013年11月8日
【發(fā)明者】沈沛意, 董洛兵, 宋娟, 張亮, 孫庚澤, 薛丹, 劉暢 申請(qǐng)人:西安電子科技大學(xué)寧波信息技術(shù)研究院