本文共 1846 字,大约阅读时间需要 6 分钟。
允许组播,两台设备上都需要执行
iptables -A INPUT -d 224.0.0.18 -j ACCEPT或修改:vim /etc/sysconfig/iptables适当位置添加行:-A INPUT -d 224.0.0.18 -j ACCEPT
默认情况下keepalived 有一台主服务器(master,以后称之为M服务器),一台备服务器(backup,以后称之为B服务器)。
正常情况下M服务器接管VIP成为【主】,当M服务器宕机后,B服务器接管VIP成为【主】,已达到灾备的效果,如果M服务器再次恢复正常,那么M服务器会重新抢回VIP成为【主】 B服务器变成【备】。核心配置如下,配置这里不全,需要注意:
Master配置vrrp_instance VI_1 {
state MASTERinterface eno16777736virtual_router_id 51priority 100advert_int 1authentication { auth_type PASSauth_pass 1111}virtual_ipaddress { 192.168.80.120}#notify_master /home/keepshell/notify_master.sh#notify_backup /home/keepshell/notify_backup.sh#notify_fault /home/keepshell/notify_fault.sh#notify_stop /home/keepshell/notify_stop.sh}
Backup配置
vrrp_instance VI_1 {
state BACKUPinterface eno16777736virtual_router_id 51nopreemptpriority 90advert_int 1authentication { auth_type PASSauth_pass 1111}virtual_ipaddress { 192.168.80.120}#notify_master /home/keepshell/notify_master.sh#notify_backup /home/keepshell/notify_backup.sh#notify_fault /home/keepshell/notify_fault.sh#notify_stop /home/keepshell/notify_stop.sh}
有的时候我们需要M服务器在恢复正常后不要重新接管VIP,让B服务器继续为【主】 让后来恢复正常的M服务器为【备】。
修改Master配置, Backup服务器的配置不变。
vrrp_instance VI_1 {
state BACKUP interface eno16777736 virtual_router_id 51 priority 100 nopreempt advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.80.120 } notify_master /home/keepshell/notify_master.sh notify_backup /home/keepshell/notify_backup.sh notify_fault /home/keepshell/notify_fault.sh notify_stop /home/keepshell/notify_stop.sh}
state MASTER 修改为 state BACKUP
nopreempt 设置为不抢夺VIP没错,修改M,B服务器的 state BACKUP 都为【备】类型,同时设置 nopreempt 设置为不抢夺VIP,然后先启动M服务器,M服务器会成为【主】,
然后启动B服务器,由于M的优先级高【priority 100】 所以B不会抢夺VIP,这时M宕机,B成为【主】,接着M恢复正常,由于设置了nopreempt 所以M不会抢夺VIP,B继续为【主】而M为【备】。转载于:https://blog.51cto.com/13120271/2327004