基于Linux的負(fù)載均衡技術(shù)
引言
隨著計算機(jī)網(wǎng)絡(luò)和通信技術(shù)的快速發(fā)展,越來越多的人通過互聯(lián)網(wǎng)獲取信息、購物和娛樂,大量用戶進(jìn)入網(wǎng)絡(luò),面對巨大的數(shù)據(jù)流量和計算強(qiáng)度,各類信息中心或數(shù)據(jù)處理中心迫切需要具有快速響應(yīng)能力、高可伸縮性、高可用性、易于管理的信息服務(wù)器來提高網(wǎng)絡(luò)吞吐量和對請求響應(yīng)的能力。為保證及時的處理用戶請求,增加網(wǎng)絡(luò)吞吐量,提高服務(wù)質(zhì)量,勢必需要的對服務(wù)器軟硬件進(jìn)行升級,一般采取兩種方案,一是改善單個服務(wù)器的配置,如更換處理速度更快的服務(wù)器等以提高其性能,另一種做法則是把多臺服務(wù)器用局域網(wǎng)絡(luò)連接成一個整體結(jié)構(gòu),通過并行處理及相互間的信息交流來擴(kuò)展其性能。顯然后者具有很高的整體性能、高可伸縮性、高可靠性和更高的性價比。
LinuxVirtualServer集群的結(jié)構(gòu)
Linux虛擬服務(wù)器(LinuxVirtualServer,LVS)建筑于實(shí)際的服務(wù)器集群之上,用戶看不到提供服務(wù)的多臺實(shí)際服務(wù)器,而只能看見一臺作為負(fù)載平衡器的服務(wù)器。實(shí)際的服務(wù)器通過高速局域網(wǎng)或地理上分散的廣域網(wǎng)連接。實(shí)際服務(wù)器的前端是一臺負(fù)載平衡器(LoadBalance,LB),它將用戶的請求調(diào)度到真實(shí)服務(wù)器上完成,客戶訪問集群系統(tǒng)提供的網(wǎng)絡(luò)服務(wù)就像訪問一臺高性能、高可用的服務(wù)器一樣。
LinuxVirtualServer集群中負(fù)載均衡技術(shù)
2.1負(fù)載均衡調(diào)度算法
均衡算法設(shè)計的好壞直接決定了集群系統(tǒng)的性能與效率,設(shè)計不好的算法,不但不能有效緩解集群的負(fù)載不平衡狀況,還可能由于負(fù)載信息收集、進(jìn)程的動態(tài)調(diào)度增加額外通信、
收稿日期:2014-06-05策劃、連接等開銷,增加系統(tǒng)的響應(yīng)時間。負(fù)載初始設(shè)置即負(fù)載分擔(dān)算法的主要任務(wù)是如何理智的選擇下一個集群節(jié)點(diǎn)然后決定將新的服務(wù)請求轉(zhuǎn)發(fā)給它。
針對不同的網(wǎng)絡(luò)服務(wù)需求和服務(wù)器配置,LVS負(fù)載均衡調(diào)度可實(shí)現(xiàn)如下幾種負(fù)載調(diào)度算法(網(wǎng)絡(luò)管理員也可以根據(jù)不同的應(yīng)用情況選擇最佳的算法):
輪轉(zhuǎn)調(diào)度算法
加權(quán)輪轉(zhuǎn)調(diào)度算法
最小連接調(diào)度算法
加權(quán)最小連接調(diào)度算法
2.2集群管理
LVS集群包括4個進(jìn)程、1個配置文件和1個用戶界面。具體如下:
pulse進(jìn)程,用于開啟集群服務(wù);
nanny進(jìn)程,用于監(jiān)視服務(wù)器的負(fù)載以及是否可用。當(dāng)節(jié)點(diǎn)或進(jìn)程失敗后,會在LVS中寫一條警告記錄并移去一條規(guī)則。因此調(diào)度器能自動掩蓋進(jìn)程或服務(wù)器的失敗,當(dāng)故障恢復(fù)后,又可重新提供服務(wù)[3];
Ipvsadm進(jìn)程,用于更新路由列表;
LVS進(jìn)程,通過調(diào)用Ipvsadm進(jìn)程進(jìn)行管理,包括添加,刪除路由列表;
配置文件etc/lvscf,為所有進(jìn)程提供配置參數(shù);
用戶界而piranha,可方便地用于配置和管理服務(wù)器集群。
3Linux下負(fù)載均衡系統(tǒng)的建立
在集群系統(tǒng)環(huán)境中,設(shè)置主從調(diào)度器各1臺、服務(wù)器3臺,其中每個調(diào)度器需要雙網(wǎng)絡(luò)適配器,其中一個連接公共網(wǎng)絡(luò),另一個連接內(nèi)部網(wǎng)絡(luò)。內(nèi)部網(wǎng)絡(luò)由調(diào)度器和3臺服務(wù)器組成,而服務(wù)器可以是任意的硬件平臺,運(yùn)行任意的操作系統(tǒng)。
3.1集群的配置
3.1集群的配置
在調(diào)度器雙網(wǎng)卡中,eth0與外部網(wǎng)絡(luò)相連,從網(wǎng)絡(luò)管理員處申請1個IP地址作為虛擬IP地址,這里使用的是21.156.192.158,eth1與內(nèi)部服務(wù)器子網(wǎng)相連,分配IP地址192.168.1.1,并偽裝為192.168.1.254。在服務(wù)器上分配IP地址并設(shè)置默認(rèn)網(wǎng)關(guān)為192.168.1.254;
在調(diào)度器上安裝linuxRedHat6.1以及集群軟件。3臺服務(wù)器提供Web服務(wù),為了驗(yàn)證負(fù)載被均衡到3臺服務(wù)器上,將它們的Web主頁設(shè)置為不一樣,根據(jù)主頁的顯小,可知連接的是哪一臺服務(wù)器;
在調(diào)度器上定義包過濾規(guī)則,使其能夠?qū)P包進(jìn)行偽裝并轉(zhuǎn)發(fā):lpchains一Aforward-jMASQ-s192.168.1.0/24-d0.0.0.0/0
編輯/etc/lvscf配置文件,選擇輪轉(zhuǎn)調(diào)度算法,在調(diào)度器上用命令/etc/rcd/init.d/pulse開啟虛擬服務(wù)。
3.2系統(tǒng)測試
用瀏覽器訪問21.156.192158,通過對瀏覽器的刷新,可以看到3個不同的主頁依次出現(xiàn),從而有效證明了訪問的負(fù)載被分擔(dān)到3臺不同的服務(wù)器上。
接下來進(jìn)一步實(shí)驗(yàn),為3臺服務(wù)器配置相同的Web頁面和MySQl數(shù)據(jù)庫系統(tǒng)。當(dāng)連續(xù)提交記錄檢索時,速度明顯高于單機(jī)串行檢索速度的總和;
當(dāng)主調(diào)度器停機(jī)時,從調(diào)度器將自動接管負(fù)載的平衡服務(wù)。
最后,用網(wǎng)絡(luò)命令對主頻為100MHz,內(nèi)存為32M的主調(diào)度器進(jìn)行了簡單的負(fù)載測試。當(dāng)IP包的大小為64KB時,調(diào)度器對IP包的處理平均延時為10.4u/s,由此可算出它的最大負(fù)載能力為6.15MB/S。假設(shè)服務(wù)器的平均流量為600KB/s,調(diào)度器能對10臺服務(wù)器進(jìn)行管理。
3.3結(jié)果分析
基于IP層負(fù)載平衡調(diào)度的操作是在操作系統(tǒng)核心空間中完成的,它的調(diào)度開銷很小,所以它能調(diào)度相當(dāng)數(shù)量的服務(wù)器,一般不會成為系統(tǒng)的瓶頸。當(dāng)整個系統(tǒng)的負(fù)載超過目前所有節(jié)點(diǎn)的處理能力時,可以通過增加服務(wù)器來滿足不斷增長的請求負(fù)載。由于對大多數(shù)服務(wù)網(wǎng)絡(luò)來說,節(jié)點(diǎn)與節(jié)點(diǎn)之間不存在很強(qiáng)的相關(guān)性,所以整個系統(tǒng)的性能可以隨著服務(wù)器池中的節(jié)
從LVS原理和上述實(shí)驗(yàn)也可以看出,調(diào)度器有可能成為系統(tǒng)單一的失效點(diǎn),為了防止它的失效,建立了調(diào)度器的備份。2個心跳進(jìn)程(Heart-beatDaemon)分別在主、從調(diào)度器上運(yùn)行,他們通過串口線和UDP等心跳線來相互匯報各自的狀態(tài)信息。當(dāng)從調(diào)度器不能聽到主調(diào)度器的心跳時,從調(diào)度器會通過ARP欺騙來接管主調(diào)度器的工作并提供負(fù)載調(diào)度服務(wù)。當(dāng)主調(diào)度器恢復(fù)時,將自動變成從調(diào)度器。在實(shí)驗(yàn)中,僅簡單地通過網(wǎng)絡(luò)將主從調(diào)度器句_聯(lián),可以實(shí)現(xiàn)由主至從的自動切換,而不能實(shí)現(xiàn)主調(diào)度器故障恢復(fù)后到從調(diào)度器的切變。
4結(jié)語
集群系統(tǒng)的優(yōu)勢在于硬件和軟件的冗余。通過監(jiān)測節(jié)點(diǎn)、失敗的進(jìn)程,重新正確地配置系統(tǒng),使工作能被集群中的其余節(jié)點(diǎn)接管,從而得到高可用的集群系統(tǒng)。采用LVS來實(shí)現(xiàn)負(fù)載均衡,它最大地發(fā)揮了網(wǎng)絡(luò)和PC機(jī)的優(yōu)勢,帶來了可觀的性能,是一種簡單快捷而目_經(jīng)濟(jì)高效的方法,是電子政務(wù)/電子商務(wù)中可靠的服務(wù)解決方案。
20211221_61c1e12a3e729__基于Linux的負(fù)載均衡技術(shù)