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