Назад | Перейти на главную страницу

параметры виртуального IP-адреса keepalived для отработки отказа

У меня два сервера (A-master и B-backup) с одним виртуальным ip.

Мне нужно назначить виртуальный IP-адрес серверу B в случае сбоя сервера A. Для этого я пытаюсь настроить keepalived.

server Виртуальный IP-адрес настроен на eth0: 1. Виртуальный IP-адрес сервера B в настоящее время установлен на какой-то другой IP-адрес в eth0: 1.

Не знаю, как настроить keealived. Мне нужно назначить один и тот же виртуальный IP-адрес обоим серверам и запустить keepalived или установить виртуальный IP-адрес только на сервере A

Прежде всего, псевдонимы интерфейсов, такие как eth0: 1, были важны около 15 лет назад, когда сетевой интерфейс мог содержать только один IP-адрес. Более десяти лет вы можете добавлять несколько IP-адресов к одному и тому же сетевому интерфейсу без использования псевдонимов интерфейсов:

/sbin/ip address add 192.0.2.123/32 dev eth0
/sbin/ip address add 192.0.2.124/32 dev eth0
/sbin/ip address add 192.0.2.125/32 dev eth0
/sbin/ip address list
/sbin/ip address del 192.0.2.124/32 dev eth0
/sbin/ip address list dev eth0

Так что на случай, если вы подумали о том, чтобы иметь только один IP-адрес для каждого интерфейса: забудьте об этом, в этом нет особой необходимости, и keepalived также не будет следовать этой идее.

По сути, вы будете назначать отдельные IP-адреса каждому из ваших серверов вручную и настраивать keepalived, чтобы позаботиться о добавлении или удалении списка дополнительных виртуальных IP-адресов для одного из интерфейсов ваших серверов.

vrrp_instance VRRP_1 {
    state BACKUP
    interface eth0
    virtual_router_id 101
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass sometext
    }
    virtual_ipaddress {
        192.0.2.123
    }
}

Это заставит Keepalived на обоих хостах периодически объявлять (используя их вручную настроенные IP-адреса), что он готов разместить определенный список виртуальных IP-адресов (максимум 20); это объявление также содержит приоритет (8 бит) и токен аутентификации (максимум 8 символов).

Если один из ваших хостов не видит объявления для того же virtual_router_id, использующего ту же аутентификацию и для того же списка макс. 20 IP-адресов и с не более высоким приоритетом, чем его собственный, в течение нескольких секунд, он добавит эти дополнительные IP-адреса в интерфейс хоста, в противном случае он удалит их из интерфейса хоста.

Если ваши хосты используют одинаковый приоритет: объявляющий IP-адрес также используется для решения, кто будет размещать этот виртуальный IP-адрес.

keepalived также предупредит (и проигнорирует любые другие объявления), если вы используете тот же virtual_router_id, что и кто-либо другой в вашей сети, но вы используете другой список IP-адресов или другой токен аутентификации.

Состояние «MASTER» и «BACKUP» в keepalived используется только для предположения об инициализации при запуске: система, запускающаяся в состоянии «MASTER», не будет ждать поступления каких-либо других объявлений и немедленно начнет добавлять дополнительный IP-адрес, в то время как узел BACKUP будет ждать, пока пройдет несколько потенциальных объявлений, прежде чем принять решение о добавлении (не) дополнительного IP-адреса.

Убедитесь, что ваш узел BACKUP не объявляет IP-адрес с более высоким приоритетом, чем MASTER; в противном случае ваш ГЛАВНЫЙ узел сразу же займет IP-адрес после запуска keepalived, а через несколько секунд ваш BACKUP-узел займет этот IP-адрес.

Мое личное предпочтение - не заботиться о «МАСТЕРЕ», настроить все узлы на «РЕЗЕРВНОЕ КОПИРОВАНИЕ» и позволить VRRP решать, что нужно сделать без перехвата триггера.