LVS主要有位址轉換(NAT)、IP隧道(IP Tunneling)和直接路由(DR)這幾種負載均衡模型,本文主要建構基于DR模式的LVS。DR模式下負載排程器與實際伺服器須有一塊網卡連在同一實體網段上。此類型LVS工作原理是:負載均衡器接收到用戶端的請求資料包後,選擇合适的伺服器節點,将請求包的MAC位址改寫為目的伺服器節點的MAC位址,再将此包廣播到伺服器節點所在網段。每個伺服器節點都設定一個虛拟的網絡裝置(lo:0),這個裝置綁定了和均衡器一樣的VIP(Virtual IP,虛拟IP),隻是該裝置并不響應對VIP的ARP解析,不會和均衡器的VIP産生位址沖突。負載均衡器收到符合自身MAC的IP後,經過處理後直接應答資料包傳回給用戶端。
系統平台:RedHat 5.4
軟體包:ipvsadm-1.24-10.i386.rpm
網絡結構如下:
各伺服器IP規劃如下:
實作目标:用戶端通過VIP通路真實伺服器,Load Balancer将來自用戶端的通路按一定的負載均衡機制分發到Webserver1和Webserver2.
一.Load Balancer的配置
1.IP配置(略)
2.安裝ipvsadm管理程式:
[root@localhost~] # mount /dev/cdrom /media
[root@localhost~] # cd /media/Cluster
[root@localhost~] # rpm –ivh ipvsadm-1.24-10.i386.rpm
3.配置VIP設定腳本:
#!/bin/bash
VIP=200.10.1.10
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev eth0:0
4.給vip腳本設定可執行權限:
[root@localhost~] # chmod a+x vip.sh
5.運作vip腳本并設定為開機啟動:
[root@localhost~] # ./vip.sh
[root@localhost~] # echo “/root/vip.sh”>> /etc/rc.local
6.檢視腳本中的eth0:0的IP是否設定成功:
7.利用ipvsadm進行配置(重點):
[root@localhost~] # ipvsadm –A –t 200.10.1.10:80 –s rr –p 600
[root@localhost~] # ipvsadm –a –t 200.10.1.10:80 –r 200.10.1.2:80 –g
[root@localhost~] # ipvsadm –a –t 200.10.1.10:80 –r 200.10.1.3:80 –g
以上指令選項含義:
-A 增加一個virtual service
-t tcp協定
-s 算法 rr表示使用的是輪叫算法
-p 設定連接配接保持時間(預設300秒)
-a 增加一個virtual service
-r 指定真實實服務的IP及端口
-g 指定LVS使用DR直接路由模式
[root@localhost~] # ipvsadm-save > /etc/sysconfig/ipvsadm //将以上ipvsadm的配置儲存到/etc/sysconfig/ipvsadm,以後可以直接使”service ipvsadm start”啟動ipvsadm.
8.檢視ipvsadm清單:
二.Webserver1的配置:
這台伺服器上隻需要給虛拟網絡設定lo:0配置VIP,添加一條路由,然後設定不響應ARP請求即可,可以通過以下腳本來實作:
[root@localhost~] # vi lvs.sh
VIP="200.10.1.10"
/sbin/ifconfig eth0 200.10.1.2/24
/sbin/ifconfig lo:0 $VIP broadcast netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
//以下配置是使這台伺服器不響應ARP請求
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
給腳本增加可執行權限,然後啟動并設定為開機啟動:
[root@localhost~] # chmod a+x lvs.sh
[root@localhost~] # ./lvs.sh
[root@localhost~] # echo “/root/lvs.sh”>> /etc/rc.local
三.Webserver2的配置:
此伺服器上的配置同Webserver1基本一緻,隻需要将lvs.sh腳本中的IP設定為200.10.1.3即可。
四.建立測試頁面:
1.Webserver1:
[root@localhost~] # echo “This is Webserver1”> /var/www/html/index.html
1.Webserver2:
[root@localhost~] # echo “This is Webserver2”> /var/www/html/index.html
五.測試及驗證:
分别在兩台PC上打開浏覽器,輸入“http://200.10.1.10”,如果看到的是不同的頁面,說明LVS配置成功!
LVS配置成功!
本文轉自 kk5234 51CTO部落格,原文連結:http://blog.51cto.com/kk5234/531765,如需轉載請自行聯系原作者