Учтите, что в режиме TCP-прокси работают два серверных балансировщика нагрузки (например, для балансировки нагрузки L7). Можно ли синхронизировать их состояния в реальном времени, чтобы они могли быть резервной копией друг друга?
В случае, если один из них не работает, другой по-прежнему имеет все необходимые состояния для непрерывной поддержки всех существующих TCP-соединений.
Я понимаю, что это сложно, но мне интересно, поддерживает ли уже эта функция какой-либо бесплатный / коммерческий LB.
Спасибо!
Вы можете использовать репликацию таблицы стикеров, которую мы добавили в HAproxy, для использования в устройстве Loadbalacer.org.
Вот пример конфигурации: (важный бит - это раздел peers)
# HAProxy configuration file generated by loadbalancer.org appliance
global
daemon
stats socket /var/run/haproxy.stat mode 600 level admin
pidfile /var/run/haproxy.pid
log /dev/log local4
maxconn 40000
ulimit-n 81000
tune.bufsize 16384
tune.maxrewrite 1024
defaults
mode http
balance roundrobin
timeout connect 4000
timeout client 42000
timeout server 43000
log global
peers loadbalancer_replication
peer lbmaster 192.168.67.28:7778
peer lbslave 192.168.67.29:7778
listen VIP_Name
bind 192.168.67.30:80
Вам также необходимо будет изменить способ запуска HAProxy: ознакомьтесь с подробной документацией по одноранговым узлам: http://haproxy.1wt.eu/download/1.5/doc/configuration.txt
Имейте в виду, что аварийное переключение по-прежнему не будет полностью бесшовным, но ваши флеш-таблицы будут содержать правильный целевой сервер, когда у вас есть аварийное переключение.
Вы можете использовать платформу Linux Virtual Server (LVS), которая присутствует в ядре Linux. http://www.linuxvirtualserver.org/index.html
Он поддерживает синхронизацию TCP-соединения для прозрачного переключения балансировщика нагрузки при отказе. http://www.linuxvirtualserver.org/docs/sync.html
Вы можете использовать KeepAliveD для настройки как поведения балансировщика нагрузки (LVS), так и поведения аварийного переключения (VRRP) с синхронизацией соединения. https://www.keepalived.org/