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
}