keepalived配置文件詳解2


MISC_CHECK { 

misc_path /path_to_script/script.sh 

(or misc_path “/path_to_script/script.sh <arg_list>”) 

real_server @IP PORT { 

weight num 

HTTP_GET|SSL_GET { 

url { # You can add multiple url block 

path alphanum 

digest alphanum 

connect_port num 

connect_timeout num 

nb_get_retry num 

delay_before_retry num 

全局定義塊 

1 email通知。作用:有故障,發郵件報警。這是可選項目,建議不用,用nagios全面監控代替之。 

2 Lvs負載均衡器標識(lvs_id)。在一個網路內,它應該是唯一的。 

3
花括弧“{}”。用來分隔定義塊,因此必須成對出現。如果寫漏了,keepalived運行時,不會得到預期的結果。由於定義塊內存在嵌套關係,因此很容易遺漏結尾處的花括弧,這點要特別注意。

● VRRP定義塊 

1
同步vrrpvrrp_sync_group。作用:確定失敗切換(FailOver)包含的路由實例個數。即在有2個負載均衡器的場景,一旦某個負載均衡器失效,需要自動切換到另外一個負載均衡器的實例是哪些?

2
實例組group.至少包含一個vrrp實例。 

3 Vrrp實例vrrp_instance.實例名出自實例組group所包含的那些名字。 

1
實例狀態state.只有MASTERBACKUP兩種狀態,並且需要大寫這些單詞。其中MASTER為工作狀態,BACKUP為備用狀態。當MASTER所在的伺服器失效時,BACKUP所在的系統會自動把它的狀態有BACKUP變換成MASTER;當失效的MASTER所在的系統恢復時,BACKUPMASTER恢復到BACKUP狀態。

2
通信介面interface。對外提供服務的網路介面,如eth0,eth1.當前主流的伺服器都有2個或2個以上的介面,在選擇服務介面時,一定要核實清楚。 

3 lvs_sync_daemon_inteface。負載均衡器之間的監控介面,類似於HA HeartBeat的心跳線。但它的機制優於Heartbeat,因為它沒有裂腦這個問題,它是以優先順序這個機制來規避這個麻煩的。在DR模式中,lvs_sync_daemon_inteface 與服務介面interface 使用同一個網路介面。

4
虛擬路由標識virtual_router_id.這個標識是一個數字,並且同一個vrrp實例使用唯一的標識。即同一個vrrp_stance,MASTERBACKUPvirtual_router_id是一致的,同時在整個vrrp內是唯一的。

5
優先順序priority.這是一個數字,數值愈大,優先順序越高。在同一個vrrp_instance里,MASTER 的優先順序高於BACKUP。若MASTERpriority值為150,那麼BACKUPpriority只能是140或更小的數值。

6
同步通知間隔 advert_int .MASTERBACKUP負載均衡器之間同步檢查的時間間隔,單位為秒。 

7
驗證authentication。包含驗證類型和驗證密碼。類型主要有PASSAH兩種,通常使用的類型為PASS,據說AH使用時有問題。驗證密碼為明文,同一vrrp實例MASTERBACKUP 使用相同的密碼才能正常通信。

4
虛擬ip地址virtual_ipaddress . 可以有多個地址,每個地址佔一行,不需要指定子網掩碼。注意:這個ip必須與我們在lvs客戶端設定的vip相一致!

虛擬伺服器virtual_server定義塊 

虛擬伺服器定義是keepalived框架最重要的項目了,是keepalived.conf必不可少的部分。 

1
虛擬伺服器virtual_server. 這個ip來自於vrrp定義塊的第“4”步,後面一個空格,然後加上埠號。定義一個vip,可以實現多個tcp埠的負載均衡功能。

1 delay_loop。健康檢查時間間隔,單位是秒。 

2 lb_algo. 負載均衡調度演算法,互聯網應用常使用wlcrr 

3 lb_kind. 負載均衡轉發規則。一般包括DR,NAT,TUN3種,在我的方案中,都使用DR的方式。 

4 persistence_timeout.會話保持時間,單位是秒。這個選項對動態網站很有用處:當用戶從遠程用帳號進行登陸網站時,有了這個會話保持功能,就能把用戶的請求轉發給同一個應用伺服器。在這裡,我們來做一個假設,假定現在有一個lvs 環境,使用DR轉發模式,真實伺服器有3個,負載均衡器不啟用會話保持功能。當用戶第一次訪問的時候,他的訪問請求被負載均衡器轉給某個真實伺服器,這樣他看到一個登陸頁面,第一次訪問完畢;接著他在登陸框填寫用戶名和密碼,然後提交;這時候,問題就可能出現了登陸不能成功。因為沒有會話保持,負載均衡器可能會把第2次的請求轉發到其他的伺服器。

5
轉發協議protocol.一般有tcpudp兩種。實話說,我還沒嘗試過udp協議類的轉發。 

2
真實伺服器real_server.也即伺服器池。Real_server的值包括ip地址和埠號。多個連續的真實ip,轉發的埠相同,是不是可以以範圍表示?需要進一步實驗。如寫成real_server 61.135.20.1-10 80 .

1
權重weight.權重值是一個數字,數值越大,權重越高。使用不同的權重值的目的在於為不同性能的機器分配不同的負載,性能較好的機器,負載分擔大些;反之,性能差的機器,則分擔較少的負載,這樣就可以合理的利用不同性能的機器資源。

2 Tcp檢查 tcp_check.

 

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營