MySQL LVS负载均衡


环境: 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        
配置完毕。

相关内容