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

Невозможно запустить keepalived

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

Главный Сервер

vrrp_script chk_haproxy {
   script "killall -0 haproxy"   # verify the pid existance
   interval 2                    # check every 2 seconds
   weight 2                      # add 2 points of prio if OK
}

vrrp_instance VI_1 {
   interface eth0                # interface to monitor
   state MASTER
   virtual_router_id 51          # Assign one ID for this route
   priority 101                  # 101 on master, 100 on backup
   virtual_ipaddress {
       192.168.0.54            # the virtual IP
   }
   track_script {
       chk_haproxy
   }
}

Сервер резервного копирования

vrrp_script chk_haproxy {
   script "killall -0 haproxy"   # verify the pid existance
   interval 2                    # check every 2 seconds
   weight 2                      # add 2 points of prio if OK
}

vrrp_instance VI_1 {
   interface eth0                # interface to monitor
   state MASTER
   virtual_router_id 51          # Assign one ID for this route
   priority 100                  # 101 on master, 100 on backup
   virtual_ipaddress {
       192.168.0.54            # the virtual IP
   }
   track_script {
       chk_haproxy
   }
}

Вывод главного сервера при запуске службы поддержки активности

$ sudo service keepalived start
* Starting keepalived keepalived                                        [fail]

Вывод резервного сервера при запуске службы поддержки активности

$ sudo service keepalived start
* Starting keepalived keepalived                                        [Ok]

Есть ли у кого-нибудь предложение, что я здесь делаю не так?

Обновление по комментариям: Журнал главного сервера:

cat /var/log/syslog | grep VRRP_Instance

Here it does not prints anything which mean that the keepalived does not start on Master server

Журнал серверов резервного копирования:

cat /var/log/syslog | grep VRRP_Instance
Mar 27 02:39:22 ubuntu keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE
Mar 27 02:39:23 ubuntu keepalived_vrrp: VRRP_Instance(VI_1) Entering to MASTER STATE
Mar 27 02:39:38 ubuntu keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE
Mar 27 02:39:39 ubuntu keepalived_vrrp: VRRP_Instance(VI_1) Entering to MASTER STATE
Mar 27 02:52:16 ubuntu keepalived_vrrp: VRRP_Instance(VI_1) Received higher prio advert
Mar 27 02:52:16 ubuntu keepalived_vrrp: VRRP_Instance(VI_1) Entering to BACKUP STATE

Еще одна вещь: после обращения к веб-сайту я изменил состояние в файле keepalived.conf сервера резервного копирования на состояние BACKUP.

state MASTER может быть установлен только один узел. В качестве альтернативы оба установлены на state BACKUP, Он будет автоматически выбран в МАСТЕР по приоритету.

Вы неправильно сконфигурировали свой экземпляр VRRP. У тебя есть state MASTER на обоих узлах, но у вас может быть только один мастер. Установите сервер резервного копирования на state BACKUP и это будет работать. В целом правила довольно простые:

То же самое на обоих серверах:

  • virtual_router_id - должен быть уникальным для каждой группы серверов
  • virtual_ip

Разные на обоих серверах:

  • Имя экземпляра (vrrp_instance THIS-IS-INSTANCE-NAME {)
  • состояние (МАСТЕР на одном, РЕЗЕРВНОЕ на других)
  • приоритет (uniq для каждого узла, наивысший для мастера)

Было бы полезно, если бы вы могли повторно опубликовать свою текущую конфигурацию. Может, стоит попробовать.

Главный сервер

vrrp_script chk_haproxy {
   script "pidof haproxy"        # check the pid not kill it
   interval 2                    # check every 2 seconds
   weight 2                      # add 2 points of prio if OK
}

vrrp_instance VI_1 {
   interface eth0                # interface to monitor
   state MASTER
   virtual_router_id 51          # Assign one ID for this route
   priority 150                  # 150 on master, 100 on backup
   unicast_peer {
       <backup ip address>
   }
   virtual_ipaddress {
       192.168.0.54            # the virtual IP
   }
   track_script {
       chk_haproxy
  }
}

Сервер резервного копирования

Все то же самое, что и мастер, но поменять

state BACKUP
priority 100
unicast_peer {
     <master ip address>
}

убедитесь, что вы разрешаете протокол VRRP (IP proto 112) между главным и резервным. Проверьте состояние каждого из них в /var/run/keepalived.INSTANCE.VI_1.state. Убедитесь, что haproxy запускается до поддержки активности.