Keepalived используется для отказоустойчивости между двумя серверами.
Это средства для балансировки нагрузки и обеспечения доступности к основанным на Linux инфраструктурам.
Сервис работает по протоколу VRRP (Протокол резервирования виртуального маршрутизатора).
У нас имеется два сервера LA ( load balance ), использемые HAProxy, и теперь мы должны реализовать VRRP между обоими серверами.
Это учебное руководство поможет вам конфигурировать KeepAlived и чтобы сконфигурировать HAProxy на обоих серверах.
Исходные данные в студию :
1. LB1 Server: 192.168.10.111 ( eth1 ) 2. LB2 Server: 192.168.10.112 ( eth1 ) 3. Virtual IP: 192.168.10.121
Теперь мы проведем установку отказоустойчивости между LB1 и серверами LB2.
Схема по установке:
Шаг 1: установим пакеты
# yum install gcc kernel-headers kernel-devel
# yum install keepalived
Шаг2: сконфигурируем Keepalived на LB1. Правим файл /etc/keepalived/keepalived.conf следующим видом:
! Configuration File for keepalived global_defs { notification_email { sysadmin@mydomain.com support@mydomain.com } notification_email_from lb1@mydomain.com smtp_server localhost smtp_connect_timeout 30 } vrrp_instance VI_1 { state MASTER interface eth1 virtual_router_id 51 priority 101 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.10.121 } }
Шаг 3: сконфигурируем KeepAlived на LB2.
Отредактируем конфигурационный файл Keepalived на LB2 и добавьте следующую конфигурацию.
При внесении изменений в конфигурационном файле LB2 удостоверьтесь, что установили приоритетные значения таким образом, чтобы понизить значение priority по отношению к тому же значению LB1.
Например, ниже в конфигурации указано значение 100 , в отличии от LB1, где оно равно 101.
! Configuration File for keepalived global_defs { notification_email { sysadmin@mydomain.com support@mydomain.com } notification_email_from lb2@mydomain.com smtp_server localhost smtp_connect_timeout 30 } vrrp_instance VI_1 { state MASTER interface eth1 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.10.121 } }
Шаг 4: запускаем KeepAlived
Выполянем команду старта нашего сервиса и назначаем автоматическую загрузку это службы при запуске операционной системы.
# service keepalived start # chkconfig keepalived on
Шаг 5: проверяем виртуальный ip адресс
Виртуальным IP по умолчанию будет IP присвоенный главному серверу.
В случае если Master падает, он будет автоматически присвоен slave серверу. Используем следующую команду, чтобы показать присвоенный виртуальный IP в интерфейсе.
# ip addr show eth1
Пример вывода:
2: eth1:mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:0c:29:6f:ed:60 brd ff:ff:ff:ff:ff:ff inet 192.168.10.111/24 brd 192.168.1.255 scope global eth1 inet 192.168.10.121/32 scope global eth1 inet6 fe80::20c:29ff:fe6f:ed60/64 scope link valid_lft forever preferred_lft forever
Выполняем проверку:
- Останавливаем LB1:
# ip addr show eth1
- Теперь стартуем LB2 и проверяем аналогично:
# ip addr show eth1
- Смотрим логи и проверяем работу:
# tailf /var/log/messages
Пример вывода:
Mar 19 17:30:24 localhost Keepalived_vrrp[6958]: VRRP_Instance(VI_1) Transition to MASTER STATE Mar 19 17:30:25 localhost Keepalived_vrrp[6958]: VRRP_Instance(VI_1) Entering MASTER STATE Mar 19 17:30:25 localhost Keepalived_vrrp[6958]: VRRP_Instance(VI_1) setting protocol VIPs. Mar 19 17:30:25 localhost Keepalived_healthcheckers[6957]: Netlink reflector reports IP 192.168.10.121 added Mar 19 17:30:25 localhost avahi-daemon[1407]: Registering new address record for 192.168.10.121 on eth1.IPv4. Mar 19 17:30:25 localhost Keepalived_vrrp[6958]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth1 for
0 Комментарии