一個 Red Hat Enterprise Linux LVS 路由器由兩個基本的群組所組成: LVS 路由器與實時伺服器。 為了防止單一節點失效的情況, 每一個群組必須至少含有兩個成員系統。
LVS 路由器群組必須含有兩部相同或非常類似的 Red Hat Enterprise Linux 系統,其中一部將會當作主動的 LVS 路由器, 而另一部將會以熱備援的模式運作,所以這兩部系統最好是擁有相同的系統能力。
在為實時伺服器群組選擇與設定硬體時,您必須決定要使用這三種 LVS 拓撲圖的哪一種。
NAT 拓撲圖允許相當大的空間來利用既有的硬體,不過由於所有進出叢集的封包都會通過 LVS 路由器, 因此將會侷限它用來處理大量負載的能力。
從網路配置的觀點來看,利用 NAT 路由選擇的 LVS 叢集拓樸圖是最容易設定的,因為叢集對公眾網路 只需要單一的存取點。 實時伺服器將透過 LVS 路由器傳回所有的要求,所以它們是位於自己的私有網路。
就叢集硬體來說,NAT 拓樸圖是最具彈性的,因為實時伺服器並不需要是 Linux 機器便可以正常地運作。 在一個 NAT 叢集中,每一個實時伺服器只需要一張 NIC,因為它只需要回應 LVS 路由器,不過每一部 LVS 路由器需要兩張 NIC 來路由兩個網路間的流量。 因為這種拓樸圖在 LVS 路由器的地方有網路的瓶頸, 可以在每一部 LVS 路由器使用 gigabit 的乙太網路卡以增加 LVS 路由器可以處理的頻寬。 假如使用 gigabit 乙太網路在 LVS 路由器中,任何連接實時伺服器到 LVS 路由器的網路交換器必須含有至少兩個 gigabit 乙太網路連接埠來有效率地處理網路負載。
因為 NAT 拓樸圖需要在某些設定上使用 iptables,在 Piranha 組態設定工具 之外也許需要相當多的軟體設定。 特別是 FTP 服務與防火牆的使用需要在 LVS 路由器上做額外的手動設定, 以使正確地發送要求。
如要設定一個 NAT LVS 叢集,系統管理員必須先設定公眾網路與 LVS 路由器上私有網路的網路介面。 在此例中,LVS 路由器的公眾介面(eth0)將會位於 192.168.26/24 網路中 (這不是一個可被存取的 IP,不過讓我們假設在 LVS 路由器之前有一個防火牆),而連線到實時伺服器的 私有介面(eth1)將會位於 10.11.12/24 網路中。
所以在現行或 主要的 LVS 路由器節點上公眾介面的網路程式碼 /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 路由器公眾介面的 VIP 將會是 192.168.26.10,而 NAT 或私有介面的 VIP 將會是 10.11.12.10,所以實時伺服器必須發送要求到 NAT 介面的 VIP。
![]() | 重要 |
---|---|
這個部份的範例乙太網路介面組態設定是用於 LVS 路由器的真實 IP 位址,而不是 浮動的 IP 位址。 如要設定公有與私有的浮動 IP 位址,系統管理員應該使用 Piranha 組態設定工具(如 第 12.4 節 與 第 12.6.1 節 所示)。 |
在設定完主要 LVS 路由器節點的網路介面卡後,請設定備援 LVS 路由器的真實網路介面卡 — 請注意,這些 IP 位址不能與網路中其他的 IP 位址衝突。
![]() | 重要 |
---|---|
請確定備援節點上的每一個介面必須與主要節點上的介面伺服相同的網路,舉例來說,假如 eth0 連接到 主要節點上的公眾網路,它也必須連接到備援節點上的公眾網路。 |
在 NAT 叢集中設定實時伺服器的網路介面時,最重要的事情是設定閘道器給 LVS 路由器的 NAT 浮動 IP 位址。 在此例中,該位址將是 10.11.12.10。
![]() | 請注意 |
---|---|
一旦實時伺服器上的網路介面卡啟動後,機器將無法以其他方式來 ping 或連接到公眾網路。 這是正常的, 然而,您還是可以 ping LVS 路由器私有介面的真實 IP(在此為 10.11.12.8)。 |
所以實時伺服器的 /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 是由 LVS 叢集所使用,實時伺服器將無法 正確地發送要求。 最好關閉無關緊要的網路介面,您可以在 /etc/sysconfig/network-scripts/ 目錄中的網路程式碼設定 ONBOOT=no, 或者是確定在首先啟動的介面上閘道器的設定正確。 |
在一個簡單的 NAT LVS 叢集中(每一個叢集服務只使用一個連接埠,如埠號 80 的 HTTP 服務),系統管理員 只需要在 LVS 路由器上啟動封包轉送(packet forwarding),便能使得要求能夠在外界與實時伺服器間正確地傳送。 請參考 第 10.5 節 以取得開啟封包轉送的指示,然而,當叢集的服務需要一個 以上的連接埠以在一個使用者的作業階段前往相同的實時伺服器,您便需要更多的設定。 如需使用防火牆標記 來建立多連接埠服務的更多資訊,請參考 第 11.3 節。
一旦 LVS 路由器的封包轉送啟用,而且已經設定好實時伺服器,且已開始執行叢集的服務,請使用如 第12章 所示的步驟使用 Piranha 組態設定工具 來設定叢集。
![]() | 警告 |
---|---|
請勿手動編輯網路程式碼或使用網路設定工具來設定 eth0:1 或 eth1:1 介面的浮動 IP,請使用如 第 12.4 節 與 第 12.6.1 節 所示的步驟使用 Piranha 組態設定工具 設定任何與叢集相關的虛擬介面。 |
完成後,請啟動 pulse 服務(如 第 12.8 節 所示), 一旦 pulse 服務開始執行後,現行的 LVS 路由器將會開始發送要求到實時伺服器的群組中。