操作:模拟心跳down机实验以及恢复在主节点主机上面建立crontab任务
问题:drbd脑裂问题,当心跳线断掉的时候,两个节点同时可以对外提供服务,通过corosync管理服务机制出现问题,双方都对外提供服务,会导致最终数据产生不一致。
按照上面实验filer01作为主机对外提供服务,在filer01上面添加crontab任务,当检测到自己网卡down掉,或者是心跳线出现问题,在验证属于自己问题后,将集群服务停掉,自动退出集群节点。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| [root@openfiler01 ~] \ \ /sbin/ifconfig | grepeth1 if [ $? = 0 ] then echo " $(date +%F/%H:%M) : eth1 OK" else echo "$(date +%F/%H:%M): eth1 down ,stop service" >> /root/fail.txt pkill corosync fi ping -c110.10.5.156 &> /dev/null if [ $? = 0 ] then echo " $(date +%F/%H:%M) : ping OK" else ping -c1 192.168.11.1 &> /dev/null if [ $? = 0 ] then echo "$(date +%F/%H:%M) : ping 11.1OK 223 failed" >> /root/alter.txt else echo"$(date +%F/%H:%M): ping failed , stop service " >> /root/fail.txt pkillcorosync fi fi
|
添加到crontab,时时检测问题。
1 2
| [root@filer91 ~] \* * * * * sh/root/drbd.sh &
|