專利名稱:一種集群服務(wù)器的多分配器前端系統(tǒng)構(gòu)成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)服務(wù)器技術(shù)領(lǐng)域,尤其是一種集群服務(wù)器的多分配器前端系統(tǒng)構(gòu)成方法。
背景技術(shù):
集群服務(wù)器因具有擴(kuò)展性好、性價比高等特點,已成為大多數(shù)網(wǎng)絡(luò)服務(wù)器系統(tǒng)的解決方案。典型的網(wǎng)絡(luò)集群服務(wù)器結(jié)構(gòu)由前端分配器系統(tǒng)和后端服務(wù)器系統(tǒng)組成,通過增加后端服務(wù)器數(shù)量、提高并發(fā)響應(yīng)能力來消除訪問輸出瓶頸。當(dāng)前,前端分配器中的調(diào)度粒度有兩種一種是基于傳輸控制協(xié)議(TCP)連接的轉(zhuǎn)發(fā)模式,簡稱第四層交換;一種是基于請求內(nèi)容的轉(zhuǎn)發(fā)模式,簡稱應(yīng)用層交換。
基于內(nèi)容的請求分發(fā)模式可以充分利用服務(wù)器緩存(cache)中的數(shù)據(jù),使得系統(tǒng)的性能得以極大提高;同時,可以針對不同能力的服務(wù)器配置不同的服務(wù),支持異構(gòu)的集群系統(tǒng)。因此,應(yīng)用層交換模式的集群服務(wù)器系統(tǒng)具有更好的擴(kuò)展性、更大的系統(tǒng)吞吐量、更短的平均響應(yīng)時間,并且可以支持網(wǎng)絡(luò)服務(wù)質(zhì)量(QoS)服務(wù)。但是,基于內(nèi)容的請求分發(fā)模式在前端分配器上的處理開銷大,使得前端分配器成為系統(tǒng)瓶頸。相關(guān)參考文獻(xiàn)Guerrey Hunt et al.EnablingContent-Based Load Distribution for Scalable Services.Technical Report,IBM,May1997;Vivek S.Pai et al.Locality-Aware Request Distribution in Cluster-basedNetwork Servers.The 8thACM Conference on Architectural Support forProgramming Languages and Operating System.San Jose,CA,Oct 1998。
針對前端分配器瓶頸,有研究者提出了多前端結(jié)構(gòu)。該結(jié)構(gòu)中有多個分配器同時處理請求轉(zhuǎn)發(fā)任務(wù),其中的一臺負(fù)責(zé)對外提供統(tǒng)一的IP地址,分布請求到各個分配器中。其實,這是一種三層的樹型結(jié)構(gòu),仍然只有一臺分配器負(fù)責(zé)接收請求,其他分配器只負(fù)責(zé)處理請求。由于樹型結(jié)構(gòu)本身的限制,它仍然存在單點瓶頸和單點故障問題。相關(guān)參考文獻(xiàn)Jonghuck Hong et al.HierarchicalCluster for Scalable Web Servers.2001 IEEE International Conference on ClusterComputer;雷迎春等,高性能L5-Dispatcher的性能評測,計算機(jī)研究與發(fā)展,2003 Vol.40 No.3 pp475~480;Mohit Aron et al.Scalable Content-aware RequestDistribution in Cluster-based Network Servers.2000 USENIX Annual TechnicalConference,June 18~20。
同樣為了消除前端瓶頸,Rice大學(xué)的研究人員提出了一種分布式請求分發(fā)結(jié)構(gòu)。這種結(jié)構(gòu)中,前端由一個第四層交換設(shè)備組成(效率較高),將開銷較大HTTP解析和TCP遷移等任務(wù)分布到后端服務(wù)器中完成。雖然,后端承擔(dān)了部分原本由前端完成的任務(wù),但由于后端的并發(fā)執(zhí)行,可以極大地減輕前端的工作負(fù)荷,有效地提高集群系統(tǒng)的擴(kuò)展性和吞吐量。該方式對性能改善有顯著影響。但是,由于前端采取盲目分配法(不考慮請求的內(nèi)容),故為利用緩存相關(guān)性,可能存在N臺服務(wù)器集群中有(N-1)/N概率的請求被轉(zhuǎn)移到其他服務(wù)器執(zhí)行,這影響了系統(tǒng)性能的進(jìn)一步改善。此外,該方式是建立在前端第四層交換設(shè)備不存在瓶頸的假設(shè)上。相關(guān)參考文獻(xiàn)Cristian Coarfa et al.LARDA DistributedApproach.Draft of the final report for ELEC520,1999;Mohit Aron et al.EfficientSupport for P-HTTP in Cluster-based Web Servers.1999 Annual USENIX TechnicalConference,Monterey,CA,June 1999;Mohit Aron et al.Scalable Content-awareRequest Distribution in Cluster-based Network Servers.2000 USENIX AnnualTechnical Conference,June 18~20。
為解決后端服務(wù)器間過多的TCP遷移的問題,研究人員提出了一種分布式請求分發(fā)的改進(jìn)方法。該改進(jìn)方法中,將訪問頻率最高的文檔(5%~10%)組成一個核,核被每一個后端服務(wù)器復(fù)制,這樣可以減少約90%的后端TCP遷移,因為大部分的請求可以在服務(wù)器本地響應(yīng)。從而使集群系統(tǒng)的擴(kuò)展性得到超線性增加。但是,由于熱點文檔不是一成不變的,因此,核也必須進(jìn)行調(diào)整。而分析和重組核文件集是一個十分耗時的,通常細(xì)粒度(以URL為單位)組核計算需要十幾小時;粗粒度(以網(wǎng)頁簇為單位)組核計算也需要幾個小時。此外,該方式對服務(wù)器集群系統(tǒng)的動態(tài)配置管理提出了更高的要求。同時,該方式為在集群內(nèi)設(shè)置特殊用途的服務(wù)器帶來不便。同樣,該方式也是建立在前端第四層交換機(jī)不成為系統(tǒng)瓶頸的假設(shè)上。相關(guān)參考文獻(xiàn)Ludmila Cherkasova et al.Scalable Web Server Cluster Design with Workload-Aware Request DistributionStrategy WARD.2001 IEEE International Workshop on Advanced Issues inE-commerce and Web-Based Information System,San Jose,CA,June 21~22;HuicanZhu et al.Class-based Cache Management for Dynamic Web Content.2001 IEEEINFOCOM。
發(fā)明內(nèi)容
本發(fā)明為了克服現(xiàn)有技術(shù)的不足,提供一種高效的集群服務(wù)器多分配器前端系統(tǒng)構(gòu)成方法。
為了達(dá)到上述目的,本發(fā)明提供的技術(shù)方案是,一種集群服務(wù)器的多分配器前端系統(tǒng)構(gòu)成方法,包括以下步驟建立包括兩臺及以上配置了兩塊網(wǎng)卡的前端分配器、一臺集線器的集群服務(wù)器前端系統(tǒng),所有前端分配器的數(shù)據(jù)輸入端網(wǎng)卡通過集線器并行集聯(lián),所有前端分配器的數(shù)據(jù)輸出端網(wǎng)卡與集群服務(wù)器后端系統(tǒng)的交換機(jī)相連;所有前端分配器的數(shù)據(jù)輸入端網(wǎng)卡配置一個相同的虛擬IP;通過集線器將輸入數(shù)據(jù)包以廣播方式傳輸?shù)剿星岸朔峙淦?;各前端分配器對輸入?shù)據(jù)包IP地址或TCP端口號進(jìn)行散列計算,決定是否轉(zhuǎn)發(fā)該數(shù)據(jù)包。
而且,前端分配器的數(shù)據(jù)包轉(zhuǎn)發(fā)模式采用路徑外返方式。
本發(fā)明通過多臺前端分配器并行操作,保證了集群服務(wù)器的前端轉(zhuǎn)發(fā)帶寬,消除前端瓶頸,提高了集群服務(wù)器系統(tǒng)的整體性能。并且采用本發(fā)明,對后端服務(wù)器不需改變原來的配置,不增加額外的工作負(fù)擔(dān);既可以適用于基于TCP連接的請求分發(fā)模式,也可以適用于基于內(nèi)容的請求分發(fā)模式;不需使用特殊的、昂貴的設(shè)備(如4CPU SMP結(jié)構(gòu)的計算機(jī))作為前端分配器。本發(fā)明采用的分配器可以參見本發(fā)明人同日申請的實用新型《網(wǎng)絡(luò)請求訪問分配器》。
圖1本發(fā)明集群服務(wù)器系統(tǒng)結(jié)構(gòu)示意圖;圖2本發(fā)明具體實施例集群服務(wù)器系統(tǒng)物理結(jié)構(gòu)示意圖;圖3本發(fā)明具體實施例的分配器工作流程圖。
具體實施例方式
參見圖1、2,為了對用戶提供透明、高效的請求轉(zhuǎn)發(fā)服務(wù),消除前端轉(zhuǎn)發(fā)瓶頸,本發(fā)明提供了一種集群服務(wù)器的多分配器前端系統(tǒng)構(gòu)成方法,包括以下步驟(1)建立包括兩臺及以上配置了兩塊網(wǎng)卡的前端分配器(分配器1…分配器m)、一臺集線器的集群服務(wù)器前端系統(tǒng),所有前端分配器的數(shù)據(jù)輸入端網(wǎng)卡通過集線器并行集聯(lián),所有前端分配器的數(shù)據(jù)輸出端網(wǎng)卡與集群服務(wù)器后端系統(tǒng)的交換機(jī)相連。在利用本發(fā)明來組建一個集群服務(wù)器系統(tǒng)時,需按照圖1所示的拓?fù)浣Y(jié)構(gòu)來搭建系統(tǒng)。外部網(wǎng)絡(luò)通過一個共享式集線器HUB連接到多臺分配器,這樣客戶端輸入的數(shù)據(jù)包都要先經(jīng)過HUB,再到達(dá)分配器。本發(fā)明利用HUB的廣播特性使得輸入數(shù)據(jù)流可以到達(dá)所任何一臺分配器。采用廣播共享模式與通過交換機(jī)將網(wǎng)卡設(shè)置為雜收模式或鏡像端口模式相比,效率更高,實現(xiàn)更容易。并且,為了避免HUB半雙工通信方式可能造成的傳輸沖突影響,每臺分配器內(nèi)安裝了兩塊網(wǎng)卡,一塊負(fù)責(zé)接收HUB傳來的數(shù)據(jù),一塊負(fù)責(zé)將數(shù)據(jù)轉(zhuǎn)發(fā)到與后端服務(wù)器(服務(wù)器1…服務(wù)器n)連接的內(nèi)部交換機(jī)。這樣使得輸入數(shù)據(jù)包在經(jīng)過分配器到達(dá)服務(wù)器的過程中數(shù)據(jù)單向流動,不存在設(shè)備瓶頸。
(2)所有前端分配器的數(shù)據(jù)輸入端網(wǎng)卡配置一個相同的虛擬IP,為了對外提供統(tǒng)一的IP地址,本發(fā)明中將每臺分配器內(nèi)與HUB相連的網(wǎng)卡設(shè)置為虛擬IP——VIP。所有分配器的VIP設(shè)置相同的地址,同時,將每個VIP對應(yīng)的MAC地址也配置成相同的地址。這樣可以解決同一局域網(wǎng)內(nèi)相同IP設(shè)備共存問題,同時,對外部來說,多臺分配器看上去就像是一臺分配器在運(yùn)行——只有一個IP地址。而在系統(tǒng)內(nèi)部,仍可以使用每個網(wǎng)卡各自獨立的IP地址交換信息,為應(yīng)用程序的設(shè)計提供了方便。
(3)通過集線器將輸入數(shù)據(jù)包以廣播方式傳輸?shù)剿星岸朔峙淦鳎?4)各前端分配器對輸入數(shù)據(jù)包IP地址或TCP端口號進(jìn)行散列計算,決定是否轉(zhuǎn)發(fā)該數(shù)據(jù)包。由于采用廣播共享模式,前端所有的分配器都可以接收到當(dāng)前到達(dá)的輸入數(shù)據(jù)包。具體由那臺分配器來處理該數(shù)據(jù)包,本發(fā)明中采用分配器自己決策的方式,這其中要兼顧到請求負(fù)載的均勻分布特性。
每臺分配器偵聽是否有輸入數(shù)據(jù)包到達(dá),一旦發(fā)現(xiàn)有新的輸入數(shù)據(jù)包到達(dá)則截獲數(shù)據(jù)包中的頭信息,分配器內(nèi)部進(jìn)行散列計算。散列計算方法可以采用取模計算、素數(shù)乘積Hash映射等,在本發(fā)明具體實施例中選用對TCP源端口號取模運(yùn)算。取模運(yùn)算的模由前端分配器的個數(shù)決定,事先通過參數(shù)配置存儲在分配器中。每臺分配器分配一個固有值,也事先通過參數(shù)配置存儲在分配器中。如果計算的散列值與分配器的固有值相等,則分配器完整地接收該數(shù)據(jù)包,并轉(zhuǎn)入后續(xù)處理;否則,分配器丟棄該數(shù)據(jù)包,不做任何處理。本發(fā)明利用散列計算的隨機(jī)性來保證請求數(shù)據(jù)包處理分布的均勻性。由于TCP源端口號是在連接建立時隨機(jī)分配的,所以,對端口號取模運(yùn)算也具有隨機(jī)性。這樣可以有效避免某臺分配器只固定接收某些客戶的輸入數(shù)據(jù)包,使輸入的請求數(shù)據(jù)流均勻分布到所有分配器上接收處理。同時,同一TCP連接中的所有數(shù)據(jù)包都具有相同的端口號,故可以使同一TCP連接中的請求數(shù)據(jù)包和響應(yīng)數(shù)據(jù)包都被同一臺分配器捕獲。分配器根據(jù)已經(jīng)建立的請求轉(zhuǎn)發(fā)映射表,將請求的后續(xù)確認(rèn)數(shù)據(jù)包轉(zhuǎn)送到正在執(zhí)行該請求的相應(yīng)服務(wù)器,這樣保證了多分配器并發(fā)工作時對確認(rèn)數(shù)據(jù)包轉(zhuǎn)發(fā)的正確性。由于確認(rèn)數(shù)據(jù)包的轉(zhuǎn)發(fā)產(chǎn)生的負(fù)荷相對于解析請求、分析內(nèi)容、連接轉(zhuǎn)移所產(chǎn)生負(fù)荷要小得多,而所有分配器對請求數(shù)據(jù)包所做的處理是相同的。因此,請求數(shù)據(jù)流分布的隨機(jī)性、均勻性也就保證了前端多個分配器之間的負(fù)載均衡。
參見圖2,本發(fā)明的具體實施例包括兩臺配置了兩塊網(wǎng)卡的前端分配器(fs1、fs2),一臺集線器(HUB)的集群服務(wù)器前端系統(tǒng),fs1、fs2的數(shù)據(jù)輸入端網(wǎng)卡通過集線器并行集聯(lián),fs1、fs2的數(shù)據(jù)輸出端網(wǎng)卡與集群服務(wù)器后端系統(tǒng)的交換機(jī)(第二層交換機(jī))相連;fs1、fs2的數(shù)據(jù)輸入端網(wǎng)卡配置一個相同的VIP(192.168.1.111),他們的真正IP(REAL IP)分別為192.168.1.11、192.168.1.12,Internet的集群出口路由通過第二層交換機(jī)連接HUB,通過HUB將輸入數(shù)據(jù)包以廣播方式傳輸?shù)絝1、f2;各前端分配器f1、f2對輸入數(shù)據(jù)包IP地址或端口號進(jìn)行散列計算,決定是否轉(zhuǎn)發(fā)該數(shù)據(jù)包;多個后端服務(wù)器(rs1、rs2…rsN)通過第二層交換機(jī)并連前端分配器f1或f2根據(jù)已經(jīng)建立的請求轉(zhuǎn)發(fā)映射表,通過第二層交換機(jī)將數(shù)據(jù)包轉(zhuǎn)送到正在執(zhí)行該請求的相應(yīng)后端服務(wù)器。后端服務(wù)器rs1、rs2…rsN的REAL IP為192.168.1.XX,但隱藏路徑后VIP為192.168.1.111(WithHidden patch),與前端分配器f1、f2一致。
當(dāng)前端需要增加或減少分配器個數(shù)時,只需重新配置每臺分配器的散列計算參數(shù)即可,操作簡單、方便;前端分配器的個數(shù)以保證重載轉(zhuǎn)發(fā)輸出帶寬等于輸入帶寬為原則。
為了避免雙向通信沖突影響數(shù)據(jù)輸入帶寬,分配器轉(zhuǎn)發(fā)模式中采用路徑外返方式,保證了輸出的響應(yīng)數(shù)據(jù)流不通過分配器系統(tǒng),即在集線器與分配器之間的數(shù)據(jù)流是單向的,所以不存在沖突,保證了數(shù)據(jù)輸入帶寬。由于輸入數(shù)據(jù)流通過共享模式接入多臺分配器,本發(fā)明采用也必須采用路徑外返(DirectRouting)的響應(yīng)模式。服務(wù)器對請求處理的響應(yīng)數(shù)據(jù)包都不通過前端分配器,而是直接傳輸給客戶或外部網(wǎng)絡(luò)接入設(shè)備。這種方式既不會在HUB設(shè)備產(chǎn)生傳輸沖突,也不會給分配器帶來響應(yīng)負(fù)荷。
參見圖3,為了方便實施,本發(fā)明實施例提供分配器的工作流程,具體描述分配器的偵聽、計算、決策步驟在步驟01中等待數(shù)據(jù)包到達(dá);在步驟02中判斷是否為TCP/IP包,若結(jié)果為否,進(jìn)行步驟07丟棄該數(shù)據(jù)包,然后回步驟01等待下一數(shù)據(jù)包到達(dá);若步驟02的判斷結(jié)果為是,在步驟03判斷目的IP是否等于集群VIP,若結(jié)果為否,進(jìn)行步驟07丟棄該數(shù)據(jù)包,然后回步驟01等待下一數(shù)據(jù)包到達(dá);若步驟03的判斷結(jié)果為是,在步驟04判斷請求的服務(wù)端口號是否正確,若結(jié)果為否,進(jìn)行步驟07丟棄該數(shù)據(jù)包,然后回步驟01等待下一數(shù)據(jù)包到達(dá);若步驟04的判斷結(jié)果為是,在步驟05中按源IP地址和TCP源端口號、mod的個數(shù)進(jìn)行取模運(yùn)算;然后進(jìn)行步驟06,判斷取模運(yùn)算結(jié)果與本機(jī)固有值是否相同,進(jìn)行步驟07丟棄該數(shù)據(jù)包,然后回步驟01等待下一數(shù)據(jù)包到達(dá);若步驟06的判斷結(jié)果為是,在步驟08中判斷分配器內(nèi)的已建立連接的映射表已記錄該IP包的TCP端口號否,若結(jié)果為是,進(jìn)行步驟09轉(zhuǎn)發(fā)該數(shù)據(jù)包到表中對應(yīng)的服務(wù)器,然后回步驟01等待下一數(shù)據(jù)包到達(dá);若步驟08的判斷結(jié)果為否,執(zhí)行步驟10將該IP包TCP端口號加入連接表,然后執(zhí)行步驟11,即后續(xù)的程序(如請求分析、調(diào)度決策、連接遷移、請求轉(zhuǎn)發(fā)等),最后回步驟01等待下一數(shù)據(jù)包到達(dá)。
權(quán)利要求
1.一種集群服務(wù)器的多分配器前端系統(tǒng)構(gòu)成方法,其特征在于包括以下步驟,建立包括兩臺及以上的配置了兩塊網(wǎng)卡的前端分配器、一臺集線器的集群服務(wù)器前端系統(tǒng),所有前端分配器的數(shù)據(jù)輸入端網(wǎng)卡通過集線器并行集聯(lián),所有前端分配器的數(shù)據(jù)輸出端網(wǎng)卡與集群服務(wù)器后端系統(tǒng)的交換機(jī)相連;所有前端分配器的數(shù)據(jù)輸入端網(wǎng)卡配置一個相同的虛擬IP;通過集線器將輸入數(shù)據(jù)包以廣播方式傳輸?shù)剿星岸朔峙淦?;各前端分配器對輸入?shù)據(jù)包IP地址或TCP端口號進(jìn)行散列計算,決定是否處理該數(shù)據(jù)包。
2.如權(quán)利要求1所述的一種集群服務(wù)器的多分配器前端系統(tǒng)構(gòu)成方法,其特征在于前端分配器的數(shù)據(jù)包轉(zhuǎn)發(fā)模式采用路徑外返方式。
全文摘要
本發(fā)明涉及網(wǎng)絡(luò)服務(wù)器技術(shù)領(lǐng)域,尤其是一種集群服務(wù)器的多分配器前端系統(tǒng)構(gòu)成方法,其特征在于包括以下步驟,建立包括兩臺及以上的配置了兩塊網(wǎng)卡的前端分配器、一臺集線器的集群服務(wù)器前端系統(tǒng),所有前端分配器的數(shù)據(jù)輸入端網(wǎng)卡通過集線器并行集聯(lián),所有前端分配器的數(shù)據(jù)輸出端網(wǎng)卡與集群服務(wù)器后端系統(tǒng)的交換機(jī)相連;所有前端分配器的數(shù)據(jù)輸入端網(wǎng)卡配置一個相同的虛擬IP;通過集線器將輸入數(shù)據(jù)包以廣播方式傳輸?shù)剿星岸朔峙淦?;各前端分配器對輸入?shù)據(jù)包IP地址或TCP端口號進(jìn)行散列計算,決定是否處理該數(shù)據(jù)包。本發(fā)明通過多臺前端分配器并行操作,保證了集群服務(wù)器的前端轉(zhuǎn)發(fā)帶寬,消除前端瓶頸,提高了集群服務(wù)器系統(tǒng)的整體性能。
文檔編號H04L12/28GK1649326SQ20041006130
公開日2005年8月3日 申請日期2004年12月9日 優(yōu)先權(quán)日2004年12月9日
發(fā)明者郭成城, 晏蒲柳, 熊智, 王俊濤 申請人:武漢大學(xué)