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= 一行,那麼第一組出現的會取得閘道器。因此如果 eth0eth1 都已配置,且 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:1eth1:1 的浮動 IP 位址。請使用 Piranha Configuration Tool,如〈節 4.4, “全域設定〉與〈節 4.6.1, “「虛擬伺服器」子區段”〉所示。
完成後,請啟動 pulse 服務,如〈節 4.8, “啟動 Load Balancer 外掛程式”〉。一旦 pulse 啟動並處於執行狀態,active LVS 路由器就會開始將需求路由至真實伺服器集區。