Я пытаюсь найти лучший способ найти решение высокой доступности плюс (небольшую) балансировку нагрузки для наших служб TCP. Все решения, которые я нашел (например, HAProxy, LVS), используют главную машину, которая содержит IP-адрес службы TCP, и, когда главный сервер выдает сбой, система резервного копирования (по keepalived, VRRP) становится доступной с использованием этого IP-адреса службы. Это мило.
Но я не нашел решения, как сделать резервную систему активной с помощью плавной передачи (без потери пакета): иногда мне нужно обновить / изменить / перезагрузить текущую главную машину, поэтому я хочу, чтобы новые подключения к резервной системе в то время как старые / текущие соединения по-прежнему обрабатываются старым мастером, пока они не будут выполнены, поэтому я могу перезагрузить старый мастер. Возможно ли это или нельзя?
И пока мечтаете: Оптимальным решением будет перенос текущих подключений (плюс служебный IP) на резервную машину. Есть ли решение этой мечты?
Я не совсем уверен, что вам нужно, но если это «плавная передача без потери пакета»:
Я никогда не использовал keepalived
или VRRP
реализации, потому что большинство (все?) из них не имеют STONITH, НАСКОЛЬКО МНЕ ИЗВЕСТНО.
Но: отраслевой стандарт для создания кластеров высокой доступности в мире с открытым исходным кодом, стек corosync / кардиостимулятор, обеспечивает это.