Данное руководство касается версии keepalived 1.3.6
Ввиду того, что на версии 1.2.15 не стабильно работают некоторые критически важные функции, рекомендуется использовать в проектах именно эту версию
TODO
как keepalived используется в softwlc- описание конфига
- листинги скриптов
- (?) добавление slave stop / slave start в keep_notify.sh при переходе в backup
- описание работы keepalived по дефолту
- wieght & priority
- описание работы по rfc и вики
- перехват мастерства
- таймауты
- механизм preempt/nopreempt
- пример настройки (ГПН)
- отдельный лог
Описание пакета
Пакет keepalived это open source программное обеспечение, предназначенное для обеспечения функций высокой надежности (high availabilitty) и балансировки нагрузки (load-balancing). За первую функцию отвечает реализация протокола VRRP, а вторая основывается на модуле ядра Linux Vitrual Server (IPVS). Keepalived не разрабатывается сотрудниками Eltex и не включает доработок, за исключением конфигурации, выполняется сборка из исходных кодов из официального репозитория на GitHub (https://github.com/acassen/keepalived) необходимой версии под используемую операционную систему.
Keepalived используется для организации резервирования контроллеров SoftWLC, при этом используется только функционал VRRP.
Пакет keepalived для Ubuntu 14.04 можно запросить в Сервисном центре Wi-Fi и БШПД.
Установка
Для установки пакета необходимо загрузить его на сервер и выполнить следующую команду:
root@master:/# dpkg -i keepalived_1.3.6-eltexu14_amd64.deb
Установка должна производиться от имени суперпользователя root
Способ запуска/остановки
Для запуска сервиса воспользуйтесь командой:
service keepalived start
Ответ об успешном запуске будет такой:
keepalived start/running, process 2471
Остановка сервиса:
root@master:/# service keepalived stop
Ответ системы:
keepalived stop/waiting
Проверить состояние сервиса можно командой:
root@master:/# service keepalived status
Ответ:
keepalived start/running, process 2809
Конфигурация
Конфигурация keepalived состоит из следующих файлов
Файл | Описание |
---|---|
/etc/keepalived/keepalived.conf | главный файл конфигурации сервиса |
/etc/keepalived/check_ping.sh | скрипт проверки состояния службы EMS |
/etc/keepalived/keep_notify.sh | скрипт, который выполняется при смене состояния (при переходе в MASTER, BACKUP, FAULT) |
/etc/sysconfig/keepalived | файл конфигурации параметров запуска процесса keepalived |
Основной файл конфигурации
Листинг основного файла конфигурации по умолчанию
! Configuration File for keepalived global_defs { notification_email { admin@example.org } notification_email_from softwlc@example.org smtp_server mail.example.org smtp_connect_timeout 30 router_id ems1 enable_traps } vrrp_script check_network { script "/etc/keepalived/check_ping.sh" interval 10 weight 50 fall 2 rise 2 init_fail user root } vrrp_instance VI_EMS { state BACKUP interface eth0 virtual_router_id 1 track_script { check_network } track_interface { eth0 weight 50 } priority 50 advert_int 1 preempt_delay 180 authentication { auth_type PASS auth_pass eltex } virtual_ipaddress { 10.62.8.40 dev eth0 label eth0:1 } notify_master "/etc/keepalived/keep_notify.sh master" notify_backup "/etc/keepalived/keep_notify.sh backup" notify_fault "/etc/keepalived/keep_notify.sh fault" unicast_peer { 10.62.8.43 } }
Конфигурационный файл состоит из трех основных секций: global_defs, vrrp_script, vrrp_instance.
Первая определяет глобальные параметры, вторая содержит конфигурацию скрипта проверки состояния, а третья описывает сам VRRP инстанс.
Тест-скрипт
check_ping.sh
что зачем и почему так
Конфигурация смены роли
keep_notify.sh
с доделками и пояснениями
Конфигурация демона keepalived
параметры запуска etc
Выделение лога в отдельный файл
По умолчанию keepalived
записывает лог в файл /var/log/syslog
. Для удобства отладки, мониторинга и контроля работы keepalived можно настроить ведение собственного, отдельного лог-файла. Ниже приведен пример настройки rsyslog
:
nano -w /etc/rsyslog.d/10-keepalived.conf if $programname contains 'Keepalived' then /var/log/keepalived.log if $programname contains 'Keepalived' then ~
Затем нужно перезапустить rsyslog командой:
root@swlc01-server:/# service rsyslog restart
Теперь сообщения от демона keepalived попадут только в лог-файл /var/log/keepalived.log
и не попадут в /var/log/syslog
.