Linux負載均衡軟體LVS DR模式的簡單示例

2021-08-27 19:23:51 字數 3422 閱讀 1669

本文乙個簡單的示例演示lvs的配置(dr模式)和測試。

使用的配置環境如下:

director server: 192.168.8.4

real server1: 192.168.8.5

real server2: 192.168.8.6

vip: 192.168.8.200

網路topology圖如下:

圖2中的vip指的是虛擬ip位址,還可以叫做lvs集群的服務ip,在dr、tun模式中,

資料報是直接返回給使用者的,所以,在director server上以及集群的每個節點上都需要設定這個位址。

在director server上,虛擬ip繫結在真實的網路介面裝置上,例如eth0:0。

linux2.6核心預設支援lvs功能,系統安裝完畢,可以通過如下命令檢查kernel是否已經支援lvs的ipvs模組:

[root@localhost ~]#modprobe -l |grep ipvs

/lib/modules/2.6.18-53.el5/kernel/net/ipv4/ipvs/ip_vs_sh.ko

/lib/modules/2.6.18-53.el5/kernel/net/ipv4/ipvs/ip_vs_rr.ko

如果有類似上面的輸出,表明系統核心已經預設支援了ipvs模組。接著就可以安裝ipvs管理軟體了。

一 在director serve上安裝ipvs管理軟體

tar zxvf ipvsadm-1.24.tar.gz

cd ipvsadm-1.24

make

make install

注意:在make時可能會出現錯誤編譯資訊,這是由於編譯程式找不到對應核心的原因,

按照如下操作就可以正常編譯:

[root@localhost ~]#ln -s /usr/src/kernels/2.6.18-53.el5-i686/ /usr/src/linux

安裝完成後,通過ipvsadm命令列進行配置

首先在director server上繫結乙個虛擬ip,此ip用於對外提供服務,執行如下命令:

ifconfig eth0:0 192.168.8.200 broadcast 192.168.8.200 netmask 255.255.255.255 up

這樣在eth0裝置上繫結了乙個虛擬裝置eth0:0,同時設定了乙個虛擬ip是192.168.8.200,

也就是上面我們規劃的ip位址,然後指定廣播位址也為192.168.8.200,需要特別注意的是,

這裡的子網掩碼為255.255.255.255。

然後給裝置eth0:0指定一條路由,執行如下指令:

route add -host 192.168.8.200 dev eth0:0

接著啟用系統的包**功能,從而使系統充當路由器,執行如下指令:

[root@localhost ~]#echo "1" >/proc/sys/net/ipv4/ip_forward

指令中,引數值為1時啟用ip**,為0時禁止ip**。其實在dr模式中,開啟系統的包**功能不是必須的,

而在nat模式下此操作是必須的。

然後開始配置ipvs,執行如下操作:

ipvsadm -c

ipvsadm -a -t 192.168.8.200:8080 -s rr

ipvsadm -a -t 192.168.8.200:8080 -r 192.168.8.5:8080 -g

ipvsadm -a -t 192.168.8.200:8080 -r 192.168.8.6:8080 -g

上面操作中,第一行是清除核心虛擬伺服器列表中的所有記錄,

第二行是新增一條新的虛擬ip記錄,同時指定策略為輪詢。

第三、四行是在新加虛擬ip記錄中新增兩條新的real server記錄,並且指定lvs的工作模式為直接路由模式。

在dr模式下,director和real server需要在同乙個物理網段中。

-g代表gateway,意思為直接路由,還可以有-i(internet)隧道模型,-m(masq)偽裝,nat模式

二、real server 的配置

在lvs的dr和tun模式下,使用者的訪問請求到達真實伺服器後,是直接返回給使用者的,

而不再經過前端的director server,因此,就需要在每個real server節點上增加虛擬的vip位址,

ifconfig lo:0 192.168.8.200 broadcast 192.168.8.200 netmask 255.255.255.255 up

#子網掩碼255.255.255.255表示這個整個網段只有這乙個位址

route add -host 192.168.8.200 dev lo:0

#上面的命令表示網路請求位址是192.168.8.200的請求,返回的時候的源位址是lo:0網絡卡上配置的位址,

#這樣出去的ip包的src位址就是192.168.8.200

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

sysctl -p

在回環裝置上繫結了乙個虛擬ip位址,並設定其子網掩碼為255.255.255.255,

與director server上的虛擬ip保持互通,然後禁止了本機的arp請求。

由於虛擬ip,也就是上面的vip位址,是director server和所有的real server共享的,

如果有arp請求vip位址時,director server與所有real server都做應答的話,就會出現問題,

因此,需要禁止real server響應arp請求。

三、在real server上配置tomcat服務,略。

在192.18.8.5建乙個html檔案內容為:

this is the test page

from server 192.168.8.5

在192.18.8.6建乙個html檔案內容為:

this is the test page

from server 192.168.8.6

四 測試

客戶端通過vip訪問,如下面的url

可以發現返回的內容由192.168.8.5和192.168.8.6輪流提供。

也可在director上通過ipvsadm -lnc可以觀察排程的情況。

軟體負載均衡

硬體負載均衡效能優越,功能全面,但是 昂貴,一般適合初期或者土豪級公司長期使用。因此軟體負載均衡在網際網路領域大量使用。常用的軟體負載均衡軟體有nginx,lvs,haproxy等。本文參考大量文件,部分為直接拷貝,參考出處見負載均衡詳解 4 ngnix是一款輕量級的web伺服器 反向 伺服器,工作...

Linux負載均衡軟體LVS簡介

linux負載均衡軟體lvs lvs集群的體系結構以及特點 1 lvs簡介2 lvs體系結構 使用lvs架設的伺服器集群系統有三個部分組成 最前端的負載均衡層,用load balancer表示,中間的伺服器群組層,用server array表示,最底端的資料共享儲存層,用shared storage...

Linux 負載均衡

在排程器的實現技術中,ip負載均衡技術是效率最高的。在已有的ip負載均衡技術中有通過網路位址轉換 network address translation 將一組伺服器構成乙個高效能的 高可用的虛擬伺服器,我們稱之為vs nat技術 virtual server via network address...