keepalived+mysql backup服务器可ping通过vip但telnet vip+3306失败问题
环境:
OS:CentOS 7_X64
数据库:mysql-5.7
MASTER:192.168.119.23
BACKUP:192.168.119.24
VIP:192.168.119.138
keepalived+mysql搭建过程的详细配置就不描述了,网上很多写得很详细的配置文档自己可以去参考,我们直奔主题 。
这里主要分享在下本人在搭建公司的keepavlied+mysql出现一个很奇怪的现象,当A服务器为master主时邦定VIP 192.168.119.138,在A本机上可以正常ping 192.168.119.138 和 telnet 192.168.119.138 3306端口,此时在B服务器上ping 192.168.119.138也正常,但telnet 192.168.119.138 3306 时出现找不到路由的错误提示,同时检查B服务器此时是没有VIP 属于正常的现象,可是telnet VIP+其他端口正常的。
经常反复的测试发现,当A、B服务器同时运行keepalived时,作为backup角色的服务器无法telnet 192.168.119.138 3306,将backup角色服务器上的keepalived关闭后,却可以正常ping telnet。
问题还是在于配置文件,将keepalived.conf配置文件的LVS用不到调试算法lb_algo和转发方式lb_kind去掉,正是这两项导致backup服务器无法访问mysql。正常的配置文件如下:
[root@DB01 ~]# vi /etc/keepalived/keepalived.conf
global_defs {
notification_email {
1234@sina.com
}
notification_email_from 1234@test.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id MYSQL_HA #标识,双主相同
}
vrrp_instance VI_1 {
state BACKUP #两台都设置BACKUP
interface eth0
virtual_router_id 51 #主备相同
priority 100 #优先级,backup设置50
advert_int 1
nopreempt #不主动抢占资源,只在master这台优先级高的设置,backup不需设置
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.119.138
}
}
virtual_server 192.168.0.204 3306 {
delay_loop 2
#lb_algo rr #LVS算法,用不到,我们就关闭了
#lb_kind DR #就是这项导致上述的现象,LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL
persistence_timeout 50 #同一IP的连接60秒内被分配到同一台真实服务器
protocol TCP
real_server 192.168.119.23 3306 { #检测本地mysql,backup也要写检测本地mysql
weight 3
notify_down /usr/local/keepalived/mysql.sh #当mysq服down时,执行此脚本,杀死keepalived实现切换,也可以加入其他命令或脚本。
TCP_CHECK {
connect_timeout 3 #连接超时
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间隔时间
}
}
虽然问题是解决的了,但没搞明白为什么会这样?我使用相同版本的mysql和keepalived在RHEL 6.0 X64环境下测试并没有出现这问题。求高手出现解答。
keepalived+mysql backup服务器可ping通过vip但telnet vip+3306失败问题的更多相关文章
- MySQL高可用性之Keepalived+MySQL(双主热备)
环境描述:OS:CentOS6.5_X64MASTER:192.168.0.202BACKUP:192.168.0.203VIP:192.168.0.204 1.配置两台Mysql主主同步[root@ ...
- Keepalived+MySQL双主
一.Keepalived+MySQL Replication的应用场景 MySQL的高可用方案有cluster,MMM,MHA等,这些高可用方案都要三台服务器以上,成本有点高,今天介绍一个低成本高可用 ...
- KeepAlived+MySQL互为主从
http://blog.csdn.net/socho/article/details/51804720 解决Master单点问题,两台mysql互为主备,双向replication.当一master挂 ...
- LVS+Keepalived+Mysql+主备数据库架构[4台]
这是一个坑...磨了不少时间.见证自己功力有待提升... 架构图 数据库 1.安装数据库 这块不难, 直接引用:mysql安装 2.数据库主备 这块不难, 直接引用: mysql主备 虚拟VIP 重点 ...
- keepalived双BACKUP加nopreempt失效、手动监控服务脚步。
keepalived双BACKUP加nopreempt不起作用,两个机器同时拥有vip, 排查几天发现是防火墙问题,啃爹. 打开 vi /etc/sysconfig/iptables 插入一条:-A ...
- keepalived+MySQL双主搭建
keepalived+MySQL双主搭建过程 首先要简单了解一下keepalived: Keepalived是Linux下一个轻量级别的高可用解决方案.高可用(High Avalilability,H ...
- 【Keepalived+MySQL】MySQL双主互备+高可用
一.基本信息说明 [DB1] IP: 192.168.102.144 hostname: LVS-Real1 [DB2] IP: 192.168.102.145 hostname: LVS-Real2 ...
- Keepalived+MySQL双主架构
l 架构准备 Node1 192.168.15.3 Node2 192.168.15.4 VIP 192.168.15.254 l 软件 MySQL 5.6 Keepalive yum insta ...
- MySQL 高可用性—keepalived+mysql双主(有详细步骤和全部配置项解释)
博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 前言:生产环境中一台mysql主机存在单 ...
随机推荐
- gradle编译命令 & 自动打包等
./gradlew -v 版本号,首次运行,没有gradle的要下载的哦. ./gradlew clean 删除HelloWord/app目录下的build文件夹 ./gradlew build 检查 ...
- 集群部署时的分布式session如何实现
tomcat + redis 这个其实还挺方便的,就是使用session的代码跟以前一样,还是基于tomcat原生的session支持即可,然后就是用一个叫做Tomcat RedisSessionMa ...
- GO语言标准库—命令行参数解析FLAG
flag包是Go语言标准库提供用来解析命令行参数的包,使得开发命令行工具更为简单 常用方法 1.flag.Usage 输出使用方法,如linux下ls -h的帮助输出 2.flag.Type(参数名, ...
- EF Core Migration
//添加migrations dotnet ef migrations add [名称] //根据model更新sql表结构 dotnet ef database update //删除最新的migr ...
- ionic2+中修改minSdkVersion的方法
具体方法很简单,直接在config.xml中找到下面这一行 <preference name="android-minSdkVersion" value="17&q ...
- windows 设置开机启动,启动项
第一步ctrl+R输入以下任意一个 方法一: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 方法二: shell:start ...
- Codeforces 781E Andryusha and Nervous Barriers 线段树 单调栈
原文链接https://www.cnblogs.com/zhouzhendong/p/CF781E.html 题目传送门 - CF781E 题意 有一个矩形,宽为 w ,高为 h .一开始会有 w 个 ...
- BZOJ4802 欧拉函数 数论
原文链接http://www.cnblogs.com/zhouzhendong/p/8117744.html 题目传送门 - BZOJ4802 题意概括 Description 已知N,求phi(N) ...
- 20165220 Java第四周学习总结
教材学习内容总结 super:使用关键字super来访问和调用被子类隐藏的成员变量和方法. 接口:用关键字interface来定义一个接口.接口由类来实现以便使用接口中的方法,用关键字implemen ...
- 搭建JMETER+ANT自动化接口测试环境步骤(一)
一.环境准备: 1.JDK 下载 地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html ...