LHA和RHCS类型fencing agent
本文同步自(最佳显示效果请点击):https://zohead.com/archives/lha-rchs-fence-agent/
在使用 CRM/Pacemaker 双机的时候,有时需要用到 Fencing/STONITH 技术来保证 I/O 数据的安全性。Fencing 分为资源级别和节点级别两种,资源级别的 Fencing 用于组织某个节点访问具体的资源,节点级别的 Fencing 用于确保某个节点不运行任何资源。关于 Fencing/STONITH 的详细介绍请参考 [这里]。
在实际使用 Pacemaker 的 Fencing 支持时会碰到两种常用的 fencing agent:LHA 类型和 RHCS 类型。Pacermaker 程序同时两种 fencing API:从 Heartbeat 继承而来的 fencing API(即 LHA 类型)和 Red Hat 自己实现的 cluster fencing API(即 Red Hat Cluster Suite 类型)。
RHCS fencing agent 就是 RHCS 集群套件中的一部分,如果需要使用 RHCS fencing agent 就同时需要使用 RHCS 中的其它组件。
RHCS 集群套件中包括:CMAN 仲裁组件支持、DLM 组件提供分布式锁支持、GFS 提供分布式文件系统支持、CLVM 支持、Red Hat Fencing 框架、Rgmanager 集群资源管理、pcs 集群管理工具(新版本中 DLM 和 GFS 已经是单独的软件包了)。DLM、GFS、CLVM、Red Hat Fencing 都依赖底层的 CMAN 组件。顺便说一句,如果双机的节点未启用 fencing 支持,是不允许加入 GFS 的。
Heartbeat STONITH 的介绍请参考这里:
http://www.linux-ha.org/wiki/STONITH
Redhat Fencing API 的介绍请参考这里:
https://fedorahosted.org/cluster/wiki/FenceAgentAPI
在不同的 Linux 系统平台上,pacemaker 软件包会根据应用场合提供不同类型的 fencing agent。
SUSE 系统上使用的是 LHA 类型 fencing agent,由 cluster-glue 软件包直接提供(cluster-glue 中包含其它基础双机支持),fencing agent 的程序或脚本通常位于 /usr/lib64/stonith/plugin 下的 external 等目录中,并由 stonithd 守护程序提供 STONITH 支持。
Fedora 和 RHEL 系统则使用 RHCS 类型 fencing agent,由单独的 fence-agents 软件包提供支持,安装之后的 fencing agent 的程序或脚本通常是 fence_xxxx 这种形式。Red Hat 将不同类型的 fencing agent 还打包成独立的包,因此有时候就需要安装类似这样的 fencing agent 支持:
fence-agents-ipmilan-4.0.0-5.el7.x86_64
fence-agents-drac5-4.0.0-5.el7.x86_64
fence-agents-wti-4.0.0-5.el7.x86_64
fence-agents-ifmib-4.0.0-5.el7.x86_64
fence-agents-eaton-snmp-4.0.0-5.el7.x86_64
fence-agents-eps-4.0.0-5.el7.x86_64
fence-agents-apc-4.0.0-5.el7.x86_64
…
最新的 Debian 和 Ubuntu 系统则做的更加彻底了,同时提供 LHA 和 RHCS 类型的 fencing agent 支持,并分别放在 cluster-glue 基础软件包和 fence-agents 软件包中。
从上面的说明来看,LHA 类型的 fencing agent 相对于 RHCS 来说确实是简单一些,不需要额外的 RHCS 组件就可以使用,也不需要安装额外的软件包,一般使用起来还是比较方便的。当然如果需要使用 RHCS 来实现 GFS 之类的功能,或者你是 Red Hat 的忠实拥趸的话,那使用 RHCS 来做 STONITH 也是没有问题的。