2 つの vagrant Centos7 インスタンスを使用して仮想 IP フェイルオーバー用に keepalived をインストールしていますが、問題があります (実稼働環境でも同じ問題があります)。
基本的に、キープアライブを実行している 2 つのインスタンスがあります。以下は、これら 2 つのサーバーの設定 keepalived.conf です。
Server1 の構成:
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
}
}
Server2 の構成:
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
}
}
基本的に、次を使用してキープアライブを停止すると、sudo service keepalived stop on server1; 次に、仮想 IP アドレスが server2 に正常に転送されます。そして、「sudo service keepalived start」を使用してserver1でkeepalivedを開始すると、IPアドレスが転送されます。server1で「sudo再起動」を行っているときも、すべてが正しく機能しています。
ただし、sudo shutdown -h now (または vagrant halt server1) を使用して server1 をシャットダウンして再起動し、次に vagrant up 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 はどちらのサーバーにも割り当てられません。
ありがとう。