胡秀建,王浩,廉祥麗,陳偉
(1.宿州職業技術學院計算機信息系,安徽宿州 234011;2.阜陽師范學院計算機與信息學院,安徽阜陽 236037)
Linux集群下的校園網絡負載均衡方案
胡秀建1,王浩2,廉祥麗1,陳偉1
(1.宿州職業技術學院計算機信息系,安徽宿州 234011;2.阜陽師范學院計算機與信息學院,安徽阜陽 236037)
為了解決大量的校園網絡服務帶來的網絡擁擠問題,提出了基于Linux集群的校園網絡負載均衡方案.它采用地址轉換和IP隧道兩種方式,將計算機集群虛擬化為一個虛擬服務器,從而在IP層上實現負載均衡調度.該方案能夠充分發揮校園網絡設備的利用率,提高校園網絡的整體性能,減少資金的投入和降低維護成本.
負載均衡;網絡地址轉換;IP隧道;虛擬服務器
隨著高校信息化水平的不斷提高,高校校園網絡的規模和服務功能也在不斷擴展,新的網絡設備和網絡應用平臺也不斷更新和投入使用[1].校園網絡要承擔教學管理、科學研究、遠程教育、Web服務等諸多任務.網絡中心作為校園網絡的核心機構,還要承擔數據存儲、信息發布、流量監控、用戶管理、負載均衡、信息安全、病毒防治等一系列網絡管理任務.總體來說,校園網絡用戶群體龐大、資源利用率高、管理難度大.并且由網絡服務功能的擴展帶來的流量監控和負載均衡問題日益突出,占用了大量的人力和物力,使網絡運營維護成本居高不下.本文提出的基于Linux集群技術設計的校園網絡負載均衡方案可以有效地解決這一問題.
假如學校網絡有N臺服務器,網絡內同一時間的訪問請求個數為M(一般情況下M遠遠大于N),這就要求網絡中部署一個設備或軟體,它負責將M個訪問請求調度到N個不同服務器上去,這就是負載均衡器的作用[2].負載均衡器是服務器集群的唯一入口,它可以是一個獨立的硬件實體,也可以是一個安裝在代理服務器內的軟體.在校園網絡中,計算機集群是通過負載均衡設備將統一的一個公有IP地址映射到整個集群中的多個IP地址主機上,以實現單一客戶端對整個集群的訪問.公有的虛擬IP地址相當于一個虛擬服務器,和集群內主機IP地址的關系是一對多的映射關系,這種映射關系可以有效解決校園網絡IP地址短缺問題.在工作過程當中,若負載均衡器出現故障,則很可能造成整個集群負載失效[3].因此,在實際應用中,我們可以部署多個均衡器,用以提供必要的負載均衡容錯機制,對負載均衡器進行備份并對其工作狀態進行監控,可以在網絡負載均衡設備出現故障情況下進行有效轉換,利用備份負載均衡設備替換故障設備,并對故障設備進行報警、檢查、恢復等操作,使其恢復正常工作.
1.1 Linux中負載均衡模型
上述所提到的負載均衡實現方法是基于IP協議層實現的負載均衡技術,它將整個網絡的接入請求劃分成一個個單一的網絡請求,通過負載均衡器將它們分別調度到服務器集群中的單一主機上,由整個集群的主機來分擔任務,以最大限度地發揮整個網絡的性能.實現負載均衡的關鍵技術在于IP層的負載分配,該技術具有良好的兼容性、高效的執行效率、簡單的體系結構等特點.
在Linux系統中,這種基于IP層交換的負載均衡技術具備良好的可擴展性、易管理性,可以大幅提高整個集群系統的性能,從而實現以負載均衡為核心的Linux集群系統[4].該系統可通過三種不同負載均衡模型來實現,分別是:地址轉換(NAT)模型、IP隧道模型和直接路由(DR)模型[5].本文重點對前兩種模型進行分析和研究.
在地址轉換(NAT)模型中,集群內部的IP地址與外部網絡隔開,服務器內部結點擁有一個IP地址池,每個數據請求和應答都通過負載均衡設備,負載均衡設備負責對IP數據包進行處理然后和客戶端進行通信.
在IP隧道模型中,整個網絡是個開放的體系結構,集群系統中的每個主機在互聯網上都有一個合法的IP地址,客戶端和服務器端的通信通過路由應答方式來實現.其實現過程為,客戶端向虛擬IP地址主機(負載均衡器)發送通信請求,虛擬IP主機(負載均衡器)通過IP隧道對該數據包進行封裝并選定目的主機結點作為新的IP主機地址,然后發送到對應IP主機結點上;對應IP主機結點接收虛擬IP地址主機(負載均衡器)發送的IP隧道數據后將數據包解包進行數據處理,并根據源客戶端的IP地址將應答數據包直接反饋給源客戶端,但此時應答數據包的源地址為虛擬IP地址,即負載均衡器的IP地址.
在直接路由(DR)模型中,整個集群內的主機和負載均衡器都有共同的虛擬IP地址,但負載均衡器和每個主機都不解析虛擬IP的RAP地址,只接收符合自己MAC地址的數據包.客戶端向負載均衡器發送數據請求后,負載均衡器根據當前集群工作狀態選擇集群內部主機結點并重寫數據包的MAC地址,然后將數據包廣播到所屬網段內[6].當對應的主機收到負載均衡器廣播的數據包后,便會直接和客戶端進行通信,并將處理后的數據反饋給客戶端.總的來說,客戶端始終和有著同一虛擬IP地址的負載均衡服務器集群進行通信.
1.2 三種負載均衡模型的比較
根據以上對三種模型的介紹,從連接通信方式、數據包處理等方面對它們進行對比分析.結果見表1.
2.1 負載均衡調度在硬件中的實現
通過對以上三種模型的對比可知,不論采用哪一種負載均衡模型,其工作的基本原理是一致的,即客戶端訪問負載均衡設備,負載均衡設備接收到訪問請求后對它進行封包轉發,然后從一組服務器集群中選擇一個主機,將請求數據包發送給它,集群內主機接收到請求數據包后對數據包進行處理,然后將響應數據包反饋給負載均衡設備或者直接反饋給客戶端.目前,很多企業在設計自己的負載均衡設備時,都采用地址轉換方法來實現,比如Berkeley的Magic Router、Cisco的Local Director、Alteon的ACE Director和F5的Big/IP等都是使用網絡地址轉換方法[7].

表1 三種負載均衡模型對照分析
2.2 NAT實現虛擬服務器(VS/NAT)集群負載均衡
在Internet迅猛發展的今天,IPV4地址已經接近枯竭,為了節約IPV4地址,網絡在進行NAT轉換時可以使用專門為內部網絡保留的IP地址,比如10.0.0.0/255.0.0.0、192.168.0.0/255.255.0.0等.通過NAT將不同IP地址的主機變成一個虛擬服務器集群(VS),其示意圖如圖1所示.在圖1中,VS由一個負載均衡設備、一個交換機、若干服務器主機組成.當客戶端通過Internet對VS進行訪問時,負載均衡設備負責將請求數據包調度給相應主機,不管請求數據包被調度到哪臺主機上,其反饋的結果沒有任何不同.
在圖1中,負載均衡設備接收到請求數據包后并對它進行封包,然后采用一定的算法將數據包調度到相應主機上.目前常用的調度算法是動態反饋負載均衡調度算法[8],該算法將影響負載均衡的幾個主要元素采用權值計算方式納入到調度決策過程中,有效地解決負載調度的效率問題.
2.3 VS/NAT實驗分析
為了進一步說明VS/NAT工作過程,在這里設計一個案例并對之進行分析.具體的VS/NAT的配置如圖2所示.設定VIP(虛擬IP)地址為10.3.1.5,80端口的數據請求都被調度到集群內主機173.1.0.1:80和173.1.0.1:8000上(web服務);21端口的數據請求被調度到集群內主機173.1.0.1:21上(ftp服務),如表2所示.
根據上面的請求數據包負載調度對照表,下面我們詳細分析具體的客戶端請求數據包改寫流程.
設定訪問Web服務器的客戶端請求為:
源地址:102.1.1.2:3688,目的地址:10.3.1.5:80;
當負載均衡器接收到數據包請求后,便通過調度程序按相應從集群系統中選擇一臺主機,假如選擇173.1.0.2:80.這時候數據包被封包,并將地址改寫,然后發送到173.1.0.2:80.地址改寫如下:
源地址:102.1.1.2:3688,目的地址:173.1.0.2:80;
主機173.1.0.2接收到數據包以后,首先將數據包解包,處理后反饋響應數據包給負載均衡設備,地址變換為:源地址:173.1.0.2:80,目的地址:102.1.1.2:3688;
負載均衡設備接收到反饋數據包后,對源地址進行改寫,將源地址改寫成虛擬IP地址,地址變換為:源地址:10.3.1.5:80,目的地址:102.1.1.2:3688;
客戶端接收到的數據包的源地址便是虛擬IP地址10.3.1.5:80,而不是集群內主機173.1.0.2:80地址.這個地址轉換過程是雙工轉換,整個過程完成了對集群內主機IP的屏蔽.不論集群內是哪一臺主機響應了外部客戶端的請求,其結果都是一樣的.

圖1 VS/NAT的體系結構

表2 VS/NAT集群負載均衡調度對照表
采用NAT實現VS集群系統只適合請求和響應的數據包較小的情況,而當集群內服務器數目較多、請求和響應數據包較大的時候采用VS/NAT模式就會嚴重影響整個系統的性能,并使之成為整個系統的瓶頸.若能將請求數據包和響應數據包分開處理,采用單工方式對請求數據包進行封包,將響應數據包直接反饋給客戶端[9],這樣就可以大大提高整個集群系統性能,IP隧道(TUN)模式就是基于單工機制來實現服務器集群負載均衡的.
3.1 IP TUN工作原理
首先,在服務器集群中建立IP隧道.在IP TUN體系結構(如圖3所示)中,有一個統一的VIP(虛擬IP)地址,服務器集群中每個主機都將VIP地址配置到自己的IP隧道設備上[10].
其次,所有的網絡服務全部虛擬到VIP服務器上以供外部網絡訪問.
數據包處理工作過程為,客戶端發送服務請求到VIP服務器上,VIP服務器對請求數據包進行IP封包后通過負載均衡設備對集群內主機進行選擇,集群內主機接收到請求數據包后對數據包進行處理并直接將處理結果反饋給客戶端.
3.2 IPTUN封包和數據包反饋過程
如圖3所示,在IP TUN工作過程中,客戶請求數據包發送到統一的虛擬IP地址服務器上,要將數據包進行封裝,然后通過隧道發送到相應主機上,最后通過主機直接反饋給客戶端,假定外網客戶端IP地址為102.1.1.2,其過程如圖4所示.
這里需要注意的是,經過實際服務器處理后的IP packet中,實際反饋給客戶端的數據包的源地址是VIP.

圖2 VS/NAT的例子

圖3 VS/TUN的體系結構
隨著人們對Linux服務器依賴的加深,對其可靠性、負載能力和計算能力也倍加關注,Linux集群技術應運而生.本文提出了基于Linux系統的校園網絡負載均衡方案,重點討論了基于IP層負載均衡調度的解決方法,提出了VS/NAT和VS/TUN實現模型,并對VS/NAT模型進行例證分析,證明了其應用的可靠性.

圖4 IP TUN封包和數據包反饋過程
[1]董靜宜,王鵬,陳磊,等.云計算集群系統負載均衡算法的熵值判定[J].成都信息工程學院學報,2010,25(6):580-583.
[2]陳超.利用LVS中的IP負載均衡技術建立可伸縮性網絡服務[J].四川理工學院學報(自然科學版),2006,19(4):81-85.
[3]李文中,郭勝,許平,等.服務組合中一種自適應的負載均衡算法[J].軟件學報,2006,17(5):1068-1075.
[4]戴藝,蘇金樹,孫志剛.基于流映射的負載均衡調度算法研究[J].計算機學報,2012,35(2):218-227.
[5]郭成城,晏蒲柳.一種異構Web服務器集群動態負載均衡算法[J].計算機學報,2005,28(2):179-184.
[6]Christopher Negus.Linux Bible,2011 Edition[M].Hoboken:W iley Publishing,2011:503-510.
[7]李飛,楊放春,蘇森.分布式W曲勇愛務QoS注冊中的高效負載均衡方法[J].電子與信息學報,2009,32(5):1022-1025.
[8]Lada A Adamic,Bernardo A Huberman.Zipf’s Law and the Internet[J].Glottometrics,2002(3):143-150.
[9]KoloniariG,Pitoura E.Peer-to-peermanagementof XML data:Issues and research challenges[J].ACM SIGMOD Record,2005,34 (2):6-17.
[10]董麗麗.基于Linux集群負載均衡算法的分析與研究[D].西安:西安建筑科技大學,2009.
The Balancing Scheme for Campus Network Load Based on Linux Cluster
HU Xiu-jian1,WANG Hao2,LIAN Xiang-li1,CHEN Wei1
(1.Department of Computer and Information,Suzhou Vocational and Technological College,Suzhou 234011,China; 2.School of Computer and Information,Fuyang Teachers College,Fuyang 36037,China)
In order to solve the problem of campus network congestion,this paper puts forward a balancing scheme for campus network load based on Linux cluster,in which address translation and IP tunnel are used.. The two ways can make the computer cluster into a virtualization server so as to realize load balance scheduling in terms of IP layer.This scheme can give full play to the campus network equipment utilization,reduce the unit capital investment and maintenance costs,and thus improve the overall performance of the campus network.
load balancing;network address translation;IP tunnel;virtual server
TP393.1
A
1008-2794(2012)08-0109-05
2012-04-16
安徽省教育廳優秀青年人才基金項目“基于自適應算法的校園網絡鏈路負載均衡研究與應用”(2012SQRL263)
胡秀建(1979—),男,安徽宿州人,講師,碩士,研究方向:計算機網絡管理、信息安全等.