除了典型的Heartbeat / Pacemaker / CoroSync组合之外,Linux上的自动故障转移还有其他主要选择吗?特别是,我在EC2实例上设置故障转移,它只支持单播 – 没有多播或广播.我特别试图处理我们拥有的几个没有自动故障转移但不支持多主环境的软件.这包括HAProxy和Solr等工具.
我有Heartbeat Pacemaker工作,但我对此并不感到兴奋.以下是我的一些问题:
>心跳 – 本身仅限于两个节点.我想要3.
>起搏器 – 无法自动配置.群集必须以仲裁运行,然后仍需要手动配置.
> CoroSync – 不支持单播.
起搏器效果很好,虽然它的功率很难设置. Pacemaker的真正问题在于没有简单的方法来自动化配置.我真的想要启动一个EC2实例,安装Chef / Puppet并在没有我介入的情况下启动整个集群.
解决方法
我更喜欢使用
keepalived来实现高可用性.我觉得设置(一个守护进程和配置)比心跳和公司更简单.我遇到的唯一缺点是keepalived默认没有单播选项,只使用VRRP进行通信(HAProxy的作者为keepalived写了一个
unicast patch)