Вопрос или проблема
Рассмотрим настройку с двумя машинами LVS, которые обозначены как главный LVS и резервный LVS, обе из которых используют Keepalived для реализации высокой доступности (HA). Главный LVS находится в подсети 10.1.1.0/24, в то время как резервный LVS расположен в подсети 10.1.2.0/24. Для достижения HA Keepalived использует протоколы vrrp unicast (unicast_peer) для включения переключения экземпляров VRRP между главным и резервным, а также для совместного использования одного и того же VIP (плавающий IP). Однако у меня есть следующие вопросы:
- Как выбрать VIP для Keepalived и как клиенты будут определять соответствующий маршрут при доступе к этому VIP?
- Предположим, что VIP установлен как 10.1.1.2, если произойдет сбой главного, а затем VIP переместится на резервный сервер в подсети 10.1.2.0/24, будет ли трафик по-прежнему доступен к VIP и резервному LVS, как ожидалось? Если нет, какие шаги необходимо предпринять, чтобы обеспечить нормальный доступ?
Ответ или решение
Поддержка кросс-сетевой функциональности в Keepalived
Keepalived — это инструмент, используемый для настройки высокой доступности (HA) с помощью протокола VRRP (Virtual Router Redundancy Protocol). В контексте вашего вопроса, важно рассмотреть возможность работы Keepalived в условиях разных подсетей и вопросы маршрутизации для клиентов, подключающихся к виртуальному IP-адресу (VIP).
Выбор VIP и маршрутизация для клиентов
-
Выбор VIP для Keepalived:
Выбор VIP следует основывать на архитектуре вашей сети и на том, чтобы этот адрес был доступен для всех клиентов, использующих его для подключения к вашим сервисам. В вашей ситуации, VIP 10.1.1.2 хорошо подходит для использования, если предполагается, что основные клиенты находятся в одной подсети (10.1.1.0/24). -
Маршрутизация для клиентов:
Чтобы клиенты могли определить правильный маршрут до VIP, необходимо настроить маршруты на уровне сетевого оборудования (маршрутизаторы, коммутаторы). В ideal situation, маршрутизатор должен быть настроен на то, чтобы перенаправлять трафик, адресованный VIP 10.1.1.2, на соответствующий LVS сервер, который в данный момент активен (мастер или резервный). Если VIP находится в подсети 10.1.1.0/24, маршрутизаторы в этой сети должны знать, как обращаться к VIP, а клиентские устройства должны быть настроены для связи с этой подсетью.
Работа в условиях сбоя мастера
-
Сбой мастера и переключение VIP:
В случае сбоя сервера-мастера, VIP (10.1.1.2) должен переключиться на резервный LVS, находящийся в подсети 10.1.2.0/24. Однако, если VIP находится в подсети 10.1.1.0/24, а резервный сервер в другой подсети, это может создать проблемы с доступом к VIP, так как маршрутизация будет работать некорректно. -
Необходимые шаги для обеспечения доступа:
Чтобы обеспечить нормальный доступ к VIP в случае сбоя, необходимо предпринять следующие действия:-
Сетевое оборудование: Убедитесь, что маршрутизаторы или другие сетевые устройства правильно настраивают маршруты, чтобы трафик к VIP 10.1.1.2 мог быть направлен на резервный сервер в 10.1.2.0/24. Это может потребовать дополнительных конфигураций, таких как маршрутизация на основе политик.
-
IP-адресация: Рассмотрите возможность использования VIP, который будет находиться в общей сети или создании так называемого "routed" VIP, который будет доступен на обеих подсетях. Это требование подразумевает, что маршрутизаторы между подсетями могут правильно обрабатывать трафик.
-
Конфигурация Keepalived: В конфигурации Keepalived убедитесь, что используется директива
unicast_peer
для настройки связи между двумя узлами (мастером и резервным). Также необходима настройкаnopreempt
в случае, если вы хотите избежать постоянного переключения VIP между серверами из-за временных проблем.
-
Заключение
Keepalived поддерживает кросс-сетевую функциональность, но для корректной работы в различных подсетях потребуется тщательная настройка сетевой инфраструктуры. Важно уделить внимание маршрутизации, выбору VIP и конфигурации Keepalived, чтобы обеспечить высокую доступность и минимизировать время простоя в условиях сбоев серверов.