Keepalived виртуальный IP не будет возвращен обратно, когда хозяин хоста снова работает

Я устанавливаю keepalived для отработки отказа виртуального IP-адреса, используя 2 экземпляра Centos7, но у меня возникла проблема (у меня такая же проблема на производстве).

В основном, у меня есть 2 запущенных экземпляра keepalived. Ниже приведена конфигурация keepalived.conf для этих двух серверов:

Конфигурация сервера1:

global_defs {
   notification_email {
      ABC@gmail.com
   }
   notification_email_from server1.dev.vagrant.net
   smtp_server localhost
   smtp_connect_timeout 30
}

  vrrp_instance VI_enp0s8 {
      state MASTER
      interface enp0s8
      virtual_router_id 51
      priority 100
      advert_int 1
      authentication {
          auth_type PASS
          auth_pass 1111
      }
      virtual_ipaddress {
                    192.168.65.110
                    192.168.65.111

      }
  }

Конфигурация сервера 2:

global_defs {
   notification_email {
      ABC@gmail.com
   }
   notification_email_from server2.dev.vagrant.net
   smtp_server localhost
   smtp_connect_timeout 30
}

  vrrp_instance VI_enp0s8 {
      state BACKUP
      interface enp0s8
      virtual_router_id 51
      priority 99
      advert_int 1
      authentication {
          auth_type PASS
          auth_pass 1111
      }
      virtual_ipaddress {
                    192.168.65.110
                    192.168.65.111

      }
  }

В основном, если я прекращаю использовать keepalived с помощью: sudo, keepalived service stop на server1; затем виртуальные ipaddresses успешно передаются на server2. И когда я запускаю keepalived обратно на server1, используя "sudo service keepalived start", тогда ip-адреса возвращаются обратно. Все также работает правильно, когда я делаю "перезагрузку sudo" на server1.

Однако, если я завершу работу, а затем перезапущу сервер 1, используя: sudo shutdown -h now (или vagrant halt server1), а затем перейду на server1, то виртуальный IP не будет назначен ни одному серверу. (ip addr show enp0s8).

Ниже приведен журнал /var/log/messages. Мне кажется, что по какой-то причине виртуальные IP-адреса были добавлены, но затем удалены.

Jun 21 08:19:50 oasis4 Keepalived_vrrp[724]: VRRP_Instance(VI_enp0s8) Entering MASTER STATE
Jun 21 08:19:50 oasis4 Keepalived_vrrp[724]: VRRP_Instance(VI_enp0s8) setting protocol VIPs.
Jun 21 08:19:50 oasis4 Keepalived_healthcheckers[723]: Netlink reflector reports IP 192.168.65.110 added
Jun 21 08:19:50 oasis4 Keepalived_healthcheckers[723]: Netlink reflector reports IP 192.168.65.111 added
Jun 21 08:19:50 oasis4 Keepalived_vrrp[724]: VRRP_Instance(VI_enp0s8) Sending gratuitous ARPs on enp0s8 for 192.168.65.110
Jun 21 08:19:50 oasis4 Keepalived_vrrp[724]: VRRP_Instance(VI_enp0s8) Sending gratuitous ARPs on enp0s8 for 192.168.65.111
Jun 21 08:19:52 oasis4 Keepalived_healthcheckers[723]: Netlink reflector reports IP 192.168.65.104 removed
Jun 21 08:19:52 oasis4 Keepalived_vrrp[724]: Netlink reflector reports IP 192.168.65.104 removed
Jun 21 08:19:52 oasis4 Keepalived_healthcheckers[723]: Netlink reflector reports IP 192.168.65.110 removed
Jun 21 08:19:52 oasis4 Keepalived_vrrp[724]: Netlink reflector reports IP 192.168.65.110 removed
Jun 21 08:19:52 oasis4 Keepalived_healthcheckers[723]: Netlink reflector reports IP 192.168.65.111 removed
Jun 21 08:19:52 oasis4 Keepalived_vrrp[724]: Netlink reflector reports IP 192.168.65.111 removed
Jun 21 08:19:52 oasis4 kernel: e1000: enp0s8 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
Jun 21 08:19:52 oasis4 kernel: IPv6: ADDRCONF(NETDEV_UP): enp0s8: link is not ready
Jun 21 08:19:52 oasis4 kernel: IPv6: ADDRCONF(NETDEV_CHANGE): enp0s8: link becomes ready
Jun 21 08:19:54 oasis4 Keepalived_healthcheckers[723]: Netlink reflector reports IP 192.168.65.104 added
Jun 21 08:19:54 oasis4 Keepalived_vrrp[724]: Netlink reflector reports IP 192.168.65.104 added
Jun 21 08:19:55 oasis4 Keepalived_vrrp[724]: VRRP_Instance(VI_enp0s8) Sending gratuitous ARPs on enp0s8 for 192.168.65.110
Jun 21 08:19:55 oasis4 Keepalived_vrrp[724]: VRRP_Instance(VI_enp0s8) Sending gratuitous ARPs on enp0s8 for 192.168.65.111
Jun 21 08:19:55 oasis4 systemd: Starting Session 2 of user vagrant.
Jun 21 08:19:55 oasis4 systemd: Started Session 2 of user vagrant.
Jun 21 08:19:55 oasis4 systemd-logind: New session 2 of user vagrant.
Jun 21 08:19:56 oasis4 systemd-logind: Removed session 1.
Jun 21 08:20:00 oasis4 systemd: Starting Session 3 of user vagrant.
Jun 21 08:20:00 oasis4 systemd: Started Session 3 of user vagrant.
Jun 21 08:20:00 oasis4 systemd-logind: New session 3 of user vagrant.
Jun 21 08:20:01 oasis4 systemd: Starting user-0.slice.
Jun 21 08:20:01 oasis4 systemd: Created slice user-0.slice.
Jun 21 08:20:01 oasis4 systemd: Starting Session 4 of user root.

Если я захожу на сервер server1, а затем перезапускаю keepalived вручную, то все начинает работать нормально

Может кто-нибудь, пожалуйста, дайте мне знать, если что-то не так с моей конфигурацией?

Кроме того, есть пара раз, когда я не могу остановить службу должным образом, используя sudo service keepalived stop; Когда это происходит, виртуальный IP не назначается ни одному из серверов.

Благодарю.

1 ответ

Согласно журналам, keepalived был запущен до того, как сетевой интерфейс enp0s8 был запущен и готов к работе. Если вы хотите, чтобы keepalived отслеживал интерфейс, вы должны добавить что-то вроде этого в vrrp_instance.

track_interface {
    enp0s8
}
Другие вопросы по тегам