LVS安裝與配置

1 檢查內核是否支持ipvs
modprobe -l | grep ipvs
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs.ko
……
出現上面類似輸出,即證明內核默認支持ipvs

2 下載及安裝【直接yum install ipvsadm安裝即可】
根據內核版本下載對應的軟件包
cd /usr/local/src
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
tar zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
make
make install
如果出現如下錯誤,解決方法:ln -s /usr/src/kernels/2.6.18-308.el5-x86_64/ /usr/src/linux
libipvs.h:14:23: error: net/ip_vs.h: No such file or directory

ipvsadm –help 安裝成功,會有提示
find / -name ipvsadm 查看ipvsadm的安裝位置

3 配置lvs實現負載均衡,配置啓動腳本lvs.sh。視需求,將虛擬ip綁定到內網或者外網網卡
#!/bin/bash
# lvs.sh
GW=192.168.1.1
# website director vip.
WEB_VIP=192.168.1.50
WEB_RIP1=192.168.1.148
WEB_RIP2=192.168.1.42
. /etc/rc.d/init.d/functions
logger $0 called with $1
case “$1″ in
start)
# Clear all iptables rules.
#/sbin/iptables -F
# Reset iptables counters.
# /sbin/iptables -Z
# Clear all ipvsadm rules/services.
/sbin/ipvsadm -C
#set lvs vip for dr
/sbin/ipvsadm –set 30 5 60
/sbin/ifconfig eth1:0 $WEB_VIP broadcast $WEB_VIP netmask 255.255.255.255 up
/sbin/route add -host $WEB_VIP dev eth1:0
/sbin/ipvsadm -A -t $WEB_VIP:80 -s wrr -p 3
/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP1:80 -g -w 1
/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP2:80 -g -w 1
touch /var/lock/subsys/ipvsadm >/dev/null 2>&1
# set Arp
/sbin/arping -I eth1 -c 5 -s $WEB_VIP $GW >/dev/null 2>&1
;;
stop)
/sbin/ipvsadm -C
/sbin/ipvsadm -Z
ifconfig eth1:0 down
route del $WEB_VIP >/dev/null 2>&1
rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1
/sbin/arping -I eth1 -c 5 -s $WEB_VIP $GW
echo “ipvsadm stoped”
;;
status)
if [ ! -e /var/lock/subsys/ipvsadm ];then
echo “ipvsadm is stoped”
exit 1
else
ipvsadm -ln
echo “……….ipvsadm is OK.”
fi
;;
*)
echo “Usage: $0 {start|stop|status}”
exit 1
esac
exit 0

執行這個腳本,啓動

4 Real Server的配置
#!/bin/bash
VIP=192.168.1.50 ####虛擬ip
ROUTE=192.168.1.1 ####回包走的路由IP 如果服務器上已經設置,可以註釋掉
start() {
ifconfig lo:0 $VIP/32 broadcast $VIP up
route add -host $VIP dev lo:0
route add default gw $ROUTE ####如果服務器上已經設置,可以註釋掉
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo start;
}

stop() {
route del default gw $ROUTE
route del -host $VIP dev lo:0
ifconfig lo:0 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo stop;
}

case $1 in

start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo ‘start | stop’
esac

在後端真實服務器上,執行以上腳本。ip addr查看是否成功。
5 常用維護命令
lvs服務器啓動腳本執行後,執行/etc/init.d/ipvsadm save保存啓動配置,配置會保存在/etc/sysconfig/ipvsadm裏面。
就像/etc/sysconfig/iptables的配置一樣,可以自由修改,然後執行service ipvsadm start|stop|status|restart等命令。

ipvsadm -ln -c 顯示當前連接
ipvsadm -ln -c | wc -l 顯示當前連接數
ipvsadm -ln –stats 顯示統計信息
ipvsadm -ln –rate 顯示連接速率信息
ipvsadm -ln –timeout 顯示tcp tcpfin udp 的timeout值,也就是啓動腳本里/sbin/ipvsadm –set 30 5 60設置的值

6 常用調度算法
A 輪叫調度 rr 無狀態調度
假設所有服務器處理性能均相同,不管服務器的當前連接數和相應速度.算法相對簡單,不適用於服務器組中處理性能不一的情況
B 加權輪叫調度 wrr
當服務器的權值爲零時,表示該服務器不可用而不被調度。這樣做的目的是將服務器切除服務,同時與其他加權算法保持一致
C 最小連接調度 lc 動態調度算法
把新的連接請求分配到當前連接數最小的服務器。通過服務器當前所活躍的連接數來估計服務器的負載情況。調度器需要記錄各個服務器已建立連接的數目。
D 加權最小連接調度 wlc
加權最小連接調度是最小連接調度的超集,各個服務器用相應的權值表示其處理性能。加權最小連接調度在調度新連接時,儘可能使服務器的已建立連接數和其權值成比例。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章