Я хочу структурировать кластер серверов с высокой доступностью. Теперь я хочу узнать подробности о keepalive и heartbeat, в чем разница между ними и как выбрать один.
Поверьте, на этот вопрос очень точно ответил Вилли Тарро, автор HAProxy, в http://www.formilux.org/archives/haproxy/1003/3259.html.
Цитата из приведенной выше ссылки
Heartbeat - не лучший инструмент для получения избыточной настройки haproxy, он был разработан для создания кластеров, что сильно отличается от наличия двух избыточных сетевых устройств без сохранения состояния. Сетевые инструменты, такие как keepalived или ucarp, лучше всего подходят для этой задачи.
Разница между этими двумя семьями проста
- кластерно-ориентированный продукт, такой как сердцебиение обеспечит присутствие общего ресурса в в большинстве одно место. Это очень важно для совместно используемых файловых систем, дисков и т. Д. Оно предназначено для остановки службы на одном узле и включения на другом во время переключения. Таким образом, к общему ресурсу нельзя будет получить одновременный доступ. Это очень сложная задача, и она хорошо с ней справляется.
- сетевой продукт, такой как оставайся живым обеспечит присутствие общего IP-адреса на по крайней мере одно место. Обратите внимание, что я больше не говорю о сервисе или ресурсе, он просто играет с IP-адресами. Он не будет пытаться отключить или активировать какую-либо службу, он просто рассмотрит определенное количество критериев, чтобы решить, какой узел лучше всего подходит для предоставления услуги. Но служба уже должна быть запущена на обоих узлах. Таким образом, он очень хорошо подходит для резервных маршрутизаторов, брандмауэров и прокси, но совсем не подходит для дисковых массивов или файловых систем.
(Да, я знаю, что это старый вопрос, но на будущее)
Нет четкой и последовательной дифференциации. Эти слова иногда используются более или менее взаимозаменяемо.
Существует обычный пользовательский деамон для настроек высокой доступности, называемый Keepalived, а в проекте Linux HA раньше был демон под названием Heartbeat, который теперь изменился на Кардиостимулятор. (Надеюсь, вы не просили дать полный обзор этих двух систем, и каковы все различия, это, ИМХО, было бы не по теме.)
В повседневном использовании терминов, Я бы сказал, что наиболее распространенное использование:
«Keepalive» в более общем смысле относится к системе, которая поддерживает высокий уровень доступности службы.
«Heartbeat» более конкретно относится к протоколу связи, где одному или нескольким участникам установки высокой доступности периодически отправляется сообщение «Да, я все еще жив!» Сообщения. Затем их узлы принимают меры, если они не видят сообщение «Да, я жив» до установленного времени (т. Е. Другой хост отключился). Это немного похоже на нащупывание пульса, отсюда и название.