keepalived(双主模式)+haproxy+mysql_slave

环境说明:

debian系统
keepalived_master1 +haproxy  192.168.7.32
keepalived_master1 +haproxy  192.168.9.52
mysql_master  192.168.6.123
mysql_slave1  192.168.4.21
mysql_slave2  192.168.9.53
vip1:192.168.8.102
vip2:192.168.8.103

一 keepalvied配置
1 keepalived配置文件(master1):

! Configuration File for keepalived
global_defs {
  notification_email {
    root@localhost
    }

notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id HAproxy237
}

vrrp_script chk_haproxy {                                   #HAproxy 服务监控脚本
  script "/etc/keepalived/check_haproxy.sh"
  interval 2
  weight 2
}

vrrp_instance VI_1 {
  state MASTER
  interface eth0
  virtual_router_id 51
  priority 100
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass 1111
}
  track_script {
    chk_haproxy
}
virtual_ipaddress {
    192.168.8.102
}
notify_master "/etc/keepalived/clean_arp.sh 192.168.8.102"
}
vrrp_instance VI_2 {
  state BACKUP
  interface eth0
  virtual_router_id 52
  priority 99
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass 1111
}
virtual_ipaddress {
  192.168.8.103
}
notify_master "/etc/keepalived/clean_arp.sh 192.168.8.103"
}

master2:

! Configuration File for keepalived
global_defs {
  notification_email {
    root@localhost
    }

notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id HAproxy237
}

vrrp_script chk_haproxy {                                   #HAproxy 服务监控脚本
  script "/etc/keepalived/check_haproxy.sh"
  interval 2
  weight 2
}

vrrp_instance VI_1 {
  state BACKUP # 这个要跟另一台主机相反
  interface eth0
  virtual_router_id 51
  priority 90 #
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass 1111
}
  track_script {
    chk_haproxy
}
virtual_ipaddress {
    192.168.8.102
}
notify_master "/etc/keepalived/clean_arp.sh 192.168.8.102"
}
vrrp_instance VI_2 {
  state MASTER  # 这个也要跟另一台主机的相反
  interface eth0
  virtual_router_id 52
  priority 100
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass 1111
}
virtual_ipaddress {
  192.168.8.103
}
notify_master "/etc/keepalived/clean_arp.sh 192.168.8.103"
}

2 检测haproxy的服务是否正常 (两个keepalved上面都需要有这个脚本)

yx@keep-backup:/etc/keepalived$ cat check_haproxy.sh
#!/bin/bash
A=`ps -C haproxy --no-header | wc -l`
if [ $A -eq 0 ];then
sudo /etc/init.d/haproxy start
sleep 3
if [ `ps -C haproxy --no-header | wc -l ` -eq 0 ];then
sudo /etc/init.d/keepalived stop
fi
fi

3 设置更新虚拟服务器(VIP)地址的arp记录到网关脚本(两台机器都要操作)

#!/bin/sh
VIP=$1
GATEWAY=192.168.11.254                                      #这个是本机的网卡的网关地址
/sbin/arping -I eth0 -c 5 -s $VIP $GATEWAY &>/dev/null

4 启动keepalived服务
master1


master2

二 haproxy安装和配置(见上一篇文章)
1 更改配置文件
2 设置启动脚本
3 启动

三 数据库安装
1 做好主从
2 在两个从数据库上面设置;

在slave1和slave2上分别给两个haproxy机器授权:如果还是报错,再尝试给vip授权

grant all privileges on *.* to ‘yx1‘@‘192.168.7.%‘ identified by ‘123456‘;
grant all privileges on *.* to ‘yx1‘@‘192.168.9.%‘ identified by ‘123456‘;
> flush privileges;
> 

四 测试keepalived+haproxy是否正常运行
1 浏览器访问测试
分别用vip 102和103访问

2 数据查询测试,在客户端上面用102和103分别去查询从数据库上面的东西

#用的8.102 

yx@es-2:~$ mysql -h192.168.8.102 -P3306 -uyx1 -p123456 -e "use test;show tables;"
+----------------+
| Tables_in_test |
+----------------+
| tb1            |
+----------------+
yx@es-2:~$ mysql -h192.168.8.102 -P3306 -uyx1 -p123456 -e "use test;show tables;"
+----------------+
| Tables_in_test |
+----------------+
| tb1            |
| tb2            |
+----------------+

#用 8.103去测试
yx@es-2:~$ mysql -h192.168.8.103 -P3306 -uyx1 -p123456 -e "use test;show tables;"
+----------------+
| Tables_in_test |
+----------------+
| tb1            |
+----------------+
yx@es-2:~$ mysql -h192.168.8.103 -P3306 -uyx1 -p123456 -e "use test;show tables;"
+----------------+
| Tables_in_test |
+----------------+
| tb1            |
| tb2            |
+----------------+

3 停掉其中一台keepalvied服务,再次进行上面的两步测试,发现还是正常的,
4 停掉其中的haproxy服务,发现haproxy会立马再启动起来,前提是keepalived服务在运行,这是因为通过那个检查脚本实现的

原文地址:https://blog.51cto.com/825536458/2353142

时间: 2024-12-11 17:37:23

keepalived(双主模式)+haproxy+mysql_slave的相关文章

keepalived双主模式实现nginx高可用及LNAMMP架构

keepalived双主模式实现nginx高可用及LNAMMP架构 一.利用keepalived实现nginx调度器高可用: 二.构建LNAMMP架构: 1) Nginx既是前端调度器,又是缓存服务器: 2) 将php的session缓存于memcached中: 3) 在Apache和php上部署Discuz论坛程序: 4) 使用https连接,即使用户使用的是http协议也可以以https协议进行访问: ---------------------------------------------

KeepAlived双主模式高可用集群

一.keepalived简介 keepalived是vrrp协议的实现,原生设计目的是为了高可用ipvs服务,keepalived能够配置文件中的定义生成ipvs规则,并能够对各RS的健康状态进行检测:通过共用的虚拟IP地址对外提供服务:每个热备组内同一时刻只有一台主服务器提供服务,其他服务器处于冗余状态,若当前在线的服务器宕机,其虚拟IP地址将会被其他服务器接替(优先级决定接替顺序),实现高可用为后端主机提供服务.   二.keepalived组件 Keepalived组件介绍 core:ke

keepalived双主模式高可用工作于NAT模型下的ipvs

一.Keepalived简介 ipvs提供高可用性,能够生成ipvs规则:也可以使用脚本来帮助高可用其他应用程序,没有heartbeart重量级:主要用在高可用ipvs,及一些反向代理应用程序 . 1.拓扑图 说明:1.两个代理服务器通过VIP向外提供数据 2.两个代理服务器都可以代理后端的服务器 3.为测试方便,后端服务器至提供静态页面 2.ip规划 3.安装配置haproxy 关于haproxy的详细配置, [[email protected] ~]# cat /etc/haproxy/ha

Keepalived双主模式配置流程

实验说明 1)keepalived 支持配置多个VRRP实例,每个实例对应一个业务 2)本次实验将实现 keepalived 的互为主备: 业务A:keepalived01为Master,keepalived02为Backup 业务B:keepalived01为Backup,keepalived02为Master 环境介绍 1)K1 Hostname:keepalived01.example.com IP:192.168.3.31 OS:Centos 7 2)K2 Hostname:keepal

haproxy高可用以及双主模式(二)

haproxy主备 虚拟VIP:192.168.33.130 把haproxy-01的配置文件拷贝到haproxy-02机器相应的目录即可 [email protected] haproxy]# scp haproxy.cfg [email protected]:/etc/haproxy/ haproxy.cfg                                     100% 3520     3.4KB/s   00:00 启动haproxy-02服务 [[email pro

[转] Haproxy、Keepalived双主高可用负载均衡

http://blog.chinaunix.net/uid-25266990-id-3989321.html 在测试了Nginx+Keepalived的负载均衡后,也对Haproxy+Keepalived双主模式做了测试,双主的模式充分利用了服务器资源,这样不会导致服务器浪费. 这里举例说明: 默认情况下,第一台负载均衡器主要分发www.zhirs.com的请求,第二台负载均衡器主要分发img.zhirs.com的请求. 任意一台宕机都不会影响网站分发. 实验环境 VIP1=192.168.13

Keepalived 之 双主模式+DNS轮询机制 实现高负载

一.Keepalived双主模式+DNS轮询机制作用 作用:在单主模式下,备机通常会以等待状态放着,不接受任何数据,导致所有数据请求只往主机-负载均衡发送,做成资源浪费:而双主模式,即创造两个VIP,两个VIP分别放在两台负载均衡的机器上,同时两台主机均为对方的备机,以作VIP的漂移,服务接管作用,加入DNS轮询机制,使客户端的域名分别依次解释到两个VIP上,形成两台负载均衡主机同时对外提供服务.同时也解决了单主模式下的单机性能屏颈. 二.网络拓扑图 三.两台负载均衡主机的Keepalived

nginx+keepalived高可用及双主模式

高可用有2中方式. 1.Nginx+keepalived 主从配置 这种方案,使用一个vip地址,前端使用2台机器,一台做主,一台做备,但同时只有一台机器工作,另一台备份机器在主机器不出现故障的时候,永远处于浪费状态,对于服务器不多的网站,该方案不经济实惠. 2.Nginx+keepalived 双主配置 这种方案,使用两个vip地址,前端使用2台机器,互为主备,同时有两台机器工作,当其中一台机器出现故障,两台机器的请求转移到一台机器负担,非常适合于当前架构环境. 1.Nginx+keepali

haproxy+keepalived主备与双主模式配置

Haproxy+Keepalived主备模式 主备节点设置 主备节点上各安装配置haproxy,配置内容且要相同 global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon defaults #defaults段默认值对frontend和backend和listen段生效 mode http #运行模式