Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
章 3. 設定 Load Balancer 外掛程式
Load Balancer 外掛程式包含了兩個基本群組:LVS 路由器與真實伺服器。要避免單點失效的問題,每個群組都應該包含至少兩台成員系統。
LVS 路由器群組應該包含兩台完全相同、或非常近似的 Red Hat Enterprise Linux 系統。一台作為 active LVS 路由器,另一台則處於熱待命模式,因此兩台電腦的處理能力應該相仿。
選擇、配置真實伺服器群組之前,請先決定要使用三種 Load Balancer 外掛程式拓樸的哪一種。
3.1. NAT Load Balancer 外掛程式網路
NAT 拓樸能讓使用者大幅使用現有硬體,但限於處理大量負載的能力,因為所有進出集區的封包都會通過 Load Balancer 外掛程式路由器。
- 網路佈局
- 從網路佈局的角度來看,使用 NAT 路由的 Load Balancer 外掛程式之拓樸是最容易配置的,因為只需要單點即可存取公開網路。真實伺服器位於私有網路內,會透過 LVS 路由器將所有需求傳回。
- 硬體
- 就硬體來說,NAT 拓樸是最有彈性的配置,因為真實伺服器並不一定得是 Linux 伺服器才能正常運作。在 NAT 拓樸中,每台真實伺服器只需要一張網路卡,因為真實伺服器只需要回應 LVS 路由器即可。另一方面,LVS 路由器需要兩張網路卡連接兩組網路。因為這拓樸會在 LVS 路由器上造成網路瓶頸,因此不妨在每台 LVS 路由器上採用 gigabit 乙太網路卡。如果 LVS 路由器用了 gigabit 乙太網路卡,連接真實伺服器與 LVS 路由器的任何交換器,都必須有至少兩組 gigabit 乙太網路連接埠,以有效處理負載。
- 軟體
- 因為在某些配置下,NAT 拓樸需要使用
iptables
,因此除了 Piranha Configuration Tool 以外,還需要不少軟體配置。尤其是 FTP 服務與使用防火牆標記,需要額外配置 LVS 路由器,路由功能才能正常運作。
3.1.1. 在 Load Balancer 外掛程式搭配 NAT 情境下,配置網路介面
要搭配 NAT 設定 Load Balancer 外掛程式,您必須先為 LVS 路由器的公開與私有網路配置網路介面卡。在此範例中,LVS 路由器的公開介面(
eth0
)是 192.168.26/24(這不是可路由的 IP 網段,但我們假設這台 LVS 路由器之前有防火牆),而連至真實伺服器的私有介面(eth1
)位於 10.11.12/24 網段。
重要
請注意,編輯以下屬於
network
服務與 Load Balancer 外掛程式的檔案,並不相容於 NetworkManager
服務。
在 active LVS 路由節點或「主」LVS 路由節點上,公開介面的網路 script
/etc/sysconfig/network-scripts/ifcfg-eth0
看起來類似:
DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.26.9 NETMASK=255.255.255.0 GATEWAY=192.168.26.254
LVS 路由器上的私有 NAT 介面之檔案
/etc/sysconfig/network-scripts/ifcfg-eth1
則類似:
DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=10.11.12.9 NETMASK=255.255.255.0
在此範例中,LVS 路由器介面的虛擬 IP 是 192.168.26.10,NAT 或私有介面的虛擬 IP 則是 10.11.12.10。因此,真實伺服器的路由需求會回到 NAT 介面的虛擬 IP。
重要
本節的乙太網路介面配置之設定值範例,是給 LVS 路由器的真實 IP 位址使用,而「不是」給浮動 IP 位址使用。要配置公開與私有浮動 IP 位址,管理者必須使用 Piranha Configuration Tool,如〈節 4.4, “全域設定”〉與〈節 4.6.1, “「虛擬伺服器」子區段”〉所示。
配置主 LVS 路由器節點的網路介面之後,配置備用 LVS 路由器的真實網路介面 — 請注意,不要有任何 IP 位址與網路上的其它 IP 位址相衝突。
重要
確定備用節點上的每個介面,都與主節點上的介面位於同一組網路上。舉例來說,如果 eth0 連接至主節點上的公開網路,那麼也必須連接到備用節點的公開網路上。
3.1.2. 真實伺服器上的路由
在 NAT 拓樸中配置真實伺服器網路介面時,最重要的是設定 LVS 路由器的閘道器之 NAT 浮動 IP 位址。在此範例中,IP 位址為 10.11.12.10。
注意
一旦真實伺服器上的網路介面都已啟動,電腦就無法透過其它方式 ping 或連接至公開網路。這很正常。然而您可以 ping LVS 路由器的私有介面之真實 IP,亦即此範例中的 10.11.12.9。
因此,真實伺服器的
/etc/sysconfig/network-scripts/ifcfg-eth0
檔案看起來類似:
DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=10.11.12.1 NETMASK=255.255.255.0 GATEWAY=10.11.12.10
警告
如果真實伺服器有超過一組網路介面配置有
GATEWAY=
一行,那麼第一組出現的會取得閘道器。因此如果 eth0
與 eth1
都已配置,且 eth1
用於 Load Balancer 外掛程式,那麼真實伺服器可能就無法正確處理路由的需求。
最好把多餘的網路介面卡關掉,作法是在
/etc/sysconfig/network-scripts/
目錄中的網路卡 script 裡,設置 ONBOOT=no
,或確定第一張出現的網路卡之閘道器已被正確設定。
3.1.3. 在 LVS 路由器上啟用 NAT 路由設定
在簡易的 NAT Load Balancer 外掛程式配置裡,每個叢集服務都只使用一組連接埠,例如 HTTP 使用連接埠號 80,那麼管理者只需要在 LVS 路由器上啟用封包轉送功能,就可以讓這些需求在外在世界與真實伺服器之間正確地路由。欲知啟用封包轉送功能的資訊,請參閱〈節 2.5, “開啟封包轉送”〉。然而,叢集服務需要使用超過一組連接埠,好在同一個使用者 session 中連接同一台真實伺服器時,就需要額外設定。欲知使用防火牆標記以建立多連接埠服務的資訊,請參閱〈節 3.4, “多連接埠與 Load Balancer 外掛程式”〉。
一旦 LVS 路由器啟用了封包轉送功能,且真實伺服器已經設定完成並執行叢集服務,請使用 Piranha Configuration Tool 配置 Load Balancer 外掛程式,如〈章 4, 以 Piranha Configuration Tool 配置 Load Balancer 外掛程式〉所述。
警告
請勿手動編輯網路 script 或使用網路 script 的編輯程式,來配置
eth0:1
或 eth1:1
的浮動 IP 位址。請使用 Piranha Configuration Tool,如〈節 4.4, “全域設定”〉與〈節 4.6.1, “「虛擬伺服器」子區段”〉所示。
完成後,請啟動
pulse
服務,如〈節 4.8, “啟動 Load Balancer 外掛程式”〉。一旦 pulse
啟動並處於執行狀態,active LVS 路由器就會開始將需求路由至真實伺服器集區。