转载自: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行。如下图所示:

wKiom1VAQdfz-_AwAAEy0_XDygY159.jpg
    该字段表示stonith将采用重启的操作。如果需要使用关机操作,将该字段改为:ST_POWEROFF即可。如下图所示:

wKiom1VAQeWRWLVUAAFe1P8EroQ370.jpg

    该类字段的定义可以参考/usr/include/stonith/stonith.h头文件。位置在78行。如下图所示: