9.6. LVS 叢集 — 一個區塊的圖解

LVS 路由器使用一組程式來監視叢集成員以及叢集服務,圖形 9-4 圖解了這些程式如何在現行與備援 LVS 路由器上一起使用來管理叢集。

圖形 9-4. 一部執行中 LVS 叢集的組成元件

pulse 系統程式一併執行在現行與備援的 LVS 路由器上,在備援的 路由器上,pulse 傳送一個 heartbeat 訊號到現行路由器的公有介面,以確定現行路由器仍然正常執行中。 在現行伺服器上, pulse 啟動 lvs 系統程式並且回應來自備援 LVS 路由器的 heartbeat 查詢。

在啟動後,lvs 系統程式將呼叫 ipvsadm 服務來設定並維護核心中 IPVS 的路由表,然後再啟動每一部實時伺服器上所設定的 nanny 程序。 每一個 nanny 程序會檢查 一部實時伺服器上的一個已設定的服務,然後再告知 lvs 系統 程式該實時伺服器上的服務是否運作正常。 假如偵測到運作不正常的情況,lvs 系統程式將會指示 ipvsadm 從 IPVS 路由表中移除該實時伺服器。

假如備援路由器沒有接收到來自現行路由器的回應,它將會初始容錯移轉,並藉由呼叫 send_arp 重新指定所有的虛擬 IP 位址到備援節點的 NIC 硬體位址(MAC 位址),再透過公有與私有網路介面傳送一個指令到現行路由器,以關閉現行路由器上的 lvs 系統程式,然後再啟動備援節點上的 lvs 系統程式以接受虛擬伺服器的要求。

9.6.1. 一個 LVS 叢集的組成元件

第 9.6.1.1 節 顯示出在一個 LVS 叢集中每一軟體元件的一個詳細清單。

9.6.1.1. pulse

這是用來啟動所有與 LVS 路由器關聯的所有其他系統程式的控制性程序,在開機時, 這個系統程式是由 /etc/rc.d/init.d/pulse 程式碼啟動。然後 它將會讀取 /etc/sysconfig/ha/lvs.cf 設定檔案,在一部現行 路由器上,pulse 將啟動 LVS 系統程式;在備援路由器上, pulse 藉由在使用者設定的間歇時間執行一個簡單的 heartbeat 來決定現行路由器的狀況。 假如現行的路由器無法在使用者設定的間歇時間回應的話, 它將初始容錯移轉。 在容錯移轉階段,在備援路由器的 pulse 會指示位於現行路由器的 pulse 系統程式關閉所有的 LVS 服務, 並且啟動 send_arp 程式來重新指定浮動的 IP 位址給備援路由器 的 MAC 位址,然後再啟動 lvs 系統程式。

9.6.1.2. lvs

lvs 系統程式將於 pulse 呼叫後在現行的 LVS 路由器上執行,它將讀取 /etc/sysconfig/ha/lvs.cf 設定檔案,並呼叫 ipvsadm 服務來建立並維護 IPVS 路由表,然後為每一個設定好的 LVS 服務指定一個 nanny 程序。 假如 nanny 回報一部實時伺服器已經中斷,lvs 將指示 ipvsadm 服務從 IPVS 路由表中移除該部實時伺服器。

9.6.1.3. ipvsadm

這個服務將會更新核心中的 IPVS 路由表,lvs 系統程式可以 藉由呼叫 ipvsadm 以新增更改或刪除 IPVS 路由表中的紀錄來 設定並管理一部 LVS 叢集。

9.6.1.4. nanny

nanny 監控系統程式將會在現行的 LVS 路由器上執行,透過這個 系統程式,現行的路由器可決定每一部實時伺服器的系統狀況,而且可以監視它的負載量。 一個分開的程序將會由每一部實時伺服器所定義的每一服務來執行。

9.6.1.5. /etc/sysconfig/ha/lvs.cf

這是 LVS 叢集的設定檔案,所有的系統程式直接或間接的從這個檔案獲取它們的設定資訊。

9.6.1.6. Piranha 組態設定工具

用來監視、設定與管理一個 LVS 叢集的網路介面工具,這是用來維護 /etc/sysconfig/ha/lvs.cf LVS 叢集設定檔案的預設工具。

9.6.1.7. send_arp

在容錯移轉階段,當浮動的 IP 位址從一個節點更改為另一個時,這個程式將會送出 ARP 廣播。

第10章 列出在設定 Red Hat Enterprise Linux 當作一部 LVS 路由器之前 您必須採取重要的安裝後設定步驟。