keepalived 非搶佔模式
搶佔模式爲當keepalived的某臺機器掛了之後VIP漂移到了備節點,當主節點恢復後主動將VIP再次搶回,keepalived默認工作在搶佔模式下,而非搶佔模式則是當主節掛了再次起來後不再搶回VIP。此處需要注意非搶佔模式的keepalived其工作機制必須都爲BACKUP,並且開啓nopreempt選項.
實現keepalived 非搶佔模式
準備主機2臺
server | host | ip |
---|---|---|
keepalived | s1 | 172.20.27.10 |
keepalived | s2 | 172.20.27.11 |
s1節點配置
修改配置文件
[root@s1 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id s1.mylinuxops.com
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_iptables
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 27
priority 100
advert_int 2
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.20.27.100 dev ens33 label ens33:0
}
}
重啓服務
[root@s1 ~]# systemctl restart keepalived
s2 節點操作
修改配置文件
[root@s2 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id s2.mylinuxops.com
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_iptables
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 27
priority 80
advert_int 2
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.20.27.100 dev ens33 label ens33:0
}
重啓服務
[root@s2 ~]# systemctl restart keepalived
測試
查看當前vip所在位置
[root@s1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.20.27.10 netmask 255.255.0.0 broadcast 172.20.255.255
inet6 fe80::20c:29ff:fec5:123c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c5:12:3c txqueuelen 1000 (Ethernet)
RX packets 71851 bytes 5769380 (5.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 30175 bytes 7417306 (7.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.20.27.100 netmask 255.255.255.255 broadcast 0.0.0.0
ether 00:0c:29:c5:12:3c txqueuelen 1000 (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2 bytes 140 (140.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2 bytes 140 (140.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
當前VIP在s1節點上,當s1節點掛了之後再次查看
[root@s1 ~]# systemctl stop keepalived
VIP已經遷移至s2節點
[root@s2 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.20.27.11 netmask 255.255.0.0 broadcast 172.20.255.255
inet6 fe80::20c:29ff:fe4d:1ce3 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:4d:1c:e3 txqueuelen 1000 (Ethernet)
RX packets 61298 bytes 5145141 (4.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 793 bytes 69325 (67.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.20.27.100 netmask 255.255.255.255 broadcast 0.0.0.0
ether 00:0c:29:4d:1c:e3 txqueuelen 1000 (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 6 bytes 482 (482.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6 bytes 482 (482.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
此時再次啓動s1節點查看vip是否搶回
[root@s1 ~]# systemctl start keepalived
[root@s1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.20.27.10 netmask 255.255.0.0 broadcast 172.20.255.255
inet6 fe80::20c:29ff:fec5:123c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c5:12:3c txqueuelen 1000 (Ethernet)
RX packets 76211 bytes 6139923 (5.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 30392 bytes 7436214 (7.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2 bytes 140 (140.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2 bytes 140 (140.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
#沒有VIP
查看s2節點
[root@s2 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.20.27.11 netmask 255.255.0.0 broadcast 172.20.255.255
inet6 fe80::20c:29ff:fe4d:1ce3 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:4d:1c:e3 txqueuelen 1000 (Ethernet)
RX packets 63311 bytes 5316040 (5.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 877 bytes 75815 (74.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.20.27.100 netmask 255.255.255.255 broadcast 0.0.0.0
ether 00:0c:29:4d:1c:e3 txqueuelen 1000 (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 6 bytes 482 (482.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6 bytes 482 (482.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vip依舊在s2節點上。