搭建mongodb时出现的一个问题,防止自己忘记
该错误只针对阿里的云服务器
其他厂商的服务器未出现该问题
主备同时出现vip的情况
报错日志
May 24 18:31:43 pro-002 Keepalived_vrrp[1313]: VRRP_Instance(MG_1) removing protocol VIPs.
May 24 18:31:43 pro-002 Keepalived_vrrp[1313]: Using LinkWatch kernel netlink reflector...
May 24 18:31:43 pro-002 Keepalived_vrrp[1313]: VRRP_Instance(MG_1) Entering BACKUP STATE
May 24 18:31:43 pro-002 Keepalived_vrrp[1313]: VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd(10,11)]
May 24 18:31:47 pro-002 Keepalived_vrrp[1313]: VRRP_Instance(MG_1) Transition to MASTER STATE
May 24 18:31:48 pro-002 Keepalived_vrrp[1313]: VRRP_Instance(MG_1) Entering MASTER STATE
May 24 18:31:48 pro-002 Keepalived_vrrp[1313]: VRRP_Instance(MG_1) setting protocol VIPs.
May 24 18:31:48 pro-002 Keepalived_vrrp[1313]: Sending gratuitous ARP on eth0 for 192.168.100.1
keepalived只要启动,过几秒就抢占为master状态
主的配置
!Configuration File for keepalived
vrrp_instance MG_1 {
state MASTER
interface eth0
virtual_router_id 55
priority 100
advert_int 1
#nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
unicast_src_ip 192.168.0.1 //(主IP地址)
unicast_peer {
192.168.0.2 //(备IP地址)
}
virtual_ipaddress {
192.168.100.1
}
}
virtual_server 192.168.100.1 80 {
delay_loop 6
lb_algo rr
persistence_timeout 5
protocol TCP
real_server 0.0.0.0 80 {
notify_down /root/ng.sh
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
备的配置
!Configuration File for keepalived
vrrp_instance MG_1 {
state BACKUP
interface eth0
virtual_router_id 55
priority 10
advert_int 1
#nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.100.1
}
}
这两段配置,直接粘贴拿过去用即可
阿里的云服务器默认将vrrp的组播,在物理层面的交换机和路由网中禁用掉的
所以不管是防火墙还是selinux、iptables都解决不了vrrp发不出去组播的情况,所以备服务器认为主是死掉了,将自己提升为master了
将组播改正单播尝试一下,指定备的eth0的IP地址,然后重新启动主的keepalived
unicast_src_ip 192.168.0.1 //(主IP地址)
unicast_peer {
192.168.0.2 //(备IP地址)
}
备服务器能够接收到vrrp报文后,自动切换为backup状态