Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Установка и настройка Keepalived

Keepalived — программный пакет с открытым исходным кодом, который обеспечивает высокую доступность (HA) и отказоустойчивость для систем на базе Linux. Он используется для:

  • управления виртуальными IP-адресами (VIP);

  • обеспечения бесперебойной доступности сервисов в сценариях, где могут произойти сбои системы или приложения.

В этом разделе описано, как установить и настроить Keepalived для операционных систем: РЕД ОС, Astra Linux, Debian, Alt Linux и OpenSuse.

1. Установка Keepalived на серверах

Перед установкой проверьте, что Keepalived установлен на серверах:

  • основном;

  • резервном.

Его можно установить с помощью менеджера пакетов системы для:

РЕД ОС
sudo dnf install keepalived
Astra Linux
sudo apt install keepalived
Debian
sudo apt install keepalived
Alt Linux
sudo apt-get install keepalived
OpenSUSE
sudo zypper install keepalived

2. Настройка Keepalived на основном сервере

  1. Отредактируйте файл конфигурации Keepalived, который по умолчанию находится по адресу /etc/keepalived/keepalived.conf, на основном сервере с помощью команды ниже:

    sudo nano /etc/keepalived/keepalived.conf
  2. Добавьте следующую конфигурацию в файл:

    vrrp_instance VI_1 {
    
        state MASTER
        interface %Имя_сетевого_интерфейса%
        virtual_router_id %Уникальный_идентификатор_роутера_VRRP%
        priority %Приоритет_основного_сервера%
        advert_int %Интервал_обновления_состояния_сервера%
        authentication {
            auth_type PASS
            auth_pass %Пароль%
        }
        virtual_ipaddress {
            %Виртуальный_IP-адрес%
        }
    }

    Где:

    • %Имя_сетевого_интерфейса% — имя сетевого интерфейса, например «eth0».

    • %Уникальный_идентификатор_роутера_VRRP% — уникальный идентификатор роутера VRRP, например «51». Он должен совпадать на серверах.

    • %Приоритет_основного_сервера% — приоритет основного сервера, например «100». Он должен быть выше, чем на резервном.

    • %Интервал_обновления_состояния_сервера% — интервал обновления состояния сервера, например «1».

    • %Пароль% — пароль, например «password123». Он должен быть одинаковым на серверах.

    • %Виртуальный_IP-адрес% — VIP для службы, например «192.168.1.100».

  3. Сохраните и закройте файл.

  4. Чтобы применить изменения, перезапустите Keepalived с помощью команд:

    sudo systemctl restart keepalived
    
    sudo systemctl enable keepalived

3. Настройка Keepalived на резервном сервере

  1. Отредактируйте файл конфигурации Keepalived, который по умолчанию находится по адресу /etc/keepalived/keepalived.conf, на резервном сервере с помощью команды ниже:

    sudo nano /etc/keepalived/keepalived.conf
  2. Добавьте следующую конфигурацию в файл:

    vrrp_instance VI_1 {
    
        state BACKUP
        interface %Имя_сетевого_интерфейса%
        virtual_router_id %Уникальный_идентификатор_роутера_VRRP%
        priority %Приоритет_резервного_сервера%
        advert_int %Интервал_обновления_состояния_сервера%
        authentication {
            auth_type PASS
            auth_pass %Пароль%
        }
        virtual_ipaddress {
            %Виртуальный_IP-адрес%
        }
    }

    Где:

    • %Имя_сетевого_интерфейса% — имя сетевого интерфейса, например «eth0».

    • %Уникальный_идентификатор_роутера_VRRP% — уникальный идентификатор роутера VRRP, например «51». Он должен совпадать на серверах.

    • %Приоритет_резервного_сервера% — приоритет резервного сервера, например «90». Он должен быть ниже, чем на основном.

    • %Интервал_обновления_состояния_сервера% — интервал обновления состояния сервера, например «1».

    • %Пароль% — пароль, например «password123». Он должен быть одинаковым на серверах.

    • %Виртуальный_IP-адрес% — VIP для службы, например «192.168.1.100».

  3. Сохраните и закройте файл.

  4. Чтобы применить изменения, перезапустите Keepalived с помощью команд:

sudo systemctl restart keepalived

sudo systemctl enable keepalived

4. Проверка работоспособности

  1. Проверьте, что Keepalived работает на серверах с помощью команды:

    sudo systemctl status keepalived
  2. Проверьте, какой из серверов обрабатывает VIP.

    ip a | grep %Виртуальный_IP-адрес%

    На основном сервере этот IP-адрес должен быть привязан к сетевому интерфейсу.

  3. Для тестирования отказоустойчивости отключите сетевой интерфейс на основном сервере с помощью команды:

    sudo ifdown %Имя_сетевого_интерфейса%
  4. После отключения основного сервера VIP должен автоматически перейти на резервный сервер. Это можно проверить с помощью команды:

    ip a | grep %Виртуальный_IP-адрес%
  5. Восстановите работу интерфейса на основном сервере:

    sudo ifup %Имя_сетевого_интерфейса%