我正在为服务器集群构建故障转移防火墙,并开始研究各种选项。我更熟悉 freebsd 上的 carp,但需要为这个项目使用 linux。
在谷歌上搜索后,出现了几个不同的项目,但没有关于它们提供的功能的明确信息。CARP 提供了故障转移的虚拟接口,我不太清楚这是 corosync 所做的,还是 pacemaker 所做的?
另一方面,我确实设法让 keepalived 工作了。但是,我注意到 corosync 为 infiniband 提供了本机支持。这对我很有用。
也许有人可以解释一下以下两者之间的区别:
- 同步
- 活着
- 起搏器
- 心跳
哪种产品最适合路由器故障转移?
编辑:所以我做了更多的锻炼……
Pacemaker 是可以使用 Corosync 和 Pacemaker 的大型项目。Corosync 和 Heartbeat 似乎基本上做同样的事情。因此您可以选择其中一个。
Heartbeat 似乎是一个较老的项目,但仍在进行中。
另一方面,Keepalive 是一个完全不同的项目,它实现了 VRRP 协议。它的功能比其他的少。它似乎仍然被广泛使用,但缺少最近的文档。
不幸的是,对于防火墙/路由器故障转移,示例很少。有人找到一些不错的操作指南吗?我找到了一份用西班牙语写的。
答案1
这是我在 keepalived 和 heartbeat 之间做出选择时使用的一般经验法则。
当您需要真正的主动/备用集群设置(其中只有一个节点实际上处于“启动”状态)时,通常会使用 Heartbeat。想想 NFS。通常使用 Heartbeat 的前置和后置脚本操作来启动和停止服务。
Keepalived 更加简单,通常用于热备用用途(即以冗余方式保持服务正常运行)。
我成功使用 keepalived 的一个好例子是用于冗余 Nginx 负载均衡器。在这种情况下,如果某个节点发生故障,“浮动 IP”将移至备份节点。
Keepalived 很简单,但是它允许您创建自己的检查脚本(将触发故障转移等)。一些信息:https://tobrunet.ch/2013/07/keepalived-check-and-notify-scripts/
哪种方式最适合您取决于您的情况:keepalived 非常适合路由器故障转移。
答案2
你看过乌卡普? 我们使用它的目的与您在我们的 Linux 防火墙上计划的目的相同。