Load-Balancing

環形架構中的 Keepalived 或其他更好的方法

  • September 10, 2014

我有三個負載均衡器(LB1、LB2、LB3)併計劃使用環形架構進行主動-主動設置,例如

LB1    LB2    LB3
IP1    IP2    IP3

構想如下:

  1. 如果 LB1 失敗,IP1 將浮動到 IP2
  2. 如果 LB2 失敗,IP2 將浮動到 IP3
  3. 如果 LB3 失敗,IP3 將浮動到 IP1

以上設置通用嗎?有什麼潛在的問題嗎?

或者對三節點設置有什麼更好的建議?

使用keepalived可以實現雙活場景。需要配置多個vrrp_instances如:

vrrp_sync_group G1 {   # must be before vrrp_instance declaration 
 group {
   vserver1
 }
 group {
   vserver2
 }
}

# The primary server 
vrrp_instance vserver1 {
   interface eth0
   state MASTER
   virtual_router_id 1
   priority 100
   advert_int 3
   authentication {
     auth_type PASS
     auth_pass mypass
   }
   virtual_ipaddress {
       VIP1/24   # default CIDR mask is /32 
   }
}

# The backup server
vrrp_instance vserver2 {
   interface eth0
   state backup
   virtual_router_id 2
   priority 50
   advert_int 3
   authentication {
     auth_type PASS
     auth_pass mypapas
   }
   virtual_ipaddress {
       VIP2/24   # default CIDR mask is /32 
   }
}

重要的一點是在第二個節點上具有類似的配置,但具有不同statepriority. 在所示範例中,您需要更改這些行以使另一個節點MASTER用於 VIP2 和BACKUPVIP1。預設情況下,每台機器都有自己的 VIP,當發生故障時,兩個 VIP 都分配給剩餘的機器。

當然,也可以對 3 台機器進行類似的操作。您需要定義三個vrrp_instance而不是兩個。

引用自:https://serverfault.com/questions/471399