李偉,盧捷,馬軍
(1.河北聯(lián)合大學(xué)信息工程學(xué)院,河北唐山 063009;2.唐山市交通運(yùn)輸局公路工程處,河北唐山 063009;3.河北聯(lián)合大學(xué)網(wǎng)絡(luò)中心,河北唐山 063009)
隨著Internet技術(shù)的快速發(fā)展,網(wǎng)絡(luò)服務(wù)器面對(duì)的訪問(wèn)數(shù)量快速增加。服務(wù)器作為數(shù)據(jù)存儲(chǔ)與發(fā)布的中心,擔(dān)負(fù)著流量控制、用戶管理及內(nèi)外網(wǎng)絡(luò)轉(zhuǎn)接等繁雜的任務(wù),它的性能最為關(guān)鍵。如何提高網(wǎng)絡(luò)服務(wù)器系統(tǒng)的高性能、高可靠性、負(fù)載均衡能力和良好擴(kuò)展能力成為技術(shù)研究的重要方向?;贚inux的高可用集群技術(shù)提供了可行性參考依據(jù)和解決方案。
集群(cluster)是由一組相互獨(dú)立的、通過(guò)高速網(wǎng)絡(luò)互聯(lián)的計(jì)算機(jī)組成的一種并行或分布式的處理系統(tǒng),這些單個(gè)的計(jì)算機(jī)系統(tǒng)稱(chēng)為集群的節(jié)點(diǎn),它以單一系統(tǒng)的模式來(lái)管理,為用戶提供高性能、高可靠性的服務(wù)。集群技術(shù)是一種通用的技術(shù),其目的是為了解決單機(jī)運(yùn)算能力的不足、I/O能力的不足,提高服務(wù)的可靠性、獲得規(guī)模可擴(kuò)展能力,降低整體方案的運(yùn)行和維護(hù)成本。和傳統(tǒng)的高性能計(jì)算機(jī)技術(shù)相比,集群技術(shù)可以利用各檔次的服務(wù)器作為節(jié)點(diǎn),系統(tǒng)造價(jià)低,可以實(shí)現(xiàn)很高的運(yùn)算速度,完成大運(yùn)算量的計(jì)算,具有較高的響應(yīng)能力,以滿足當(dāng)今日益增長(zhǎng)的信息服務(wù)的需求。
網(wǎng)絡(luò)負(fù)載均衡集群系統(tǒng)構(gòu)建于實(shí)際的服務(wù)器之上,用戶看不到提供服務(wù)的實(shí)際服務(wù)器,而只能看見(jiàn)一臺(tái)在集群中被稱(chēng)為負(fù)載均衡服務(wù)器的計(jì)算機(jī),實(shí)際的服務(wù)器通過(guò)高速局域網(wǎng)或地理上分散的廣域網(wǎng)連接,實(shí)際服務(wù)器的前端是負(fù)載均衡服務(wù)器,它將用戶的請(qǐng)求調(diào)度到實(shí)際服務(wù)器進(jìn)行處理。
LVS是Linux Virtual Server的簡(jiǎn)稱(chēng),也就是Linux虛擬服務(wù)器,通過(guò)LVS提供的負(fù)載均衡技術(shù)和Linux操作系統(tǒng)實(shí)現(xiàn)一個(gè)高性能、高可用的服務(wù)器群集,它具有良好可靠性、可擴(kuò)展性和可操作性。從而以低廉的成本實(shí)現(xiàn)最優(yōu)的服務(wù)性能。
LVS集群模型的體系結(jié)構(gòu)分為三個(gè)層次,最前端的負(fù)載均衡層,用Load Balancer表示,中間的服務(wù)器群組層,用Server Array表示,最底端的數(shù)據(jù)共享存儲(chǔ)層,用Shared Storage表示。
Load Balancer層:位于整個(gè)集群系統(tǒng)的最前端,有一臺(tái)或者多臺(tái)負(fù)載調(diào)度器(Director Server)組成,LVS模塊就安裝在Director Server上,而Director的主要作用類(lèi)似于一個(gè)路由器,它含有完成LVS功能所設(shè)定的路由表,通過(guò)這些路由表把用戶的請(qǐng)求分發(fā)給Server Array層的應(yīng)用服務(wù)器(Real Server)上。同時(shí),在Director Server上還要安裝對(duì)Real Server服務(wù)的監(jiān)控模塊Ldirectord,此模塊用于監(jiān)測(cè)各個(gè)Real Server服務(wù)的健康狀況。在Real Server不可用時(shí)把它從LVS路由表中剔除,恢復(fù)時(shí)重新加入。
Server Array層:由一組實(shí)際運(yùn)行應(yīng)用服務(wù)的機(jī)器組成,Real Server可以是WEB服務(wù)器、MAIL服務(wù)器、FTP服務(wù)器、DNS服務(wù)器、視頻服務(wù)器中的一個(gè)或者多個(gè),每個(gè)Real Server之間通過(guò)高速的LAN或分布在各地的WAN相連接。在實(shí)際的應(yīng)用中,Director Server也可以同時(shí)兼任Real Server的角色。
Shared Storage層:是為所有Real Server提供共享存儲(chǔ)空間和內(nèi)容一致性的存儲(chǔ)區(qū)域,在物理上,一般有磁盤(pán)陣列設(shè)備組成,為了提供內(nèi)容的一致性,一般可以通過(guò)NFS網(wǎng)絡(luò)文件系統(tǒng)共享數(shù)據(jù),但是NFS在繁忙的業(yè)務(wù)系統(tǒng)中,性能并不是很好,此時(shí)可以采用集群文件系統(tǒng),例如Red hat的GFS文件系統(tǒng),oracle提供的OCFS2文件系統(tǒng)等
LVS的IP負(fù)載均衡技術(shù)是通過(guò)IPVS模塊來(lái)實(shí)現(xiàn)的,IPVS是LVS集群系統(tǒng)的核心軟件,它的主要作用是:安裝在Director Server上,同時(shí)在Director Server上虛擬出一個(gè)IP地址,用戶必須通過(guò)這個(gè)虛擬的IP地址訪問(wèn)服務(wù)。這個(gè)虛擬IP一般稱(chēng)為L(zhǎng)VS的VIP,即Virtual IP。訪問(wèn)的請(qǐng)求首先經(jīng)過(guò)VIP到達(dá)負(fù)載調(diào)度器,然后由負(fù)載調(diào)度器從Real Server列表中選取一個(gè)服務(wù)節(jié)點(diǎn)響應(yīng)用戶的請(qǐng)求,當(dāng)用戶的請(qǐng)求到達(dá)負(fù)載調(diào)度器后,調(diào)度器如何將請(qǐng)求發(fā)送到提供服務(wù)的Real Server節(jié)點(diǎn),而Real Server節(jié)點(diǎn)如何返回?cái)?shù)據(jù)給用戶,是IPVS實(shí)現(xiàn)的重點(diǎn)技術(shù),IPVS實(shí)現(xiàn)負(fù)載均衡機(jī)制有三種,分別是NAT、TUN和DR。
2.2.1 VS/NAT: 即(Virtual Server via Network Address Translation)
也就是網(wǎng)絡(luò)地址翻譯技術(shù)實(shí)現(xiàn)虛擬服務(wù)器,當(dāng)用戶請(qǐng)求到達(dá)調(diào)度器時(shí),調(diào)度器將請(qǐng)求報(bào)文的目標(biāo)地址(即虛擬IP地址)改寫(xiě)成選定的Real Server地址,同時(shí)報(bào)文的目標(biāo)端口也改成選定的Real Server的相應(yīng)端口,最后將報(bào)文請(qǐng)求發(fā)送到選定的Real Server。在服務(wù)器端得到數(shù)據(jù)后,Real Server返回?cái)?shù)據(jù)給用戶時(shí),需要再次經(jīng)過(guò)負(fù)載調(diào)度器將報(bào)文的源地址和源端口改成虛擬IP地址和相應(yīng)端口,然后把數(shù)據(jù)發(fā)送給用戶,完成整個(gè)負(fù)載調(diào)度過(guò)程。
2.2.2 VS/TUN:即(Virtual Server via IP Tunneling)
也就是IP隧道技術(shù)實(shí)現(xiàn)虛擬服務(wù)器。它的連接調(diào)度和管理與VS/NAT方式一樣,只是它的報(bào)文轉(zhuǎn)發(fā)方法不同,VS/TUN方式中,調(diào)度器采用IP隧道技術(shù)將用戶請(qǐng)求轉(zhuǎn)發(fā)到某個(gè)Real Server,而這個(gè)Real Server將直接響應(yīng)用戶的請(qǐng)求,不再經(jīng)過(guò)前端調(diào)度器,此外,對(duì)Real Server的地域位置沒(méi)有要求,可以和Director Server位于同一個(gè)網(wǎng)段,也可以是獨(dú)立的一個(gè)網(wǎng)絡(luò)。因此,在TUN方式中,調(diào)度器將只處理用戶的報(bào)文請(qǐng)求,集群系統(tǒng)的吞吐量大大提高。
2.2.3 VS/DR: 即(Virtual Server via Direct Routing)
也就是用直接路由技術(shù)實(shí)現(xiàn)虛擬服務(wù)器。它的連接調(diào)度和管理與VS/NAT和VS/TUN中的一樣,但它的報(bào)文轉(zhuǎn)發(fā)方法又有不同,VS/DR通過(guò)改寫(xiě)請(qǐng)求報(bào)文的MAC地址,將請(qǐng)求發(fā)送到Real Server,而Real Server將響應(yīng)直接返回給客戶,免去了VS/TUN中的IP隧道開(kāi)銷(xiāo)。這種方式是三種負(fù)載調(diào)度機(jī)制中性能最高最好的,但是必須要求Director Server與Real Server都有一塊網(wǎng)卡連在同一物理網(wǎng)段上。
該系統(tǒng)采用LVS集群技術(shù),體系結(jié)構(gòu)如圖1所示。兩臺(tái)負(fù)載均衡服務(wù)器互為備份,安裝RealServer的集群系統(tǒng)的節(jié)點(diǎn)機(jī)與集群系統(tǒng)中各節(jié)點(diǎn)通過(guò)高速網(wǎng)絡(luò)連接,保證充分的網(wǎng)絡(luò)帶寬,系統(tǒng)負(fù)載均衡調(diào)度采用直接路由VS/DR模式。
圖1 高可用負(fù)載均衡集群系統(tǒng)結(jié)構(gòu)圖
大部分配置工作集中在負(fù)載平衡服務(wù)器上,實(shí)際服務(wù)器只需作簡(jiǎn)單配置。大致步驟如下:
本文分析了linux虛擬服務(wù)器集群技術(shù)的體系結(jié)構(gòu)、負(fù)載均衡技術(shù)以及負(fù)載調(diào)度算法,設(shè)計(jì)了基于LVS和Keepalived高可用負(fù)載均衡集群系統(tǒng),設(shè)計(jì)了其體系結(jié)構(gòu)和應(yīng)用配置實(shí)例,提高軟、硬件資源利用率,為集群系統(tǒng)的構(gòu)建提供了較好的理論和實(shí)踐參考依據(jù)。
[1]劉 斌,徐精明等.基于Linux虛擬服務(wù)器的負(fù)載均衡算法[J].計(jì)算機(jī)工程,2011,23:279-281.
[2]楊順韜.基于LVS的高性能負(fù)載均衡集群系統(tǒng)的設(shè)計(jì)[J].廣西民族大學(xué)學(xué)報(bào)2012(2):48-52.
[3]趙攀等.LVS集群技術(shù)在校園網(wǎng)中的研究與設(shè)計(jì)[J].四川理工學(xué)院學(xué)報(bào)2009(2):31-35.
[4]白戈力,徐超.LVS集群在DNS服務(wù)器上的應(yīng)用與研究[J].四川理工學(xué)院學(xué)報(bào),2012(2):193-195.
[5]許先斌,趙睿.基于LVS的視頻服務(wù)器集群系統(tǒng)的研究與設(shè)計(jì)[J].微計(jì)算機(jī)應(yīng)用,2005(4):422-424.
[6]鄭 勇,楊 達(dá)等.一種分布式高性能集群郵件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2006(6):253-256.