環境: 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????????
配置完畢。