报错信息 报错信息为(VI_HA): ip address associated with VRID 123 not present in MASTER advert : 172.103.201.120,意思为无法绑定虚IP,经过网上查找原因,有两种可能性: (1)主备服务器时间不匹配,需要修改一致。 (2)虚拟路由ID在局域网中冲突。 此问题中忘记了另一个同事也在测HA的稳定性,发现他也在用同样的组播地址和虚拟路由id,我修改之后重启keepalived,完美解决。
notify_master "/usr/bin/nohup /var/hms/base_service/ha/script/switch.sh MASTER &"
notify_backup "/usr/bin/nohup /var/hms/base_service/ha/script/switch.sh SLAVE &"
notify_master和notify_backup在keepalived发生主备角色变化时,会触发对应的配置,调用脚本。而在本示例中,/var/log/message中报错信息如下:Keepalived_vrrp[123535]: Unable to access script `/var/hms/base_service/ha/script/switch.sh,看着像没权限,因此查看脚本的权限,都有可执行权限,而且文件属主都是root.root,后来考虑到可能是安全相关,就有两种可能:防火墙和selinux;防火墙是关闭的,发现selinux是enforce,设置setenforce 0之后就可以执行了。最终在安装脚本中配置:
# 临时关闭selinux
setenforce 0
# 永久关闭selinux
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config