keepalive和心跳有什么区别?


20

我想构建一个高可用性服务器集群。现在,我想了解有关keepalive和心跳的详细信息,两者之间有什么区别,以及如何选择一种。

Answers:


26

相信HAProxy的作者Willy Tarreau在http://www.formilux.org/archives/haproxy/1003/3259.html中已经非常精确地回答了这个问题。

来自以上链接的引文

心跳并不是获得冗余haproxy设置的最佳工具,它是为构建集群而设计的,与拥有两个冗余无状态网络设备有很大不同。面向网络的工具(例如keepalived或ucarp)最适合该任务

这两个家庭的区别很简单

  1. 诸如心跳之类的面向集群的产品将确保共享资源最多出现在一个地方。这对于共享文件系统,磁盘等非常重要。它旨在在切换期间在一个节点上关闭服务,而在另一个节点上打开服务。这样,共享资源可能永远不会被同时访问。这是一项非常艰巨的任务,而且做得很好。
  2. 诸如keepalived之类的面向网络的产品将确保一个共享的IP地址至少出现在一个地方。请注意,我不再在谈论服务或资源,它只是在玩IP地址。它不会尝试关闭或启动任何服务,它只会考虑一定数量的标准来确定哪个节点最适合提供服务。但是服务必须在两个节点上都已启动。因此,它非常适合冗余路由器,防火墙和代理,但根本不适合磁盘阵列或文件系统。

(是的,我知道这是一个古老的问题,仅供以后参考)


确实是将来的参考。心跳是设置和开始工作的痛苦,我发现keepalived更加简单,并且使用MySQL Master Master Single Write安装可以按预期工作。
2014年

3

没有明确的,一致的区别。这些词有时或多或少地互换使用。

高可用性设置中有一个常见的userland守护程序,称为Keepalived,而Linux HA项目曾经有一个名为Heartbeat的守护程序,现在已更改为Pacemaker。(我相信您没有要求对这两个系统进行完整的概述,以及所有的区别是什么,恕我直言,这将成为话题。)

在日常使用这些术语时,我会说最常见的用法是:

  • “保持活动”更一般地是指使服务保持高可用性的系统。

  • “心跳”更具体地指一种通信协议,高可用性设置中的一个或多个成员定期向该协议发送“是的,我还活着!” 消息。如果在设定的时间(即另一台主机已关闭)之前没有看到“是的,我还活着”的消息,则同行会采取措施。这有点像脉冲的感觉,因此得名。


参见@vange答案。对我来说似乎很清楚。不同的服务,不同的名称,不同的设计目标和用例。
nelaaro
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.