mysql主主同步
node1:192.168.1.51
node2:192.168.1.54
VIP:192.168.1.55
安装lvs\\只需要ipvsadm模块
#yum install ipvsadm
安装keepalived
#tar -zxvf keepalived-1.2.7.tar.gz
#./configure --prefix=/usr/local/keepalived
#make &&make install
# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
#mkdir /etc/keepalived
#iptables -A INPUT -p vrrp -j ACCEPT //这里不开启vrrp协议的端口,会造成backup服务器检测不到master服务器的是否正常而自动启动backup的应用服务
node1:192.168.1.53
#vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
admin@company.com
}
notification_email_from alarm@company.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS1
}
vrrp_sync_group test {
group {
loadbalance
}
}
vrrp_instance loadbalance {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 51
priority 200
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.55 dev eth0 label eth0:1 //55为VIP
}
}
virtual_server 192.168.1.55 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 20
protocol TCP
sorry_server 192.168.1.54 3306
real_server 192.168.1.53 3306 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
node2:192.168.1.54
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
admin@company.com
}
notification_email_from alarm@company.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS1
}
vrrp_sync_group test {
group {
loadbalance
}
}
vrrp_instance loadbalance {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 51
priority 50 //必须比master低
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.55 dev eth0 label eth0:1
}
}
virtual_server 192.168.1.55 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 20
protocol TCP
sorry_server 192.168.1.54 3306
real_server 192.168.1.53 3306 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
node1 node2
vim /etc/rc.d/init.d/realserver.sh
#!/bin/bash
# description: Config realserver lo and apply noarp
SNS_VIP=10.1.1.176
/etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
/sbin/route add -host $SNS_VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
stop)
ifconfig lo:0 down
route del $SNS_VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
启动(先启动数据库)
#/etc/rc.d/init.d/realserver.sh start
#/etc/rc.d/init.d/keepalived start
#echo “/etc/rc.d/init.d/realserver.sh start” >>/etc/rc.local
#echo “/etc/rc.d/init.d/keepalived start” >>/etc/rc.local
查看状态
# 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.55:mysql rr persistent 20
->192.168.1.53:mysql Route 3 0 0
测试
ü 停掉master上的mysql,看看能否自动切换到sorry_server,使用如下命令查看:ipvsadm –ln。
ü 停掉master上的keepalived,看写VIP是否会迁移到backup。
ü 启动master上的mysql,看是否能切换回master。
ü 启动master上的keepalived,看VIP是否会迁移回master上。
ü 重启master的系统,看看切换过程是否OK
还是有点用的。LVS集群基本能支持所有应用,因为工作在第4层,所以LVS可以对几乎所有应用进行负载均衡,包括Web、数据库等。注意:LVS并不能完全判别节点故障,比如在WLC规则下,如果集群里有一个节点没有配置VIP,将会导致整个集群不能使用。还有一些其他问题,目前尚需进一步测试。mysql数据库负载均衡 一般多用于读负载, lvs 负载均衡,keepalived 高可用性。
LVS软件负载均衡器
LVS(LinuxVirtual Server)是由章文嵩博士主导开发的一款开源软件,可以实现Linux平台下的基于网络层的负载均衡软件。典型的基本架构图如图所示:
LVS集群采用IP负载均衡技术和基于内容请求分发技术。
LVS集群采用基于IP负载均衡技术和基于内容请求分发技术。当客户端有请求时,首先将请求包传送到Load Balance,然后Load Balance从后面的Real Servers中按照一定的算法策略选取一台Real Server,比如Real Server1,然后把请求包发送给Real Server1进行处理。对所有用户而言,面向用户的服务器端IP地址,只有一台,称之为VirtualIP Address。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)