keepalive配置文件詳解

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的目的,腳本的內容已經在前面文章中進行過介紹,這裏不做解釋。

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章