keepalived相關配置示例(一)

配置前提:

(1) 各節點時間必須同步

(2) 確保iptablesselinux不會成為阻礙

(3) 各節點之間可通過主機名互相通信(對KA并非必須)

        建議使用/etc/hosts文件實現

(4) 確保各節點的用于集群服務的接口支持MULTICAST通信

單主配置實例:  node1為主     node2為從

node1

[root@node1 ~]#ntpdate 172.16.0.1  各節點時間必須同步
[root@node1 ~]#vim /etc/chrony.conf

keepalived相關配置示例(一) 

[root@node1 ~]#systemctl restart chronyd.service
[root@node1 ~]#systemctl enable chronyd.service 開機啟動chronyd.service
[root@node1 ~]#vim /etc/hosts   各節點之間可通過主機名互相通信

keepalived相關配置示例(一) 

[root@node1 ~]#ping node2
[root@node1 ~]#ip link set multicast on dev ens33    確保各節點的用于集群服務的接口支持MULTICAST通信
[root@node1 ~]#yum install keepalived -y
[root@node1 /etc/keepalived]#cp keepalived.conf{,.bak}
[root@node1 /etc/keepalived]#vim keepalived.conf

keepalived相關配置示例(一) 

global_defs {
   notification_email {
        root@localhost  #設置報警郵件地址,可以設置多個,每行一個。需要開啟sendmail服務。
   }    
   notification_email_from keepalived@localhost #設置郵件的發送地址
   smtp_server 127.0.0.1    #設置SMTP Server地址
   smtp_connect_timeout 30  #設置SMTP Server的超時時間
   router_id node1   #表示運行Keepalived服務器的一個標識。發郵件時顯示大郵件主題中的信息
   vrrp_mcast_group4 224.1.101.33
}  
 
vrrp_instance VI_1 {    #vrrp 實例定義部分
    state MASTER    #指定Keepalived的角色,MASTER表示些主機是主服務器。BACKUP表示此主機是備用服務器
    interface ens33 #指定HA監測網絡的接口
    virtual_router_id 33 #虛擬路由標識,這個標識是一個數字,同一個vrrp實例使用唯一的標識,即同一個vrrp_instance下MASTER與BACKUP必須是一致的
    priority 100    #定義優先級,數字越大,優先級越高
    advert_int 1
    authentication {
        auth_type PASS  #設置驗證類型和密碼,MASTER和BACKUP必須使用相同的密碼才能正常通信
        auth_pass Nl9OliUQ  # openssl rand -base64 7  得出隨機八位數
    }   
    virtual_ipaddress { #設置虛擬IP地址,可以設置多個虛擬IP地址,每行一個
        172.16.0.99/16 dev ens33 label ens33:0
    }
}   
[root@node1 /etc/keepalived]#scp keepalived.conf node2:/etc/keepalived/ 傳到node2中
[root@node2 /etc/keepalived]#systemctl start keepalived.service 啟動時,由于優先級高于node2,所以node2關閉
[root@node2 /etc/keepalived]#systemctl status keepalived.service 查看日志

node2
[root@node2 ~]#ntpdate 172.16.0.1   各節點時間必須同步
[root@node2 ~]#vim /etc/chrony.conf

keepalived相關配置示例(一) 

[root@node2 ~]#systemctl restart chronyd.service
[root@node2 ~]#systemctl enable chronyd.service 開機啟動chronyd.service
[root@node2 ~]#vim /etc/hosts   各節點之間可通過主機名互相通信

keepalived相關配置示例(一) 

[root@node2 ~]#ping node1
[root@node2 ~]#ip link set multicast on dev ens33 確保各節點的用于集群服務的接口支持MULTICAST通信
[root@node2 ~]#yum install keepalived -y
[root@node2 /etc/keepalived]#vim keepalived.conf
global_defs {
   notification_email {
        root@localhost  #設置報警郵件地址,可以設置多個,每行一個。需要開啟sendmail服務。
   }    
   notification_email_from keepalived@localhost #設置郵件的發送地址
   smtp_server 127.0.0.1    #設置SMTP Server地址
   smtp_connect_timeout 30  #設置SMTP Server的超時時間
   router_id node2   #表示運行Keepalived服務器的一個標識。發郵件時顯示大郵件主題中的信息
   vrrp_mcast_group4 224.1.101.33
}  
 
vrrp_instance VI_1 {    #vrrp 實例定義部分
    state BACKUP    #指定Keepalived的角色,MASTER表示些主機是主服務器。BACKUP表示此主機是備用服務器
    interface ens33 #指定HA監測網絡的接口
    virtual_router_id 33 #虛擬路由標識,這個標識是一個數字,同一個vrrp實例使用唯一的標識,即同一個vrrp_instance下MASTER與BACKUP必須是一致的
    priority 80 #定義優先級,數字越大,優先級越高
    advert_int 1
    authentication {
        auth_type PASS  #設置驗證類型和密碼,MASTER和BACKUP必須使用相同的密碼才能正常通信
        auth_pass Nl9OliUQ  # openssl rand -base64 7  得出隨機八位數
    }   
    virtual_ipaddress { #設置虛擬IP地址,可以設置多個虛擬IP地址,每行一個
        172.16.0.99/16 dev ens33 label ens33:0
    }
}   
測試:
[root@node2 /etc/keepalived]#systemctl start keepalived.service
[root@node2 /etc/keepalived]#systemctl status keepalived.service 查看日志
[root@node2 /etc/keepalived]#tcpdump -i ens33 -nn host 224.1.101.33 node1開啟時
08:25:13.748659 IP 172.16.250.149 > 224.1.101.33: VRRPv2, Advertisement, vrid 33, prio 100, authtype simple, intvl 1s, length 20
[root@node2 /etc/keepalived]#tcpdump -i ens33 -nn host 224.1.101.33 node1關閉時
08:26:20.811002 IP 172.16.252.245 > 224.1.101.33: VRRPv2, Advertisement, vrid 33, prio 80, authtype simple, intvl 1s, length 20

雙主模型實例:

node1
[root@node1 /etc/keepalived]#vim keepalived.conf
vrrp_instance VI_1 {
    interface ens33
    authentication {
        auth_type PASS
        auth_pass NcxCHRPP
    }
    virtual_ipaddress {
        172.16.0.99/16 dev ens33
    }
}
 
vrrp_instance VI_2 {
    state BACKUP
    priority 90
    interface ens33
    virtual_router_id 34
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass AcxRHRQP
    }
    virtual_ipaddress {
        172.16.0.88/16 dev ens33
    }
}

node2
[root@node2 /etc/keepalived]#vim keepalived.conf
vrrp_instance VI_1 {
    state BACKUP
    priority 80
    interface ens33
    virtual_router_id 33
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass NcxCHRPP
    }   
    virtual_ipaddress {
        172.16.0.99/16 dev ens33
    }   
}   
 
vrrp_instance VI_2 {
    state MASTER
    priority 100
    interface ens33
    virtual_router_id 34
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass AcxRHRQP
    }   
    virtual_ipaddress {
        172.16.0.88/16 dev ens33
    }   
}   
測試:
[root@node1 /etc/keepalived]#systemctl stop keepalived.service
[root@node1 /etc/keepalived]#systemctl stop keepalived.service
[root@node1 /etc/keepalived]#systemctl start keepalived.service
[root@node2 /etc/keepalived]#systemctl start keepalived.service
[root@node2 ~]#tcpdump -i ens33 -nn host 224.1.101.33
09:07:18.318146 IP 172.16.250.149 > 224.1.101.33: VRRPv2, Advertisement, vrid 33, prio 100, authtype simple, intvl 1s, length 20
09:07:18.725960 IP 172.16.252.245 > 224.1.101.33: VRRPv2, Advertisement, vrid 34, prio 100, authtype simple, intvl 1s, length 20
09:07:19.319033 IP 172.16.250.149 > 224.1.101.33: VRRPv2, Advertisement, vrid 33, prio 100, authtype simple, intvl 1s, length 20
[root@node1 /etc/keepalived]#systemctl stop keepalived.service
09:09:58.514319 IP 172.16.250.149 > 224.1.101.33: VRRPv2, Advertisement, vrid 33, prio 100, authtype simple, intvl 1s, length 20
09:09:58.969318 IP 172.16.250.149 > 224.1.101.33: VRRPv2, Advertisement, vrid 34, prio 96, authtype simple, intvl 1s, length 20
09:09:59.515444 IP 172.16.250.149 > 224.1.101.33: VRRPv2, Advertisement, vrid 33, prio 100, authtype simple, intvl 1s, length 20
09:09:59.970398 IP 172.16.250.149 > 224.1.101.33: VRRPv2, Advertisement, vrid 34, prio 96, authtype simple, intvl 1s, length 20

通知腳本的使用方式:

[root@node1 /etc/keepalived]#vim notify.sh
#!/bin/bash
#
contact='root@localhost'
notify() {
local mailsubject="$(hostname) to be $1, vip floating"
local mailbody="$(date +'%F %T'): vrrp transition, $(hostname) changed to be $1"
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@node1 /etc/keepalived]#chmod +x notify.sh
[root@node1 /etc/keepalived]#bash -n notify.sh
[root@node1 /etc/keepalived]#bash -x notify.sh master 腳本調用
[root@node1 /etc/keepalived]#bash -x notify.sh backup 腳本調用
[root@node1 /etc/keepalived]#bash -x notify.sh fault 腳本調用
[root@node1 /etc/keepalived]#scp -p notify.sh node2:/etc/keepalived/ 保留權限復制到node2
[root@node1 /etc/keepalived]#cp keepalived.conf{,.dual}
[root@node1 /etc/keepalived]#vim keepalived.conf 將雙主模型刪除
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 33
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass r6SYByVN
    }
    virtual_ipaddress {
    172.16.0.99/16 dev ens33 lable ens33:0
    }
 
    notify_master "/etc/keepalived/notify.sh master"
    notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}   
[root@node2 /etc/keepalived]#cp keepalived.conf{,.dual}
[root@node2 /etc/keepalived]#vim keepalived.conf 做node1同樣的操作

 

原創文章,作者:Linux.rookie,如若轉載,請注明出處:http://www.www58058.com/78611

(0)
Linux.rookieLinux.rookie
上一篇 2017-06-26 08:43
下一篇 2017-06-26 23:45

相關推薦

  • LINUX 下正確關機方法

    Linux下正確關機方法 Table of Contents 1關機前 1.1觀察系統使用 1.2通知在線使用者關機 2關機 2.1 sy 2.2 shutdo 2.3 rebo 2.4 ha 2.5 powero 3執行 3.1等級 3.2等級 1關機前準備 1.1觀察系統使用狀態 誰在線:who 聯網狀態:netstat -a 后臺執行的程序:ps -a…

    Linux干貨 2017-08-21
  • 數組

    一.數組 變量:存儲單個元素的內存空間 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合。 索引:編號從0 開始,屬于數值索引  注:索引可支持使用自定義的格式,而不僅是數值格式,即為關聯索引,bash4.0 版本之后開始支持,bash 的數組支持稀疏格式(索引不連續) 二.數組的聲明 declare -a ARRAY_NAME decla…

    Linux干貨 2016-11-23
  • 邏輯卷管理器 LVM

          邏輯卷管理器 LVM lvm概述   LVM是Logical Volume Manager(邏輯卷管理器)的簡寫,又譯為邏輯卷宗管理器、邏輯扇區管理器、邏輯磁盤管理器。是Linux核心所提供的邏輯卷管理(Logical Volume Management)功能。它在硬盤的硬盤分區之上,又…

    Linux干貨 2016-09-02
  • IP地址的劃分及優化

    IP地址定義:互聯網協議地址(英語:Internet Protocol Address,又譯為網際協議地址),是IP Address的縮寫。IP地址是IP協議提供的一種統一的地址格式,它為互聯網上的每一個網絡和每一臺主機分配一個邏輯地址,所以它可以唯一標識IP網絡中的每臺設備,同時沒臺主機(計算機,網絡設備,外圍設備)必須具有唯一的地址。 IP地址相比于MA…

    Linux干貨 2017-07-02
  • ipvsadm配置命令

    Ipvsadm配置   ipvsadm/ipvs: 集群和集群之上的各RS是分開管理的; 集群定義 RS定義 ipvs:內核基本都自動編譯上了 ~]# grep -i -C 10 “ipvs” /boot/config-VERSION-RELEASE.x86_64     支持的協議:…

    Linux干貨 2017-05-17
  • linux一周學習總結

          對于linux,之前也完全沒有接觸過,完全零基礎小白。來到馬哥以后,進入學習也有一周時間 ,一周里老師帶我們學習了很多指令,下面,我就自己的理解和老師講授的內容對linux中的一些指令做一個簡單的小總結。 一、關于SHELL Shell     查詢當前系統使用了哪個shell   &n…

    2017-07-15
欧美性久久久久