LVS+keepalived+MYSQL 双机主备下备机 telnet 不通 VIP的 3306端口

zhanrui502 2017-02-09 11:43:59
双机主备: LVS+keepalived+MYSQL 高可用方案
方案:
两台机器,都安装MYSQL和keepalived,一台机器做主keepalived,一台备keepalived,mysql为主主同步,两台机器的mysql连接同一个虚拟IP(配置文件在
最下方)
说明:
正常情况下虚拟VIP绑定到主机上,当主机MYSQL挂了之后,keepalived检查到mysql挂了则执行脚本check_mysql.sh,脚本执行会关闭主机keepalived进程,
此时VIP自动漂移到备机上
问题:
在Red Hat Enterprise Linux Server release 6.7 (Santiago)版本上如下配置,一切正常,主备机器的都能telnet通VIP地址 +3306端口,而且mysql挂了之
后,该服务器的keepalived自动检查mysql状态,然后执行脚本check_mysql.sh
但是在系统Red Hat Enterprise Linux Server release 7.2版本下,其他配置都一样,备机就不能 telnet通VIP地址 +3306端口,即不能通过虚拟IP连接到
mysql服务,但是却能ping通VIP地址;然后我用另一台同一网段的没有安装keepalived的服务器 telnet通VIP地址 +3306端口,也是能通。
解决:
有人通过注释掉备机的virtual_server中的两个参数后可以telnet通VIP地址 +3306端口
#lb_algo wrr
#lb_kind DR
验证:
我注释两个参数后,备机的确能 telnet通VIP地址 +3306端口,但是又出现另外的问题,即当mysql挂了之后,该服务器的keepalived自动检查mysql状态,发
现mysql挂了之后正常情况下应该执行脚本check_mysql.sh,但是实际上却不执行这个脚本。查看系统日志如下
系统日志如下:
Feb 9 19:49:02 SZC-L0040683 Keepalived_healthcheckers[59739]: TCP connection to [30.16.10.135]:3306 failed.
Feb 9 19:49:05 SZC-L0040683 Keepalived_healthcheckers[59739]: TCP connection to [30.16.10.135]:3306 failed.
Feb 9 19:49:05 SZC-L0040683 Keepalived_healthcheckers[59739]: Check on service [30.16.10.135]:3306 failed after 1 retry.
Feb 9 19:49:05 SZC-L0040683 Keepalived_healthcheckers[59739]: Removing service [30.16.10.135]:3306 from VS [30.16.11.54]:3306
Feb 9 19:49:05 SZC-L0040683 Keepalived_healthcheckers[59739]: IPVS: Service not defined
Feb 9 19:49:05 SZC-L0040683 Keepalived_healthcheckers[59739]: Remote SMTP server [127.0.0.1]:25 connected.
Feb 9 19:49:05 SZC-L0040683 Keepalived_healthcheckers[59739]: SMTP alert successfully sent.
Feb 9 19:49:07 SZC-L0040683 Keepalived_healthcheckers[59739]: TCP connection to [30.16.10.135]:3306 failed.
Feb 9 19:49:10 SZC-L0040683 Keepalived_healthcheckers[59739]: TCP connection to [30.16.10.135]:3306 failed.
Feb 9 19:49:10 SZC-L0040683 Keepalived_healthcheckers[59739]: Check on service [30.16.10.135]:3306 failed after 1 retry.
Feb 9 19:49:10 SZC-L0040683 Keepalived_healthcheckers[59739]: Removing service [30.16.10.135]:3306 from VS [30.16.11.54]:3306
Feb 9 19:49:10 SZC-L0040683 Keepalived_healthcheckers[59739]: IPVS: Service not defined
Feb 9 19:49:10 SZC-L0040683 Keepalived_healthcheckers[59739]: Remote SMTP server [127.0.0.1]:25 connected.
Feb 9 19:49:10 SZC-L0040683 Keepalived_healthcheckers[59739]: SMTP alert successfully sent.
Feb 9 19:49:12 SZC-L0040683 Keepalived_healthcheckers[59739]: TCP connection to [30.16.10.135]:3306 failed.
Feb 9 19:49:15 SZC-L0040683 Keepalived_healthcheckers[59739]: TCP connection to [30.16.10.135]:3306 failed.
Feb 9 19:49:15 SZC-L0040683 Keepalived_healthcheckers[59739]: Check on service [30.16.10.135]:3306 failed after 1 retry.
Feb 9 19:49:15 SZC-L0040683 Keepalived_healthcheckers[59739]: Removing service [30.16.10.135]:3306 from VS [30.16.11.54]:3306
折腾了几天还是不行,谁有成功的配置,求指教。
以下是环境和配置:
1:操作系统版本:Red Hat Enterprise Linux Server release 7.2 (Maipo)
2:keepalived版本:keepalived-1.2.24
3:mysql版本:MySQL-server-5.6.21
安装完ipv,mysql,keepalive
真实ip
主 IP:30.16.10.130
备 IP: 30.16.10.135
虚拟IP:
30.16.10.200
问题:
1:
KEEPALIVED配置如下:
主:MASTER 配置
global_defs {
notification_email {
zhanrui153@pingan.com.cn
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 11
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
30.16.10.200
}
}
virtual_server 30.16.10.200 3306 {
delay_loop 2
lb_algo wrr #LV
lb_kind DR #LV
persistence_timeout 60
protocol TCP
real_server 30.16.10.130 3306 {
weight 1
notify_down /root/check_mysql.sh
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
备:BACKUP 配置
global_defs {
notification_email {
zhanrui153@pingan.com.cn
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
virtual_router_id 11
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
30.16.10.200
}
}
virtual_server 30.16.10.200 3306 {
delay_loop 2
lb_algo wrr #LV
lb_kind DR #LV
persistence_timeout 60
protocol TCP
real_server 30.16.10.130 3306 {
weight 1
notify_down /root/check_mysql.sh
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
...全文
1961 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Im灬大神 2018-12-27
  • 打赏
  • 举报
回复
把你的keepalive主机的3306端口都放开,应该就好了
J_Smile 2017-07-03
  • 打赏
  • 举报
回复
我也遇到这个问题了。。。 妈蛋,折磨多天,楼主解决了吗? 你说的状况和我这边的情况很吻合
cqyy725 2017-02-23
  • 打赏
  • 举报
回复
先检查防火墙啊···red7以后用的是firewalld 不是iptables
zhanrui502 2017-02-09
  • 打赏
  • 举报
回复
谁能帮解决这个问题,50块钱红包 微信号 zhanrui208

18,771

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧