LVS調度原理以及調度算法
在了解LVS調度原理之前,首先的了解一下IPTABLES防火牆工作原理。
一.IPTABLES 工作原理
IPTABLES其實不是真正的防火牆,它實際上由兩個組件netfilter 和 iptables 組成,netfilter 才是真正的防火牆,位於內核空間,而iptables是位於用戶空間的一個命令行工具,我們使用這個工具制定規則,然后netfilter執行iptables工具制定的規則。
1. NF_IP_PRE_ROUTING
2. NF_IP_LOCAL_IN
3. NF_IP_FORWARD
4. NF_IP_POST_ROUTING
5. NF_IP_LOCAL_OUT

1.目標為本機
2.目標不是本機
二 LVS轉發原理
命令:cat /proc/version
命令:uname -a

三 LVS調度算法
1.輪叫調度(Round-Robin Scheduling)
這種算法就是以輪叫的方式依次將請求調度不同的服務器,算法的優點是其簡潔性,它無需記錄當前所有連接的狀態,所以它是一種無狀態調度。輪叫調度算法假設所有服務器處理性能均相同,不管服務器的當前連接數和響應速度。該算法相對簡單,不適用於服務器組中處理性能不一的情況,而且當請求服務時間變化比較大時,輪叫調度算法容易導致服務器間的負載不平衡。
2.加權輪叫調度(Weighted Round-Robin Scheduling)
這種算法可以解決服務器間性能不一的情況,它用相應的權值表示服務器的處理性能,服務器的缺省權值為1。假設服務器A的權值為1,B的 權值為2,則表示服務器B的處理性能是A的兩倍。加權輪叫調度算法是按權值的高低和輪叫方式分配請求到各服務器。權值高的服務器先收到的連接,權值高的服 務器比權值低的服務器處理更多的連接,相同權值的服務器處理相同數目的連接數。
3.最小連接調度(Least-Connection Scheduling)
這種算法是把新的連接請求分配到當前連接數最小的服務器。最小連接調度是一種動態調度算法,它通過服務器當前所活躍的連接數來估計服務 器的負載情況。調度器需要記錄各個服務器已建立連接的數目,當一個請求被調度到某台服務器,其連接數加1;當連接中止或超時,其連接數減一。當各個服務器有相同的處理性能時,最小連接調度算法能把負載變化大的請求分布平滑到各個服務器上,所有處理時間比較長的請求不可能被發送到同一台服 務器上。但是,當各個服務器的處理能力不同時,該算法並不理想,因為TCP連接處理請求后會進入TIME_WAIT狀態,TCP的TIME_WAIT一般 為2分鍾,此時連接還占用服務器的資源,所以會出現這樣情形,性能高的服務器已處理所收到的連接,連接處於TIME_WAIT狀態,而性能低的服務器已經 忙於處理所收到的連接,還不斷地收到新的連接請求。
4.加權最小連接調度(Weighted Least-Connection Scheduling)
這種算法是最小連接調度的超集,各個服務器用相應的權值表示其處理性能。服務器的缺省權值為1,系統管理員可以動態地設置服務器的權 值。加權最小連接調度在調度新連接時盡可能使服務器的已建立連接數和其權值成比例。
5.基於局部性的最少鏈接(Locality-Based Least Connections Scheduling)
這種算法是請求數據包的目標 IP 地址的一種調度算法,該算法先根據請求的目標 IP 地址尋找最近的該目標 IP 地址所有使用的服務器,如果這台服務器依然可用,並且有能力處理該請求,調度器會盡量選擇相同的服務器,否則會繼續選擇其它可行的服務器
6.帶復制的基於局部性最少鏈接(Locality-Based Least Connections with Replication Scheduling)
這種算法先根據請求的目標IP地址找出該目標IP地址對應的服務器組;按“最小連接”原則從該服務器組中選出一台服務器,若服務器沒有超載, 將請求發送到該服務器;若服務器超載;則按“最小連接”原則從整個集群中選出一台服務器,將該服務器加入到服務器組中,將請求發送到該服務器。同時,當該 服務器組有一段時間沒有被修改,將最忙的服務器從服務器組中刪除,以降低復制的程度。
7.目標地址散列調度(Destination Hashing Scheduling)
此算法先根據請求的目標IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。
8.源地址散列調度(Source Hashing Scheduling)
此算法根據請求的源IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。它采用的散列函數與目標地址散列調度算法 的相同。它的算法流程與目標地址散列調度算法的基本相似。