Использование Keepalived для высокой доступности
Рассмотрим использование Keepalived для обеспечения высокой доступности (High Availability, HA) и разберем пошагово его настройку и использование.
Что такое Keepalived?
Keepalived — это современный инструмент, созданный для обеспечения высокой доступности (HA) и балансировки нагрузки для Linux. Он использует протокол VRRP (Virtual Router Redundancy Protocol), чтобы обеспечить отказоустойчивость, когда основной сервер выходит из строя.
Основные компоненты и функции Keepalived
VRRP (Virtual Router Redundancy Protocol):
- Основной компонент Keepalived, позволяющий создать группу из нескольких серверов, где один сервер является главным (master), а остальные — резервными (backup). При выходе главного сервера из строя, один из резервных серверов автоматически становится новым главным сервером.
Health Checks (Проверки состояния):
- Keepalived может проводить проверки состояния сервисов или приложений, чтобы убедиться, что они работают правильно. Если сервис недоступен, Keepalived может переключить трафик на резервный сервер.
IP Failover (Перенос IP-адресов):
- Keepalived позволяет автоматически перенести IP-адрес главного сервера на резервный, если главный сервер выходит из строя.
Установка Keepalived
На Ubuntu/Debian:
sudo apt-get update
sudo apt-get install keepalived
На CentOS/RHEL:
sudo yum install keepalived
Настройка Keepalived
Файл конфигурации Keepalived обычно находится по пути: `/etc/keepalived/keepalived.conf`.
Пример конфигурации:
Главный сервер (Master):
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
192.168.1.100
}
}
Резервный сервер (Backup):
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
192.168.1.100
}
}
Параметры конфигурации:
- state: Состояние сервера (MASTER или BACKUP)
- interface: Сетевой интерфейс, который будет использоваться
- virtual_router_id: Идентификатор виртуального маршрутизатора (должен совпадать на всех серверах в группе)
- priority: Приоритет сервера (чем выше значение, тем больше приоритет у сервера)
- advert_int: Интервал (в секундах) между объявлениями VRRP
- authentication: Параметры аутентификации
- auth_type: Тип авторизации (обычно PASS).
- auth_pass: Пароль для авторизации.
- virtual_ipaddress: Виртуальный IP-адрес, который будет перемещаться между серверами
Запуск и управление Keepalived
После настройки конфигурационного файла, нужно запустить Keepalived:
sudo systemctl start keepalived
Для проверки статуса:
sudo systemctl status keepalived
Для того чтобы Keepalived запускался автоматически при старте системы:
sudo systemctl enable keepalived
Проверка работы Keepalived
Убедитесь, что мастер-сервер держит виртуальный IP-адрес:
ip addr show eth0
Отключите мастер-сервер для проверки переключения:
sudo systemctl stop keepalived
Проверьте, что резервный сервер взял на себя виртуальный IP-адрес
Заключение
Keepalived — это мощный инструмент для обеспечения высокой доступности и отказоустойчивости. Настроив его должным образом, можно значительно повысить надежность и бесперебойность работы ваших сервисов. Следуя данному руководству, вы сможете настроить основную функциональность Keepalived и обеспечить высокую доступность ваших приложений.