[shlug] Keepalived 备节点无法使用 VIP 服务问题

38 views
Skip to first unread message

Tsing Wang

unread,
Jul 20, 2015, 7:33:48 AM7/20/15
to sh...@googlegroups.com
节点1:192.168.50.164
节点2:192.168.50.165
VIP :192.168.50.166

使用 Keepalived + MySQL自带Replicatioin 配置好HA,基本OK。
发现一个问题,除了备节点之外其他节点都能正常使用 VIP::

$ mysql -uroot -p123456 -h192.168.50.166

上面命令在备节点上无法使用,ping 50.166 可以ping通,ssh 也可以,但就是不能使用mysql。
报不能连接错 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.50.166' (110)
tcpdump 根本抓不到包,或者说根本不发包。
若连接50.164和50.165都是OK的,另开启 keepalived 的主节点也可使用。
当然只要备节点停了 keepalived 服务就可以连,但既然是备节点怎么可能停这个服务。

请问 keepalived 就是这么工作的吗?具体什么原因呢,有没有解决方法。
网上没能找到相关问题,可能没人会在集群内部连vip。

附1. arp 正常,166和164物理地址是一样的::

root@vm1:~# ip a
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:1c:02:d2 brd ff:ff:ff:ff:ff:ff
inet 192.168.50.164/24 brd 192.168.50.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.50.166/32 scope global eth0
valid_lft forever preferred_lft forever

root@vm2:~# arp
Address HWtype HWaddress Flags Mask Iface
192.168.50.1 ether 5c:dd:70:83:31:23 C eth0
192.168.50.164 ether 52:54:00:1c:02:d2 C eth0
192.168.50.166 ether 52:54:00:1c:02:d2 C eth0

附2. keepalived.conf 配置文件::

global_defs {
}

vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.50.166
}
}

virtual_server 192.168.50.166 3306 {
delay_loop 2
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 60
protocol TCP

real_server 192.168.50.164 3306 {
weight 1
notify_down /usr/local/keepalived/mysql.sh

TCP_CHECK {
connect_timeout 10
nb_get_retry 3
connect_port 3306
}
}
}

Terry Zheng

unread,
Jul 22, 2015, 3:29:52 AM7/22/15
to Shanghai Linux User Group
HI,

说下我遇到的一次故障,其实是 iptables 没配好,如果楼主没有用 iptables,就纯参考用吧。当时的笔记如下:
系统日志:
Sep 28 18:38:32 AS01402 Keepalived[11465]: Starting VRRP child process, pid=11467
Sep 28 18:38:32 AS01402 Keepalived_vrrp[11467]: Interface queue is empty
Sep 28 18:38:32 AS01402 Keepalived_vrrp[11467]: No such interface, eth1
Sep 28 18:38:32 AS01402 Keepalived_vrrp[11467]: Netlink reflector reports IP 211.149.170.196 added


网络故障,ping 系统网卡都是通的。但是 BACKUP 感觉不到 MASTER 的存在,主备2台机器对会绑定 VIP,同时对外发 VRRP 组播。

解决方法:
添加 iptables 规则[1]:`-I INPUT -p vrrp -d 224.0.0.0/8 -j ACCEPT',查看 VRRP 组播数据包[2]:`tcpdump -ni any vrrp',第[3]个故障和这个报错一样,是配错 vrrp_instance 和 track_interface 网卡导致的。PDF[4] 是田逸书中的LVS+KeepAlived 配置文档。


在 2015年7月20日星期一 UTC+8下午7:33:48,Tsing Wang写道:

Tsing Wang

unread,
Jul 22, 2015, 8:13:22 AM7/22/15
to sh...@googlegroups.com
谢谢,不过我这里 iptables 规则是空的,没有配置。
> --
> -- You received this message because you are subscribed to the Google Groups
> Shanghai Linux User Group group. To post to this group, send email to
> sh...@googlegroups.com. To unsubscribe from this group, send email to
> shlug+un...@googlegroups.com. For more options, visit this group at
> https://groups.google.com/d/forum/shlug?hl=zh-CN
> ---
> 您收到此邮件是因为您订阅了Google网上论坛上的“Shanghai Linux User Group”群组。
> 要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到
> shlug+un...@googlegroups.com
> 要查看更多选项,请访问https://groups.google.com/d/optout

Reply all
Reply to author
Forward
0 new messages