...
Информация |
---|
Данное руководство касается версии keepalived 1.3.6 Ввиду того, что на версии 1.2.15 не стабильно работают некоторые критически важные функции, рекомендуется использовать только версию 1.3.6 |
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) необходимой версии под используемую операционную систему.
...
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
#!/bin/bash MYSQL_USER="<mysql_user>" MYSQL_PASSWORD="<mysql_password>" mongo_set_role() { local role="$1" if [[ "$(which mongo)" ]]; then mongo --quiet --eval "var role=\"$role\"" admin /etc/keepalived/mongo_switch.js # Uncomment if using mongodb auth #mongo -u<username> -p<password> --quiet --eval "var role=\"$role\"" admin /etc/keepalived/mongo_switch.js fi } if ! lockfile-create --use-pid -r 5 /tmp/keep.mode.lock; then echo "Unable to lock" echo "Unable to lock" > /tmp/keep.mode.lock.fail exit 0 fi case "$1" in master) # ems_reload_all echo "MASTER" > /tmp/keep.mode mongo_set_role master service eltex-ems restart service tomcat7 restart service eltex-ngw restart # рестарт слейва MySQL чтобы при восстановлении связи - сразу получить изменения, # а не ждать периодического heartbeat от второго сервера mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e "stop slave" mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e "start slave" ;; backup) echo "BACKUP" > /tmp/keep.mode mongo_set_role slave service mongodb restart service eltex-ems stop service tomcat7 stop service eltex-ngw stop mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e "stop slave" mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e "start slave" ;; fault) echo "FAULT" > /tmp/keep.mode mongo_set_role slave service mongodb restart ;; *) echo "Usage: $0 {master|backup|fault}" exit 1 esac lockfile-remove /tmp/keep.mode.lock; exit 0 |
с доделками и пояснениями
Скрипт смены мастера replicaSet MongoDB.
...
Конфигурация демона keepalived
параметры запуска etc
Выделение лога в отдельный файл
...