Настройка высокой доступности через keepalived в Debian
Keepalived — системный демон на Linux-системах, позволяющий организовать отказоустойчивость сервиса и балансировку нагрузки. Отказоустойчивость достигается за счет «плавающего» IP-адреса, который переключается на резервный сервер в случае отказа основного. Для автоматического переключения IP-адреса между серверами keepalived используется протокол VRRP (Virtual Router Redundancy Protocol), стандартизированный в RFC 2338 (https://www.ietf.org/rfc/rfc2338.txt).
Показать
Оглавление
Принципы работы протокола VRRP
Общий алгоритм работы
Установка и настройка keepalived
Результат
Источники
Принципы работы протокола VRRP
Теория и основные определения протокола VRRP:
VIP — Virtual IP, виртуальный IP адрес, который может автоматически переключаться между серверами в случае сбоев;
Master — сервер, на котором в данный момент активен VIP;
Backup — серверы, на которые переключится VIP в случае сбоя мастера;
VRID — Virtual Router ID, серверы, объединённые общим виртуальным IP (VIP), образуют так называемый виртуальный роутер, уникальный идентификатор которого, принимает значения от 1 до 255. Сервер может одновременно состоять в нескольких VRID, при этом для каждого VRID должны использоваться уникальные виртуальные IP-адреса;
Virtual MAC — виртуальный MAC-адрес (0000.5E00.01xx, где xx — номер группы VRRP).
Перейти к оглавлению.
Общий алгоритм работы:
Master-сервер с заданным интервалом отправляет VRRP пакеты на зарезервированный адрес multicast (многоадресной, когда отправитель один, а получателей может быть много) рассылки 224.0.0.18, а все backup-серверы слушают этот адрес.

Если backup-сервер не получает пакеты VRRP, то он начинает процедуру выбора master и, если он переходит в состояние master по приоритету, то активирует VIP и отравляет gratuitous ARP (особый вид ARP ответа, который обновляет MAC таблицу на подключенных коммутаторах, чтобы проинформировать о смене владельца виртуального IP адреса и MAC-адреса для перенаправления трафика).
Установка и настройка keepalived
Установку и настройку я провёл на однотипных серверах в виде виртуальных машин Virtualbox d1 и d2 с установленной системой Debian версии 11.1.0. В качестве IP-адресов серверов используются 10.9.1.16/24 — для сервера d1, 10.9.1.61/24 — для сервера d2. В качестве виртуального IP-адреса, который будет автоматически переключаться между серверами в случае сбоев, используется адрес 10.9.1.6/24.
N. B. Символ комментария в конфигурационном файле keepalived — это ВОСКЛИЦАТЕЛЬНЫЙ ЗНАК (!).
N. B. 2 <интерфейс> — сетевой интерфейс хостов d1 и d2.
N. B. 3 В примере приведена конфигурация без дополнительных проверок статусов каких-либо служб d1 и d2.
На машинах d1 и d2:
1 — на сетевом интерфейсе <интерфейс> настраиваю IP-адрес 10.9.1.16/24 на машине d1 и 10.9.1.61/24 на машине d2 соответственно;
2 — устанавливаю необходимые пакеты:
apt-get update d1 # apt-get install linux-headers-$(uname -r)
3 — устанавливаю Keepalived:
apt-get install keepalived
4 — настраиваю Keepalived:
на машине d1: Показать
cat <<EOF >>/etc/keepalived/keepalived.conf global_defs {} vrrp_instance d1 { state MASTER interface <интерфейс> virtual_router_id 101 priority 101 advert_int 1 virtual_ipaddress { 10.9.1.6/24 } } EOF
на машине d2: Показать
cat <<EOF >>/etc/keepalived/keepalived.conf global_defs {} vrrp_instance d2 { state BACKUP interface <интерфейс> virtual_router_id 101 priority 101 advert_int 1 virtual_ipaddress { 10.9.1.6/24 } } EOF
5 — запускаю демон keepalived:
systemctl start keepalived
N. B. 4 Если в системе используется брандмауэр, необходимо разрешить протокол VRRP в нём. На примере iptables — необходимо добавить в цепочки INPUT и OUTPUT следующие правила:
iptables -I INPUT -p vrrp -j ACCEPT iptables -I OUTPUT -p vrrp -j ACCEPT
N. B. 5 Для настройки записи лога службы keepalived в отдельный файл необходимо создать файл /etc/syslog.d/10-keepalived.conf с таким содержимым:
if $programname contains 'keepalived' then /var/log/keepalived.log if $programname contains 'keepalived' then stop
Затем перезагрузить rsyslog:
systemctl restart rsyslog
N. B. 6 Для ротации новых логов создать файл /etc/logrotate.d/keepalived с таким содержимым:
/var/log/keepalived.log { weekly rotate 8 compress delaycompress missingok notifempty }
N. B. 7 Включить автозапуск службы keepalive:
systemctl enable keepalived
Результат
На рисунке приведён результат отключения линка на сетевом интерфейсе на сервере d2 (до отключения функционировал в режиме master). Видно, что виртуальный IP-адрес 10.9.1.6 остаётся доступным: Показать
Источники
https://ru.wikipedia.org/wiki/VRRP
https://winitpro.ru/index.php/2019/09/09/keepalived-ha-balansirovka-plavayushhiy-ip-adres/
https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/
Перейти к оглавлению.

Хаки и трюки
Виртуалки
Сисьадминство
BASH-скрипты
Парусные суда
Праздники
Моё чтиво
Игра KSP

Basix-DE 2.0
Дебиана (базовый дистр основывается на
бубунте), созданный в
Японии. Выпуск первой версии (1.0) состоялся 23 августа 2019 года. Последняя версия (эта) вышла 23 октября 2021 года. Данный проект лёг в основу
Kona Linux версии 5.0. Окружение рабочего стола —
LXDE,
Openbox. Объём файла образа винта после установки — 5,7 Гб.
Basix-DE


SimplyMEPIS 12.0 Beta 2 (11.9.92)
Кноппиксе, версии 6.0 и 6.5 основывались на
Уорреном Вудфордом (Warren Woodford) в 2002 году. Первый релиз был 10 мая 2003 года. Последняя версия (эта) была выпущена 10 августа 2013 года. На базе этой ОСи были созданы дистрибутивы
antiX и
MX Linux. Среда рабочего стола —
KDE. После установки размер файла образа винта — 4,1 гига.
SimplyMEPIS
NetLinx 4.31
Puppy Linux для ПК с архитектурой i386. Имеет предустановленное по умолчанию ПО для работы. Последняя версия (эта) была выпущена 11 февраля 2010 года. Графическое окружение рабочего стола —
JWM. Размер файла ISO-образа — 103 метра.
NetLinx
Satux GNU/Linux 1.5
Технологического института Хосе Роча Серхио Кардозо (Instituto de Tecnologia José Rocha Sérgio Cardoso, ITJRSC). Последняя версия (3.0) выпущена 21 марта 2011 года. Рабочий стол —
GNOME. Размер файла образа накопителя после установки — 3,7 Гб.
Satux
Caos Linux NSA 1.0.29
Шапки/
Федоры и
FreeBSD. Автор дистра —
CentOS. Система управления пакетами — RPM. Графическая среда —
Xfce. Размер файла образа винта после установки составил 2,3 гигабайта.
Caos
simpleLinux 1.10.10 (Optimist Oncilla)
Слаки и создан на основе
SLAX для обеспечения возможности использования устаревших школьных ПК. Использует LZMA для сжатия своих системных файлов, поставлялся как в версии Live CD, так и в версии Persistence, которую можно установить на носитель.. Дистр был доступен в нескольких редакциях: Community (для повседневного использования), Extended (содержит дополнительное ПО), Mini (облегчённая версия для старых ПК), Server (для использования на серверах). Последняя версия (эта) была выпущена в сентябре 2012 года. Графический рабочий стол —
simpleLinux
Фантастика, 1984 год
TumiX GNU/Linux 0.9
Перуанского сообщества свободного программного обеспечения (Peruvian Community of Free Software). Содержит большое количество академического, мультимедиа, сетевого и офисного ПО. Последняя версия (эта) была выпущена 15 июня 2005 года. Среда рабочего стола —
Fluxbox,
WMaker. Размер файла образа CD-диска — 631 Мб.
TumiX
MONOMAXOS 6
Димитрис Пападатос (Dimitris Papadatos). Существовало две версии дистра: Gladiator (Ο Μονομάχος, для использования на домашнем ПК) и Office (Είναι, для профессионального использования). Последняя версия (эта) была выпущена 9 августа 2011 года. Рабочий стол —
MONOMAXOS