环境: 192.168.1.8(dr,real server) 192.168.1.88(real server) 192.168.1.188(real server) 1.dr安装配置: (1)安装ipvsadm yum install ipvsadm (2)绑定vip: ifconfig eth0:0 192.168.1.200 broadcast 192.168.1.200 netmask 255.255.255.255 u
环境: 192.168.1.8(dr,real server) 192.168.1.88(real server) 192.168.1.188(real server)
1.dr安装配置:
(1)安装ipvsadm
yum install ipvsadm
(2)绑定vip:
ifconfig eth0:0 192.168.1.200 broadcast 192.168.1.200 netmask 255.255.255.255 up
(3)增加路由到eth0:0
route add -host 192.168.1.200 dev eth0:0
(4)配置转发:
echo 1 >/proc/sys/net/ipv4/ip_forward
(5)增加real server
ipvsadm -c
ipvsadm -a -t 192.168.1.200:3306 -s rr -p 600
ipvsadm -a -t 192.168.1.200:3306 -r 192.168.1.8:3306 -g
ipvsadm -a -t 192.168.1.200:3306 -r 192.168.1.88:3306 -g
ipvsadm -a -t 192.168.1.200:3306 -r 192.168.1.188:3306 -g
(6)启动:
ipvsadm
ip virtual server version 1.2.1 (size=4096)
prot localaddress:port scheduler flags
-> remoteaddress:port forward weight activeconn inactconn
tcp 192.168.1.200:mysql rr persistent 600
-> 192.168.1.188:mysql route 1 0 0
-> 192.168.1.88:mysql route 1 0 0
-> 192.168.1.8:mysql local 1 0 0
以上步骤可写成脚本:
cat /etc/init.d/lvsdr
#dscription: start lvs of director server
vip=192.168.1.200
rip1=192.168.1.8
rip2=192.168.1.88
rip3=192.168.1.188
/etc/rc.d/init.d/functions
case $1 in
start)
echo start lvs of director server
# set the virtual ip address and sysctl parameter
/sbin/ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up
echo 1 >/proc/sys/net/ipv4/ip_forward
#clear ipvs table
/sbin/ipvsadm -c
#set lvs
/sbin/ipvsadm -a -t $vip:3306 -s rr -p 600
/sbin/ipvsadm -a -t $vip:3306 -r $rip1:3306 -g
/sbin/ipvsadm -a -t $vip:3306 -r $rip2:3306 -g
/sbin/ipvsadm -a -t $vip:3306 -r $rip3:3306 -g
#run lvs
/sbin/ipvsadm
;;
stop)
echo close lvs directorserver
echo 0 >/proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -c
/sbin/ifconfig eth0:0 down
;;
*)
echo usage: $0 {start|stop}
exit 1
esac
安装ldirectord
需要安装四个软件包:
heartbeat-1.2.4-1.i386.rpm heartbeat-pils-1.2.4-1.i386.rpm
heartbeat-ldirectord-1.2.4-1.i386.rpm heartbeat-stonith-1.2.4-1.i386.rpm
rpm -ivh *.rpm --nodeps --force
修改配置文件:
cat /etc/ha.d/ldirectord.cf
#global directives
checktimeout=20
checkinterval=10
fallback=127.0.0.1:3306
autoreload=yes
logfile=/var/log/ldirectord.log
quiescent=no
# sample for an mysql virtual service
virtual=192.168.1.200:3306
real=192.168.1.8:3306 gate
real=192.168.1.88:3306 gate
real=192.168.1.188:3306 gate
fallback=127.0.0.1:3306 gate
service=mysql
checktype=negotiate
login=root
passwd=123456
request=show status
scheduler=rr
2.real server配置: 在三个节点均这样操作:
增加/etc/init.d/lvsrs 脚本:
cat /etc/init.d/lvsrs
#!/bin/bash
#description : start real server
vip=192.168.1.200
/etc/rc.d/init.d/functions
case $1 in
start)
echo start lvs of real server
/sbin/ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up
echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce
echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
;;
stop)
/sbin/ifconfig eth0:0 down
echo close lvs director server
echo 0 >/proc/sys/net/ipv4/conf/eth0:0/arp_ignore
echo 0 >/proc/sys/net/ipv4/conf/eth0:0/arp_announce
echo 0 >/proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 >/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo usage: $0 {start|stop}
exit 1
esac
3.启动lvs集群服务:
(1)启动real server: 在三个节点上都操作
/etc/init.d/lvsrs start
(2)启动ldirectord 在dr上
/etc/init.d/ldirectord start
查看输出日志:
[sat may 19 01:25:33 2012|ldirectord] removed real server: 192.168.1.8:3306 ( x 192.168.1.200:3306
[sat may 19 01:25:33 2012|ldirectord] removed real server: 192.168.1.88:3306 ( x 192.168.1.200:3306
[sat may 19 01:25:33 2012|ldirectord] removed real server: 192.168.1.188:3306 ( x 192.168.1.200:3306
[sat may 19 01:25:33 2012|ldirectord] removed virtual server: 192.168.1.200:3306
[sat may 19 01:25:33 2012|ldirectord] linux director daemon terminated on signal: term
[sat may 19 01:25:34 2012|ldirectord] starting linux director v1.77.2.36 as daemon
[sat may 19 01:25:34 2012|ldirectord] added virtual server: 192.168.1.200:3306
[sat may 19 01:25:34 2012|ldirectord] added fallback server: 127.0.0.1:3306 ( x 192.168.1.200:3306) (weight set to 1)
[sat may 19 01:25:34 2012|ldirectord] added real server: 192.168.1.8:3306 ( x 192.168.1.200:3306) (weight set to 1)
[sat may 19 01:25:34 2012|ldirectord] deleted fallback server: 127.0.0.1:3306 ( x 192.168.1.200:3306)
[sat may 19 01:25:34 2012|ldirectord] added real server: 192.168.1.88:3306 ( x 192.168.1.200:3306) (weight set to 1)
[sat may 19 01:25:34 2012|ldirectord] added real server: 192.168.1.188:3306 ( x 192.168.1.200:3306) (weight set to 1)
配置完成,临控时时状况:
在dr上 ipvsadm
ipvsadm
ip virtual server version 1.2.1 (size=4096)
prot localaddress:port scheduler flags
-> remoteaddress:port forward weight activeconn inactconn
tcp 192.168.1.200:mysql rr persistent 600
-> 192.168.1.188:mysql route 1 0 0
-> 192.168.1.88:mysql route 1 0 0
-> 192.168.1.8:mysql local 1 0 0
配置完毕。