博客园  :: 首页  :: 管理

STONITH 是"Shoot The Other Node In The Head"的缩写,它保护您的数据不受有问题的节点或并发访问的影响。

仅仅因为节点不响应,这并不表示它不会访问您的数据。

完全确保您的数据安全的唯一方法是使用 STONITH 隔离节点,以便我们能够在允许从另一个节点访问数据前确保节点真正离线。

当无法停止集群的服务时,STONITH 也会有意义。在这种情况下,集群使用 STONITH 来强制整个节点离线,从而使在其他位置可以安全地启动该服务。

 

在AWS平台的主机中创建STONITH,可以使用如下的命令,(需要指明EC2实例的ID)

[root@qq-5201351 ~]# pcs stonith create stonith-project-pet fence_aws \
region=cn-north-1 \
pcmk_host_map="awtproject03:i-0cf37dd213f0b9203;awtproject04:i-063132cb2a162a0e6" \
pcmk_delay_max=45 pcmk_reboot_action=off \
power_timeout=600 pcmk_reboot_timeout=600 \
pcmk_reboot_retries=4 \
op start timeout=600 \
op monitor interval=300 timeout=60

说明:这里的 pcmk_reboot_action=off 代表是只是关机就可以了,生产环境可以建议这样配置,也可以设置为 reboot ,那样fence的效果就是重启机器了

pcs stonith update stonith-project-pet pcmk_reboot_action=reboot 

使用命令update的方式修改后,会立即生效的,并将配置同步到各个节点

 

关于STONITH的功能测试,笔者常用到如下两种方法

1、直接使用pcs命令(测试了,在两个节点上执行都是可以的,无论(stonith:fence_aws) 在那个节点上启动的,都没有关系):

pcs stonith fence  awtproject03

2、在其中一个节点上,手动将自己网卡,如eth0给down了

ifconfig eth0 down

 

 

补充上,在AWS平台的主机中创建STONITH,使能达到fence的效果,的前置条件

1、为pacemaker的机器绑定IAM-Role, 包含开关机重启等权限(机器开机是需要相应KMS权限的)

2、在OS中,不需要进行aws configure配置,在创建时指明了region的

3、在OS中两个节点、都需要安装的软件:yum install -y pcs pacemaker resource-agents fence-agents-aws 

 

 

 

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17857580.html