转载自:http://blog.sina.com.cn/s/blog_88337d960101g9iv.html#cmt_2885544
1 stonith简介
Stonith,即Shoot The Other Node In The Head,是集群Fence技术的一种实现。stonith的目的是在HA机制判断其中一台机器死亡后,确保这台机器进入死亡状态。通过这种方式,避免集群中“脑裂”(split-brain)现象的出现。
2 Heartbeat安装
源码包下载地址:http://linux-ha.org/wiki/Downloads
安装顺序为:Cluster-glue,Resource-agent,Heartbeat。
安装可以参考用户手册:http://www.linux-ha.org/doc/users-guide/users-guide.html
注意:本文Stonith配置基于Release 1,配置简单,但不够灵活,需要修改源代码。所以在安装第三个包Heartbeat之前,请先确定Stonith机制(见后文)。
配置可以参考另一篇转载博文:http://blog.sina.com.cn/s/blog_88337d960101dxog.html
3.确定Stonith策略
由于Heartbeat调用stonith设备时,默认采用的是“重启”操作,这是在代码中写死的。因此,如果需要使用stonith,请先确定将要实现的stonith策略。如果需要采取“关机”操作,请修改相应代码。如果可以接受重启方式,则跳过此节。实现关机操作的方法如下:
tar -xjvf Heartbeat-3-0-7e3a82377fa8.tar.bz2
cd Heartbeat-3-0-7e3a82377fa8
vi heartbeat/hb_resource.c
查找ST_GENERIC_RESET,位置在第2191行。如下图所示:
该字段表示stonith将采用重启的操作。如果需要使用关机操作,将该字段改为:ST_POWEROFF即可。如下图所示:
该类字段的定义可以参考/usr/include/stonith/stonith.h头文件。位置在78行。如下图所示: