Keepalived をインストールする
NFSサーバー2台でインストール
sudo apt-get install -y keepalived
Keepalived を設定する
1台目のNFS
sudo nano /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface enp1s0
virtual_router_id 51
priority 100
advert_int 1
virtual_ipaddress {
10.0.0.60
}
}
sudo systemctl start keepalived
sudo systemctl enable keepalived
2台目のNFS
sudo nano /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface enp1s0
virtual_router_id 51
priority 90
advert_int 1
virtual_ipaddress {
10.0.0.60
}
}
sudo systemctl start keepalived
sudo systemctl enable keepalived
仮想IPアドレスが割り振られているか確認する
1台目
$ ip addr show enp1s0
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 38:f7:cd:c7:f3:17 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.31/23 metric 100 brd 10.0.1.255 scope global enp1s0
valid_lft forever preferred_lft forever
inet 10.0.0.60/32 scope global enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::3af7:cdff:fec7:f317/64 scope link
valid_lft forever preferred_lft forever
enp1s0
に 10.0.0.60
が割り振られています。
2台目
$ ip addr show enp1s0
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 38:f7:cd:c7:a9:56 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.32/23 metric 100 brd 10.0.1.255 scope global enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::3af7:cdff:fec7:a956/64 scope link
valid_lft forever preferred_lft forever
1台目が生きているので、2台目には、10.0.0.60
が割り振られていません。
フェイルオーバーのテスト
1第目のkeepalived を落としてみて、2台目に仮想IPが移るか?を確認します。
1台目
$ sudo systemctl stop keepalived
ip addr show enp1s0
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 38:f7:cd:c7:f3:17 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.31/23 metric 100 brd 10.0.1.255 scope global enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::3af7:cdff:fec7:f317/64 scope link
valid_lft forever preferred_lft forever
2台目
$ ip addr show enp1s0
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 38:f7:cd:c7:a9:56 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.32/23 metric 100 brd 10.0.1.255 scope global enp1s0
valid_lft forever preferred_lft forever
inet 10.0.0.60/32 scope global enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::3af7:cdff:fec7:a956/64 scope link
valid_lft forever preferred_lft forever
想定通り、2台目に 10.0.0.60
が割り振られています。
1台目を復帰させる
$ sudo systemctl start keepalived
$ ip addr show enp1s0
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 38:f7:cd:c7:f3:17 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.31/23 metric 100 brd 10.0.1.255 scope global enp1s0
valid_lft forever preferred_lft forever
inet 10.0.0.60/32 scope global enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::3af7:cdff:fec7:f317/64 scope link
valid_lft forever preferred_lft forever
2台目
$ ip addr show enp1s0
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 38:f7:cd:c7:a9:56 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.32/23 metric 100 brd 10.0.1.255 scope global enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::3af7:cdff:fec7:a956/64 scope link
valid_lft forever preferred_lft forever
こちらも想定通り、1台目に 10.0.0.60
が割り振られています。
とても良い感じに動いてくれています🍻