Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

章 1. Load Balancer 總覽

Load Balancer 是個能平衡真實伺服器之間的 IP 流量的一組整合式軟體元件。它包含了兩項主要技術,以監控叢集成員與叢集服務:Keepalived 與 HAProxy。Keepalived 使用 LVS 來進行負載平衡與任務上的容錯移轉,HAProxy 則負責為 TCP 與 HTTP 應用程式進行負載平衡(load balancing)與高可用性(high-availability)服務。

1.1. keepalived

keepalived daemon 會在主動式和被動式的 LVS 路由器上執行。所有執行 keepalived 的路由器皆使用虛擬路由冗餘協定(Virtual Redundancy Routing Protocol,VRRP)。主動式路由器會以定時間隔傳送 VRRP 通告;若備份路由器無法接收這些通告,另一個新的主動式路由器將會被選出。
在主動式路由器上,keepalived 亦可為真實伺服器進行負載平衡任務。
Keepalived 是個與 LVS 路由器相關的控制程序。在開機時,daemon 會由 systemctl 指令所啟用,它會讀取 /etc/keepalived/keepalived.conf 這個配置檔案。在主動式路由器上,keepalived daemon 會啟用 LVS 服務並根據配置的拓樸來監控服務健康狀態。主動式路由器會透過使用 VRRP 定期傳送通告給備份路由器。在備份路由器上,VRRP instance 會判斷主動式路由器的運作狀態。若主動式路由器在經由使用者配置的時間間隔經過後依然無法傳送通告的話,Keepalived 便會啟用容錯移轉機制。在進行容錯移轉時,虛擬伺服器將會被清空。新的主動式路由器會接管控制 VIP、送出一則 ARP 訊息、設定 IPVS 表格項目(虛擬伺服器)、開始進行健康檢測,並開始傳送 VRRP 通告。
Keepalived 會在第 4 層或是傳輸層上執行容錯移轉,之後 TCP 便會進行基於連線的資料傳輸。當一部真實伺服器無法回應單純的逾時 TCP 連線時,keepalived 會偵測到伺服器已失效並將它由伺服器集區中移除。