Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
章 4. 搭配 Keepalived 進行 Load Balancer 的初始配置
安裝了 Load Balancer 套件之後,您必須進行一些基礎步驟,以設定 LVS 路由器和真實伺服器搭配使用 Keepalived。本章節詳細涵蓋了這些初始步驟。
4.1. 基本的 Keepalived 配置
在這基本範例中,有兩台系統被配置為負載平衡器。LB1(啟用)與 LB2(備用)會將請求路由至一組集區,集區包含了執行
httpd
的四台網站伺服器,真實 IP 位址為 191.168.1.20 到 192.168.1.24,並共享一組虛擬 IP 位址 192.168.1.11。每台負載平衡器都有兩張網路卡(eth0
與 eth1
),一張用來處理外部的網際網路流量,另一張用來將請求路由至真實伺服器。此處使用的負載平衡演算法則是循環法(Round Robin),路由方法為 NAT。
4.1.1. 建立 keeaplived.conf
檔案
Keepalived 是透過
keepalived.conf
檔案進行配置。要建立 load balancer 拓樸,如 節 4.1, “基本的 Keepalived 配置” 所示,請使用文字編輯器開啟 keepalived.conf
。舉例來說:
vi /etc/keepalived/keepalived.conf
如〈節 4.1, “基本的 Keepalived 配置”〉所述,基本、配置好的負載平衡系統會有
keepalived.conf
檔案,如下所述:
4.1.1.1. 全域定義
keepalived.conf
檔案的「全域定義」一節能讓管理者指定負載平衡器發生變更時,進行通知的詳細資料。請注意「全域定義」是選用的,Keepalived 的配置不一定需要這一部分。
global_defs { notification_email { admin@example.com } notification_email_from noreply@example.com smtp_server 127.0.0.1 smtp_connect_timeout 60 }
notification_email
參數指的是負載平衡器的管理者,而 notification_email_from
是負載平衡器狀態改變的發送者位址。SMTP 的相關配置指定了發送通知所使用的郵件伺服器。
4.1.1.2. VRRP Instance
vrrp_sync_group VG1 { group { RH_EXT RH_INT } vrrp_instance RH_EXT { state MASTER interface eth0 virtual_router_id 50 priority 100 advert_int 1 authentication { auth_type PASS auth_pass password123 } virtual_ipaddress { 10.0.0.1 } } vrrp_instance RH_INT { state MASTER interface eth1 virtual_router_id 2 priority 100 advert_int 1 authentication { auth_type PASS auth_pass password123 } virtual_ipaddress { 192.168.1.1 } }
在此範例中,
vrrp_sync_group
一節透過任何狀態上的變更(例如故障後復原),將 VRRP 群組定義在一起。在此範例中,有個 instance 是定義給用來與網際網路通訊的外部介面(RH_EXT),以及一組內部介面(RH_INT)。
vrrp_instance RH1
一行詳述了VRRP 服務 daemon 的虛擬介面配置。這會建立虛擬 IP instance。state MASTER
標示出啟用中的伺服器;配置中的備份伺服器也有上述的設置,但配置為 state BACKUP
。
interface
參數指定了這虛擬 IP instnace 的實體介面名稱,而 virtual_router_id
是這 instance 的數字識別子。priority 100
指定了備援發生時,接手的介面之順序;數字越小,優先順序越高。
authentication
為伺服器指定備援同步時使用的身份認證類型(auth_type
)與密碼(auth_pass
)。PASS
指定了密碼認證;Keepalived 也支援 AH
(認證表頭,Authentication Header)作為連結的完整性使用。
最後,
virtual_ipaddress
選項會指定虛擬 IP 位址。
4.1.1.3. 虛擬伺服器的定義
virtual_server 192.168.1.11 80 { delay_loop 6 lb_algo rr lb_kind NAT real_server 192.168.1.20 80 { TCP_CHECK { connect_timeout 10 } } real_server 192.168.1.21 80 { TCP_CHECK { connect_timeout 10 } } real_server 192.168.1.22 80 { TCP_CHECK { connect_timeout 10 } } real_server 192.168.1.23 80 { TCP_CHECK { connect_timeout 10 } } }
在這一區裡,
virtual_server
會以 IP 位址最先配置。然後 delay_loop
會配置每次健康檢查之間的秒數。lb_algo
選項會指定用於可用性的演算法則(在此例子中,rr
代表循環法 - Round-Robin)。lb_kind
選項會決定路由方式,此例使用 NAT(nat
)。
配置虛擬伺服器的詳細資料後,就要配置
real_server
選項,同樣先配置 IP 位址。TCP_CHECK
一節會使用 TCP 檢查真實伺服器的可用性。connect_timeout
會配置逾時發生前所經過的秒數。