您好,欢迎访问一九零五行业门户网

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 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        
配置完毕。
其它类似信息

推荐信息