高可用雙機lvs
1、機器ip
192.168.2.245 虛拟ip
192.168.2.119 lvsmaster lvs主
192.168.2.205 lvsbackup lvs從
192.168.2.120 realserver1 web伺服器
192.168.2.127 realserver2 web伺服器
2、lvs安裝
yum -y install ipvsadm
yum -y install libnet
yum -y install e2fsprogs
yum -y install heartbeat heartbeat-ldirectord
cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/
cp /usr/share/doc/heartbeat-ldirectord-2.1.3/ldirectord.cf /etc/ha.d/
3、配置步驟
主lvs配置
(1)lvsdr-basic腳本配置
cat >/etc/init.d/lvsdr-basic<<EOF
#!/bin/sh
VIP=192.168.2.245
RIP1=192.168.2.120
RIP2=192.168.2.127
/etc/rc.d/init.d/functions
case "$1" in
start)
echo "start [OK]"
/sbin/ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev eth0:1
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
/sbin/ipvsadm -A -t$VIP:80 -s rr
/sbin/ipvsadm -a -t$VIP:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t$VIP:80 -r $RIP2:80 -g
/sbin/ipvsadm
;;
stop)
echo "stop [OK]"
*)
echo "Usage:$0 {start|stop}"
exit 1
esac
EOF
chmod u+x /etc/init.d/lvsdr-basic
(2)ha.cf配置
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
deadtime 20
initdead 20
#bcast eth1
ucast eth0 192.168.2.205
auto_failback on
node master 主節點
node lvsbackup
ping_group hacluster 192.168.2.119 192.168.2.205
respawn root /usr/lib64/heartbeat/ipfail
apiauth ipfail gid=root uid=root
(3)authkeys認證檔案的配置
auth 1
1 crc
chmod u+x 600 authkeys
(4)ldirectord.cf檔案配置
checktimeout=3
checkinterval=1
autoreload=no
logfile="/var/log/ldirectord.log"
quiescent=no
virtual=192.168.2.245:80
real=192.168.2.120:80 gate
real=192.168.2.127:80 gate
service=http
request="test.html"
receive="Test"
scheduler=sh
protocol=tcp
(5)haresources檔案配置
加入
memcache.dev-innet-shopex.cn IPaddr::192.168.2.245 lvsdr-basic ldirectord
(5)關閉ldirectord服務開啟heartbeat服務。
# chkconfig --del ldirectord
# chkconfig --level 2345 ldirectord off
# chkconfig --level 2345 heartbeat on
備份lvs配置
(1)switchdr配置
cat > /etc/init.d/switchdr << EOF
# description: close lo0 and arp_ignore
start)
echo "************* start director server and close tunl ***********"
ifconfig lo:0 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
;;
stop)
echo "start Real Server"
ifconfig eth0:0 down
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP up
/sbin/route add -host $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
*)
echo "Usage: switchdr {start|stop}"
exit 1
chmod u+x /etc/init.d/switchdr
cat > ha.cf << EOF
ucast eth0 192.168.2.119
node memcache.dev-innet-shopex.cn
(3)authkeys 配置
cat > authkeys << EOF
chmod 600 authkeys
(4) ldirectord.cf配置
cat > ldirectord.cf << EOF
(5) 配置haresources
memcache.dev-innet-shopex.cn switchdr IPaddr::192.168.2.245 ldirectord
(6)關閉ldirectord服務開啟heartbeat服務。
3、用戶端配置
ip 192.168.2.127 192.168.2.120
cat > /etc/init.d/realserver << EOF
#!/bin/bash
#description : start realserver
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $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
chmod u+x /etc/init.d/realservert
執行# /etc/init.d/realserver
4、啟動服務
lvs主
/etc/ini.d/heartbeat start
lvs備份
/etc/ini.d/switchdr stop
5、測試
(1)停掉主備份會接替主,當主恢複時備份自動轉為備份狀态。
(2)停止一台nginx真實伺服器。ipvsadm将會自動把這一台機器剔除。
本文轉自yuangang_love 51CTO部落格,原文連結:http://blog.51cto.com/linux008/538369,如需轉載請自行聯系原作者