keepalived:vrrp協議 雙主模型
第一步配置出始環境: 準備兩節點: 主節點:172.18.57.7 long1 備節點:172.18.57.8 long2 (1) 各節點時間必須同步; 同步時間: ~]# yum -y install chrony ~]# vim /etc/chrony.conf ~]# systemctl start chronyd ~]# chronyc sources ~]# chronyc sourcestats (2) 確保iptables及selinux不會成為阻礙; 清空防火墻: ~]# iptables -F 關閉SELinux ~]# setenforce 0 清空規則: ~]# ipvsadm -C 重新啟動網絡: ~]#systemctl restart network (3) 各節點之間可通過主機名互相通信(對KA并非必須); 修改域名解析使用/etc/hosts文件實現; ~]#vim /etc/hosts 172.18.57.7 long1 172.18.57.8 long2 第二步:keepalived安裝 long1 ~]#yum -y install keepalived long2 ~]#yum -y install keepalived
第三步:修改配置文件 [root@long1 ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { root@localhost } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id long1 vrrp_mcast_group4 224.0.101.57 } vrrp_instance myr1 { state MASTER interface ens33 virtual_router_id 57 priority 100 advert_int 1 authentication { auth_type PASS auth_pass dAcLuTSt } virtual_ipaddress { 172.18.57.57/16 dev ens33 } } vrrp_instance myr2 { state BACKUP interface ens33 virtual_router_id 58 priority 98 advert_int 1 authentication { auth_type PASS auth_pass dAcLUTSt } virtual_ipaddress { 172.18.57.157/16 dev ens33 } } [root@long2 ~]#vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { root@localhost } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id long2 vrrp_mcast_group4 224.0.101.57 } vrrp_instance myr1 { state BACKUP interface ens33 virtual_router_id 57 priority 98 advert_int 1 authentication { auth_type PASS auth_pass dAcLuTSt } virtual_ipaddress { 172.18.57.57/16 dev ens33 } } vrrp_instance myr2 { state MASTER interface ens33 virtual_router_id 157 priority 100 advert_int 1 authentication { auth_type PASS auth_pass dAcLUTSt } virtual_ipaddress { 172.18.57.157/16 dev ens33 } }
第四步:啟動服務,查看狀態 [root@long1 ~]#systemctl start keepalived.service [root@long2 ~]#systemctl start keepalived.service [root@long1 ~]# systemctl status keepalived.service [root@long2 ~]# systemctl status keepalived.service [root@long1 ~]# tcpdump -i ens33 host 224.0.101.57
模擬宕機long1: [root@long1 ~]# iptables -A OUTPUT -s 172.18.57.7 -d 224.0.101.57 -j REJECT [root@long1 ~]# systemctl status keepalived.service [root@long1 ~]# iptables -F
實驗節點ip發生轉移是發送郵件:通知腳本 [root@long1 ~]#systemctl stop keepalived [root@long2 ~]#systemctl stop keepalived [root@long1 ~]# vim /etc/keepalived/notify.sh #!/bin/bash # contact='root@localhost' notify () { mailsubject="vrrp:$(hostname) to be $1" mailbody="$(hostname) to be $1, vrrp transition,$(date)." echo "$mailbody" | mail -s "$mailsubject" $contact } case $1 in master) notify master ;; backup) notify backup ;; fault) notify fault ;; *) echo "Usage: $(basename $0) master|backup|fault" exit 1 ;; esac [root@long1 ~]# chmod +x notify.sh [root@long1 ~]# vim /etc/keepalived/keepalived.conf notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh fault" [root@long2 ~]# vim /etc/keepalived/notify.sh #!/bin/bsah # contact='root@localhost' notify () { mailsubject="vrrp:$(hostname) to be $1" mailbody="$(hostname) to be $1, vrrp transition,$(date)." echo "$mailbody" | mail -s "$mailsubject" $contact } case $1 in master) notify master ;; backup) notify backup ;; fault) notify fault ;; *) echo "Usage: $(basename $0) master|backup|fault" exit 1 ;; esac [root@long2 ~]# vim /etc/keepalived/keepalived.conf notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh fault" [root@long2 ~]#systemctl start keepalived [root@long2 ~]#mail [root@long2 keepalived]#mail Heirloom Mail version 12.5 7/5/10. Type ? for help. "/var/spool/mail/root": 2 messages 1 new 2 unread >N 1 root Sun May 14 20:53 19/684 "vrrp: long2 to be backup" N 2 root Sun May 14 20:53 18/674 "vrrp: long2 to be master" [root@long1 ~]#systemctl start keepalived [root@long1 ~]#mail Heirloom Mail version 12.5 7/5/10. Type ? for help. "/var/spool/mail/root": 2 messages 2 new >N 1 root Sun May 14 20:53 18/674 "vrrp: long1 to be backup" N 2 root Sun May 14 20:53 18/674 "vrrp: long1 to be master" [root@long2 ~]#mail Heirloom Mail version 12.5 7/5/10. Type ? for help. "/var/spool/mail/root": 3 messages 1 new 3 unread U 1 root Sun May 14 20:53 19/684 "vrrp: long2 to be backup" U 2 root Sun May 14 20:53 19/684 "vrrp: long2 to be master" >N 3 root Sun May 14 20:54 18/674 "vrrp: long2 to be backup"
原創文章,作者:CL80516000,如若轉載,請注明出處:http://www.www58058.com/75758