1. 程式人生 > >負載均衡 | VS/NAT模式 | 排程演算法

負載均衡 | VS/NAT模式 | 排程演算法

VS/NAT
在一組伺服器前有一個排程器,它們是通過 Switch/HUB 相連線的。這些伺服器提供相同的網路服
務、相同的內容,即不管請求被髮送到哪一臺伺服器,執 行結果是一樣的。服務的內容可以複製到
每臺伺服器的本地硬碟上,可以通過網路檔案系統(如 NFS)共享,也可以通過一個分散式檔案系統
來提供。
VS/NAT 的優點是伺服器可以執行任何支援 TCP/IP 的作業系統,它只需要一個 IP 地址配置在排程器
上,伺服器組可以用私有的 IP 地址。缺點是它的伸縮能力有限, 當伺服器結點數目升到 20 時,排程
器本身有可能成為系統的新瓶頸,因為在 VS/NAT 中請求和響應報文都需要通過負載排程器。

VS/NAT 的優點是伺服器可以執行任何支援 TCP/IP 的作業系統,它只需要一個 IP 地址配置在排程器上,

伺服器組可以用私有的 IP 地址。缺點是它的伸縮能力有限, 當伺服器結點數目升到 20 時,排程器本身

有可能成為系統的新瓶頸,因為在 VS/NAT 中請求和響應報文都需要通過負載排程器。

Load Balance 雙網絡卡 eth0: 172.25.28.1 (對內) eth1: 192.168.28.128(對外)

1,給vm1新增雙網絡卡

eth0 vip

eth1 rip

eth1的ip是192.168.28.128(和客戶端ip192.168.28.28在同一個網段) 

如果是臨時新增ip addr add 172.25.254.128/24 dev eth1

那麼還需要啟用網絡卡ip link set up eth1

eth0的ip172.25.28.1

eth0和eth1不在同一個網段

2,設定RS伺服器ip

Realserver1:172.25.28.2 

Realserver1: 172.25.28.3

注意開啟httpd

臨時閘道器都設定為 route add default gw 172.25.28.1 

default 用於設定預設路由

RS伺服器的閘道器都修改為vip

3,vm1開啟路由機制

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

臨時新增 sysctl -w net.ipv4.ip_forward=1

sysctl -a | grep ip_forward  #檢視

4,寫入策略

清空之前的

這裡安裝ipvsadm時,注意yum源的配置不一樣

ipvsadm -A -t 192.168.28.128:80 -s rr

ipvsadm -a -t 192.168.28.128:80 -r 172.25.28.2:80 -m  #-m表示nat模型

ipvsadm -a -t 192.168.28.128:80 -r 172.25.28.3:80 -m

儲存策略

/etc/init.d/ipvsadm save

5,客戶端訪問測試

客戶端新增ip和192.168.28.128同一個網段

curl 192.168.28.128 

並且排程器有反應

排程演算法

LVS 的負載排程演算法 在核心中的連線排程演算法上,IPVS 已實現了以下八種排程演算法:

輪叫排程(Round­Robin Scheduling )
輪叫排程(Round Robin Scheduling)演算法就是以輪叫的方式依次將請求排程不同的伺服器,
即每次排程執行 i = (i + 1) mod n,並選出第 i 臺伺服器。演算法的優點是其簡潔性,它無需記錄
當前所有連線的狀態,所以它是一種無狀態排程。

加權輪叫排程(Weighted Round­Robin Scheduling )
加權輪叫排程 (Weighted Round­Robin Scheduling)演算法可以解決伺服器間效能不一的情況,
它用相應的權值表示伺服器的處理效能,伺服器的預設權值為 1。假設伺服器 A 的權值為
1,B 的 權值為 2,則表示伺服器 B 的處理效能是 A 的兩倍。加權輪叫排程演算法是按權值的高
低和輪叫方式分配請求到各伺服器。權值高的伺服器先收到的連線,權值高的服 務器比權值低的伺服器處理更多的連線,相同權值的伺服器處理相同數目的連線數。

最小連線排程(Least­Connection Scheduling )
最小連線排程(Least­ Connection Scheduling)演算法是把新的連線請求分配到當前連線數最小
的伺服器。最小連線排程是一種動態排程演算法,它通過伺服器當前所活躍的連線數來估計服
務 器的負載情況。排程器需要記錄各個伺服器已建立連線的數目,當一個請求被排程到某臺
伺服器,其連線數加 1;當連線中止或超時,其連線數減一。

加權最小連線排程(Weighted Least­Connection Scheduling)
加權最小連線調 度(Weighted Least­Connection Scheduling)演算法是最小連線排程的超集,各
個伺服器用相應的權值表示其處理效能。伺服器的預設權值為 1,系統管理員可以動態地設
置伺服器的權 值。加權最小連線排程在排程新連線時儘可能使伺服器的已建立連線數和其權
值成比例。

基於區域性性的最少連結(Locality­Based Least Connections Scheduling )
基 於區域性性的最少連結排程(Locality­Based Least Connections Scheduling,以下簡稱為
LBLC)演算法是針對請求報文的目標 IP 地址的負載均衡排程,目前主要用於 Cache 集群系統,
因為在 Cache 叢集中 客戶請求報文的目標 IP 地址是變化的。這裡假設任何後端伺服器都可以
處理任一請求,演算法的設計目標是在伺服器的負載基本平衡情況下,將相同目標 IP 地址的 請
求排程到同一臺伺服器,來提高各臺伺服器的訪問區域性性和主存 Cache 命中率,從而整個集
群系統的處理能力。LBLC 排程演算法先根據請求的目標 IP 地址 找出該目標 IP 地址最近使用的
伺服器,若該伺服器是可用的且沒有超載,將請求傳送到該伺服器;若伺服器不存在,或者
該伺服器超載且有伺服器處於其一半的工 作負載,則用 “ 最少連結 ” 的原則選出一個可用的服
務器,將請求傳送到該伺服器。

帶複製的基於區域性性最少連結(Locality­Based Least Connections with Replication
Scheduling)
帶 複製的基於區域性性最少連結排程(Locality­Based Least Connections with Replication
Scheduling,以下簡稱為 LBLCR)演算法也是針對目標 IP 地址的負載均衡,目前主要用於 Cache
集群系統。它與 LBLC 演算法的不同之處是它要 維護從一個目標 IP 地址到一組伺服器的對映,
而 LBLC 演算法維護從一個目標 IP 地址到一臺伺服器的對映。對於一個 “ 熱門 ” 站點的服務請
求,一臺 Cache 伺服器可能會忙不過來處理這些請求。這時,LBLC 排程演算法會從所有的
Cache 伺服器中按 “ 最小連線 ” 原則選出一臺 Cache 伺服器,對映該 “ 熱門 ” 站 點到這臺 Cache 服
務器,很快這臺 Cache 伺服器也會超載,就會重複上述過程選出新的 Cache 伺服器。這樣,可
能會導致該 “ 熱門 ” 站點的映像會出現 在所有的 Cache 伺服器上,降低了 Cache 伺服器的使用
效率。LBLCR 排程演算法將 “ 熱門 ” 站點對映到一組 Cache 伺服器(伺服器集合),當該 “ 熱
門 ” 站點的請求負載增加時,會增加集合裡的 Cache 伺服器,來處理不斷增長的負載;當
該 “ 熱門 ” 站點的請求負載降低時,會減少集合裡的 Cache 伺服器 數目。這樣,該 “ 熱門 ” 站點
的映像不太可能出現在所有的 Cache 伺服器上,從而提供 Cache 集群系統的使用效率。
LBLCR 演算法先根據請求的目標 IP 地址找出該目標 IP 地址對應的伺服器組;按 “ 最小連線 ” 原
則從該伺服器組中選出一臺伺服器,若伺服器沒有超載,將請求傳送到該伺服器;若伺服器
超載;則按 “ 最小連線 ” 原則從整個叢集中選出一臺伺服器,將該伺服器加入到伺服器組中,
將請求傳送到該伺服器。同時,當該伺服器組有一段時間沒有被修改,將最忙的服 務器從服
務器組中刪除,以降低複製的程度。

目標地址雜湊排程(Destination Hashing Scheduling )
目標地址雜湊排程 (Destination Hashing Scheduling)演算法也是針對目標 IP 地址的負載均衡,但它是一種靜態對映演算法,通過一個雜湊(Hash)函式將一個目標 IP 地址對映到一臺服務
器。目標地址雜湊排程演算法先根據請求的目標 IP 地址,作為雜湊鍵(Hash Key)從靜態分配
的散列表找出對應的伺服器,若該伺服器是可用的且未超載,將請求傳送到該伺服器,否則
返回空。

源地址雜湊排程(Source Hashing Scheduling)
源地址雜湊排程(Source Hashing Scheduling)演算法正好與目標地址雜湊排程演算法相反,它根
據請求的源 IP 地址,作為雜湊鍵(Hash Key)從靜態分配的散列表找出對應的伺服器,若該
伺服器是可用的且未超載,將請求傳送到該伺服器,否則返回空。它採用的雜湊函式與目標
地址雜湊排程演算法 的相同。它的演算法流程與目標地址雜湊排程演算法的基本相似,除了將請求
的目標 IP 地址換成請求的源 IP 地址,所以這裡不一一敘述。在實際應用中,源地址雜湊 調
度和目標地址雜湊排程可以結合使用在防火牆叢集中,它們可以保證整個系統的唯一出入
口。