Вот требования:
1. Высокая доступность
2. Балансировка нагрузки
Первая конфигурация
1. Два сервера Linux настроены с одним статическим IP-адресом для каждого: 10.17.243.11, 10.17.243.12
2. Keepalived был установлен и настроен с одним экземпляром VRRP для предоставления одного виртуального IP-адреса (10.17.243.10 в качестве VIP, 10.17.243.11 в качестве главного и 10.17.243.12 в качестве резервного).
3. Все отлично работает. VIP назначается главному серверу (10.17.243.11), пока он запущен и работает. Как только он выйдет из строя, VIP будет назначен резервному серверу (10.17.243.12).
4. Проблема здесь в том, что вся связь идет на главный сервер.
Вторая конфигурация
1. Я нашел конфигурацию «активный-активный» для Keepalived, которая возможна путем определения более одного экземпляра VRRP. Таким образом, оба сервера имеют два IP-адреса (реальный 10.17.243.11 и виртуальный 10.17.243.10 для сервера №1, реальный 10.17.243.12 и виртуальный 10.17.243.20 для сервера №2.
2. Все отлично работает. у нас есть два доступных VIP (HA). Но вся связь, поступающая на каждый IP-адрес, по-прежнему идет на одну машину (сервер №1 или №2 в зависимости от IP-адреса). Однако я нашел некоторые приемы в DNS, позволяющие преодолеть это ограничение. Но в нашем случае это неприемлемо.
Вопрос:
Есть ли способ иметь один виртуальный IP-адрес, назначенный обоим серверам? Под этим я подразумеваю, что оба сервера обрабатывают некоторую часть рабочей нагрузки (например, то, что мы делаем при балансировке нагрузки веб-сервера)? Используя либо keepalived, либо другие инструменты?
Заранее спасибо.
После некоторых исследований я обнаружил, что расширение IPTABES CLUSTERIP полезно для этой цели. Просто погуглите.
Для меня сначала было немного сложно настроить и запустить систему. Но в итоге на основе PDF-документа Майкла Шварцкопфа мне это удалось. К сожалению, я забыл ссылку в сети. Однако документ у меня есть, на всякий случай. Дополнительная информация может быть полезна по другому моему вопросу в этом отношении: