Multimaster Keepalived Configuration (виртуальный IP с балансировкой нагрузки)
Вот требования:
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 или другие инструменты?
Заранее спасибо.
1 ответ
После некоторых исследований я обнаружил, что CLUSTERIP расширение IPTABES полезно для этой цели. Просто погугли это.
Поначалу мне было немного сложно настроить и запустить систему. Но в конце концов, основываясь на PDF-документе Михаэля Шварцкопфа, мне удалось это сделать. К сожалению, я забыл ссылку в Интернете. Однако у меня есть документ, на всякий случай. В этом отношении может быть полезна дополнительная информация по другому моему вопросу: