MySQL LVS负载均衡
程序员文章站
2022-06-15 16:10:29
...
环境: 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
配置完毕。
上一篇: 汤圆怎么煮不破好吃
下一篇: MySQL学习系列之数据库概述