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