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





