Я создаю отказоустойчивый брандмауэр для кластера серверов и начал рассматривать различные варианты. Я больше знаком с carp на freebsd, но для этого проекта мне нужно использовать Linux.
При поиске в Google было создано несколько разных проектов, но нет четкой информации о предоставляемых ими функциях. CARP предоставил виртуальные интерфейсы для переключения при отказе, я не совсем понимаю, что делает corosync или это то, что делает кардиостимулятор?
С другой стороны, мне удалось заставить работать keepalived. Однако я заметил, что corosync обеспечивает встроенную поддержку infiniband. Это было бы полезно для меня.
Возможно, кто-то сможет пролить свет на различия между:
Какой продукт лучше всего подходит для аварийного переключения маршрутизатора?
РЕДАКТИРОВАТЬ: Итак, я немного поработал ...
Pacemaker - это более крупный проект, который может использовать Corosync & Pacemaker. Кажется, что Corosync и Heartbeat в основном делают то же самое. Итак, вы выбираете одно или другое.
Heartbeat кажется более старым проектом, но над ним все еще работают.
С другой стороны, Keepalive - это совершенно другой проект, реализующий протокол VRRP. У него меньше возможностей, чем у других. Похоже, что он все еще широко используется, но в нем отсутствует недавняя документация.
К сожалению, примеров аварийного переключения межсетевого экрана / маршрутизатора очень мало. Кто-нибудь нашел хорошие инструкции? Я нашел один, написанный на испанском.
Вот общее практическое правило, которое я использовал при выборе между сохранением активности и сердцебиением.
Heartbeat обычно используется, когда вы хотите установить действительно активный / резервный кластер (когда фактически "включен" только один узел). Подумайте о NFS. Обычно при использовании Heartbeat для запуска и остановки служб используются действия до и после сценария.
Keepalived намного проще и обычно используется для использования в режиме горячего резервирования (т. Е. Для поддержания работы службы в избыточном режиме).
Хороший пример использования keepalived, с которым я добился успеха, - это резервные балансировщики нагрузки Nginx. В этой ситуации, если узел выходит из строя, «плавающий IP-адрес» переходит на резервный узел.
Keepalived прост, но он позволяет вам создавать свои собственные сценарии проверки (которые могут вызвать аварийное переключение и т. Д.) Некоторая информация: https://tobrunet.ch/2013/07/keepalived-check-and-notify-scripts/
Что лучше всего для вас, зависит от вашей ситуации: keepalived хорошо подходит для аварийного переключения маршрутизатора.
Вы смотрели на Ucarp? Мы используем его для тех же целей, что и в наших брандмауэрах Linux.