Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

1.3. Load Balancer 外掛程式的排程概覽

使用 Load Balancer 外掛程式的好處之一,就是它能在真實伺服器集區上進行靈活、IP 等級的負載平衡。基於管理員能夠在配置 Load Balancer 外掛程式時選擇各種不同的排程機制,因此它才能擁有此高度的靈活性。Load Balancer 外掛程式的負載平衡優於其它靈活性較低的方式(例如「循環 DNS」— Round-Robin DNS),其 DNS 的階級特性與客戶端機器的快取可能會造成負載不平衡。此外,LVS 路由器所使用的低階請求轉送,優於應用程式階級的請求轉送,因為在網路封包階級上進行負載平衡,可大幅減少運算上的額外負載,並且能提供較佳的延展性。
使用排程程式,active 路由器可以負責真實伺服器的活動,並在路由服務需求時,負責管理者所指定的「權重」(weight)因子(選用功能)。使用所指定的權重能給予每台機器不同的優先順序。使用此種排程方式,就可以使用多種硬體與軟體的組合來建立真實伺服器群組,且 active 路由器能平均地將工作分配給每台真實伺服器。
Load Balancer 外掛程式是由多個 kernel 修補程式 - 稱為「IP 虛擬伺服器」(IPVS,IP Virtual Server)模組 - 所提供。這些模組啟用了「第四層」(L4,layer 4)的傳輸層切換功能,能與單一 IP 位址上的多台伺服器運作。
要有效追蹤、路由封包到真實伺服器,IPVS 會在 kernel 中建立「IPVS 表」(IPVS table)。active LVS 路由器會使用這表格將需求從虛擬伺服器位址重新導向到集區中的真實伺服器,並將結果回傳。IPVS 表會由名為 ipvsadm 的工具程式更新 — 根據叢集成員的可用性,加以新增、移除。

1.3.1. 排程演算法

IPVS 表的結構會依據管理者為任何選定的虛擬伺服器所選定的排程演算法則而定。為了讓您有最大的彈性可以使用叢集的服務類型、以及如何排程這些服務,Red Hat Enterprise Linux 提供了以下排程演算法則。欲知如何指定排程演算法則,請參閱〈節 4.6.1, “「虛擬伺服器」子區段”〉。
循環排程法
將需求依序發給集區中的伺服器。使用這演算法則時,所有真實伺服器不管能力為何,都會被視為平等。這排程模式類似循環 DNS(round-robin DNS)法,但更細緻,因為這模式是以網路連線為基礎,而非以主機為基礎。 Load Balancer 外掛程式的循環配置資源排程也不會因為快取了 DNS 的查詢項目而導致不平衡。
加權循環排程法
將需求依序發給集區中的真實伺服器,但把更多工作交給能力較強的電腦。能力的強弱會根據使用者所指定的權重而定,再根據動態負載的資訊來上下調整。欲知調整真實伺服器的權重之資訊,請參閱〈節 1.3.2, “伺服器權重與排程”〉。
如果集區中的真實伺服器之能力相差懸殊,那麼加權循環排程會是較好的選擇。然而,如果需求所需的負載也相差懸殊,那麼權重更大的伺服器就可能會回覆過多的需求。
最少連線排程法
會把需求分散到連線數較少的電腦。因為最少連線法會透過 IPVS 表持續追蹤連至真實伺服器的現有連線,因此這是一種動態排程法則,使其成為需求負載變動高的更佳選擇。如果真實伺服器集區中的成員,都有著差不多的處理能力,那麼這方法就很適用。如果實體伺服器的能力不同,加權的最少連線排程法是更好的選擇。
加權最少連線排程法(預設)
把更多需求送到連線數少的伺服器上,對於連線數多寡的判斷,又與伺服器的能力有關。伺服器能力是以使用者指定的權重為準,權重可以由動態負載資訊來調整。當使用的伺服器配備不一時,增加權重功能可以讓最少連線法則成為理想的方案。欲知更多加權真實伺服器的詳情,請參閱〈節 1.3.2, “伺服器權重與排程”〉。
地區為主的最少連線排程法
有更少現有連線數(相對於目的地 IP 位址)的伺服器,將收到更多需求。這個演算法則是設計用在代理 / 快取伺服器叢集上。它會把送往一個 IP 位址的封包導向到擁有該位址的伺服器上;除非該伺服器已經超載,同時另一台伺服器的負載只有一半,這樣它就會把封包送往負載較輕的實體伺服上去。
本地為主的最少連線排程法加上複製排程法
把更多需求送往與目的 IP 相比,較少連線數的伺服器上。這個演算法則是設計給代理 / 快取伺服器叢集使用。與前述不同的是,它會將目的地 IP 位址對應到實體伺服器節點的子集合裡。需求會被導向到這個集合裡,連線數目最少的伺服器上。如果用有這 IP 位址的所有節點都超載,那麼這演算法會複製新的伺服器到這個目標 IP 位址,方法是從整體伺服器群中,將實體伺服器加入該目標 IP 的伺服器子集合裡。最高負載的節點會從實體伺服器的子集合裡移除,避免過度複製。
目的地雜湊排程法
在靜態雜湊表中查詢目的地 IP 位址,將需求分散到真實伺服器集區中。這演算法則適用於代理快取(proxy-cache)伺服器叢集。
來源雜湊排程法
在靜態雜湊表中查詢來源 IP,把需求分散到真實伺服器集區中。這個演算法則是給多防火牆的 LVS 路由器使用的。