keepalive.conf # 配置文件
# VIP 101.21.55.12 10.10.10.12 # Real Server1 101.21.55.13 10.10.10.13 # Real Server2 101.21.55.14 10.10.10.14 # ! Configuration File for keepalived # 全局定義部分 global_defs { notification_email { root@localhost # 設置報警郵件地址,可以設置多個,每行一個。注意,如果要開啓郵件報警,需要開啓本機的sendmail服務。 [email protected] } notification_email_from root@localhost # 設置郵件的發送地址 smtp_server 127.0.0.1 # 設置smtp server地址 smtp_connect_timeout 30 # 設置連接smtp服務器超時時間 router_id LVS_DEVEL # 運行Keepalived服務器的一個標識。發郵件時顯示在郵件標題中的信息 } # vrrp實例定義部分,可以定義外網ip也可以定義內網ip。本文是2種方法同時定義使用 vrrp_instance VI_1 { state MASTER # 指定Keepalived的角色,MASTER表示此主機是主用服務器,BACKUP表示是備用服務器 interface eth1 # 指定HA監測網絡的接口 virtual_router_id 1 # 虛擬路由標識,這個標識是一個數字,並且同一個vrrp實例使用唯一的標識,即同一個vrrp_instance下,MASTER和BACKUP必須是一致的。 priority 101 # 定義優先級,數字越大,優先級越高,在一個vrrp_instance下,MASTER的優先級必須大於BACKUP的優先級 advert_int 1 # 設定MASTER與BACKUP負載均衡器之間同步檢查的時間間隔,單位是秒 authentication # 設定驗證類型和密碼 { auth_type PASS # 設置驗證類型,主要有PASS和AH兩種 auth_pass xde.146_5%DJYP # 設置驗證密碼,在一個vrrp_instance下,MASTER與BACKUP必須使用相同的密碼才能正常通信 } virtual_ipaddress # 設置虛擬IP地址,可以設置多個虛擬IP地址,每行一個 { 101.21.55.12 } } # 虛擬服務器定義部分 virtual_server 101.21.55.12 80 # 設置虛擬服務器,需要指定虛擬ip地址和服務端口,ip與端口之間用空格隔開 { delay_loop 2 # 設置健康檢查時間,單位是秒 lb_algo wrr # 設置負載調度算法,這裏設置爲wrr,即最少鏈接調度 lb_kind DR # 設置負載均衡轉發規則,可以有NAT、TUN和DR三個模式可選 persistence_timeout 0 # 會話保持時間,單位是秒,這個選項對於動態網頁是非常有用的,爲集羣系統中session共享提供了一個很好的解決方案。有了這個會話保持功能,用戶的請求會被一直分發到某個服務節點,直到超過這個會話保持時間。需要注意的是,這個會話保持時間,是最大無響應超時時間,也就是說用戶在操作動態頁面時,如果在50秒內沒有執行任何操作,那麼接下來的操作會被分發到另外節點,但是如果一直在操作動態頁面,則不受50秒的時間限制 protocol TCP # 指定轉發協議類型,有tcp和udp兩種 nat_mask 255.255.255.240 gateway 101.21.55.158 real_server 101.21.55.13 80 # 配置服務節點1,需要指定real server的真實IP地址和端口,ip與端口之間用空格隔開 { weight 1 # 設置權重,權值大小用數字表示,數字越大,權值越高,設置權值的大小可以爲不同性能的服務器分配不同的負載,可以對性能高的服務器設置較高的權值,而對性能較低的服務器設置相對較低的權值,這樣就合理的利用和分配了系統資源 TCP_CHECK # realserve的狀態檢測設置部分,單位是秒 { connect_timeout 3 # 3秒無響應超時 nb_get_retry 3 # 重試次數 delay_before_retry 3 # 重試間隔 } } real_server 101.21.55.14 80 # 配置服務節點2 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } # 以下內容是定義內網的ip/vip及其real server,和上面內容相似,只是ip做了對應修改 vrrp_instance VI_2 { state BACKUP interface eth0 virtual_router_id 1 priority 100 advert_int 1 authentication { auth_type PASS auth_pass xde.146_5%DJYP } virtual_ipaddress { 10.10.10.12 } } virtual_server 10.10.10.12 80 { delay_loop 2 lb_algo wrr lb_kind DR nat_mask 255.255.255.0 gateway 10.10.10.1 persistence_timeout 0 protocol TCP real_server 10.10.10.13 80 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 10.10.10.14 80 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }
在配置Keepalived.conf時,需要特別注意配置文件的語法格式,因爲Keepalived在啓動時並不檢測配置文件的正確性,即使沒有配置文件,Keepalived也照樣能啓動起來,因而配置文件一定要正確。
在默認情況下,Keepalived在啓動時會查找/etc/Keepalived/Keepalived.conf配置文件,如果你的配置文件放在了其它路徑下,可以通過“Keepalived -f”參數指定你所在的配置文件路徑即可。
Keepalived.conf配置完畢後,將此文件拷貝到備用Director Server對應的路徑下,然後做兩個簡單的修改即可:
將“state MASTER”更改爲“state BACKUP”
將priority 100更改爲一個較小的值,這裏改爲“priority 80”
最後,還要配置集羣的Real server節點,以達到與Director Server相互廣播通信並忽略arp的目的,腳本的內容已經在前面文章中進行過介紹,這裏不做解釋。