LVS+Keepalived的安裝部署
前端調度master:IP->10.252.3.10
前端調度backup:IP->10.252.3.11
VIP:10.252.3.12
RealServer:10.252.3.15
RealServer:10.252.3.16
1:主備一起安裝keepalivedipvsadm
yum installkeepalived ipvsadm –y
注:使用ipvsadm –Ln可以來查看LVS的調度情況
====================================================================================
2:配置/etc/keepalived/keepalived.conf
主機10.252.3.10配置如下:
vrrp_instanceVI_1 {
state MASTER #主備的區別點,標識
interface eth1 #對應的網卡
virtual_router_id 60
priority 101 #優先級,誰做主(值越大,優先級越高)
advert_int 2
authentication { #驗證方式,以及密碼必須主備一樣
auth_type PASS
auth_pass 1234 #相對應的密碼
}
virtual_ipaddress { #切換方式。切換虛擬IP
10.252.3.12/4
}
}
Virtual_server10.252.3.12 80 { #對應的端口可以在這裏修改
delay loop 6 #健康檢查時間
lb_algo rr #均衡調度算法一共有十二種。這裏採用輪詢的方法
lb_kind DR #負載均衡轉發規則有三種:NAT,DR,TUN
real_server 10.252.3.15 80 {
weight 3
TCP_CHECK { #tcp的輪詢檢查設置
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 10.252.3.16 80 {
weight 3
TCP_CHECK { #tcp的輪詢檢查設置
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
備機配置: 10.252.3.11
Backup的keepalived配置主要是修改兩個地方,其他的都一樣:
state BACKUP #主備的區別點,標識
priority 100 #優先級,誰做主(值越大,優先級越高)
====================================================================================
3:在realserver上運行腳本
由於使用的方式爲DR,我們需要在實際虛擬機上部署DIP地址與VIP地址進行通信
編寫lvs_init.sh的腳本如下所示,後端兩臺虛擬機的lvs_init的腳本都一樣:
#!/bin/bash
#description: Config realserver lo and apply noarp
SNS_VIP= 10.252.3.12
./etc/rc.d/init.d/functions
case"$1" in
start)
ifconfig lo:0 $SNS_VIP netmask255.255.255.255 broadcast $SNS_VIP up#設置lo:0的IP地址
/sbin/route add -host $SNS_VIP dev lo:0 #添加路由
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 >/dev/null 2>&1 #更新配置
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $SNS_VIP >/dev/null2>&1
echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
給腳本權限 chmod +x /data/script/lvs_init.sh
./lvs_init start/stop 運行和停止腳本
Service keepalived start
使用ipvsadm –Ln來查看lvs負載均衡,可以使用webbech來測試。