环境:keepalived+glusterfs进行双机热备,数据库为mariadb,操作系统为麒麟v10的linux系统。
功能要求:主备自动切换,主机若发生宕机,会恢复故障后不抢占主节点;正常运行时,备机不启用mariadb以及应用等服务,主机挂机时,备机通过keepalived配置启动mariadb等服务的启动脚本。
我的实施方案:将两台服务器的数据库分别放入glusterfs的客户端挂载点上,然后修改数据库的配置文件指向挂载点;两台服务器keepalived均设置为双备模式,nopreempt不抢占模式。通过notify_master脚本实现当服务器拥有vip地址成为master状态时执行各应用的启动脚本。
遇到的问题:1、notify_master脚本只有优先级高的backup开机时会执行,后续不会再执行;优先级低的backup一直都不会执行这个脚本;
2、两台服务器数据库没法同时运行,只能一台停止mariadb服务以后,另一台才能启用(附图为数据库同时启用时,无法启用的报错)所以想通过模拟宕机的方式,keepalived主切备时执行停止服务脚本,然后备机切换成主机同时执行启动数据库等服务的脚本。
需求:如何根据以上,做出两台服务器一旦发生主备切换,就各自执行服务启动或者停止的脚本呢?求个详细一点的方案
你可以把优先级调整的一样
然后配置nopreemp 再试试
关于你的发生主备切换,就各自执行服务启动或者停止的脚本 "
可以写个脚本监听主机是否有vip,(这个检测vip的脚本可以做成系统服务),有的话就启动服务脚本,没有则相反
"
引用gpt回答
有帮住的话 采纳一下呦
根据你描述的环境和需求,可以这么设计实现自动主备切换时启动/停止服务的方案: