LVS基本介紹及NAT模型配置示例

spacer.gif012029634.png

LVS是Linux Virtual Server的縮寫,即linux虛擬服務器。是一款強大的基於四層的負載均衡器。它具有良好的可靠性,可拓展性和可操作性。從而以低廉的成本實現最優的性能。


1.工作模式:

1) NAT模型:

012111503.png

特點:

1.director必須與realserver位於同一個網絡。
2.realserver通常使用私有地址,用於各節點間的通信。
3.director位於客戶端與realserver之間,所有的請求和響應都必須經由director轉發。
4.director作爲realserver的網關。
5.支持端口映射。
6.director必須有兩塊網卡
7.不適用於較大規模的應用。


2)DR模型:直接路由

spacer.gif012143204.png
DR模型的特點:
1.director必須與realserver位於同一個網絡。
2.realserver可以使用公網ip地址,便於遠程管理與配置。
3.director只負責處理入站請求。而響應報文則由realserver直接返回給client端。大大節省director的資源
4.不能做端口映射

3)TUN:IP隧道

spacer.gif012200140.png
特點:

1.集羣節點可以跨越Internet。
2.RIP必須是公網地址。
3.Director僅負責處理入站請求,響應報文則由Real Server直接發往客戶端。
4.realserver的OS必須支持隧道功能。
5.不支持端口映射。

2.LVS的IP地址類型:

1)VIP:虛擬IP地址,並不提供服務,而是將用戶的請求轉發到後方。
2)RIP:真正IP地址,客戶端真正提供服務的IP地址。
3)DIP:調試IP地址,通常是和RIP相連的LVS的IP地址。
4)CIP:客戶端IP地址,用戶請求時,用戶的IP。

3.調度算法:

1)rr:輪循。調度器通過“輪循”調度算法將外部請求按順序輪流分配到集羣中的真實服務器上,它均等的對待每一臺服務器,而不管服務器上撲鼻的連接數和系統負載。
2)wrr:加權輪循。根據真實服務器的不同處理能力來調度訪問請求。這樣可以保證處理能力強的服務器能處理更多的動態訪問流量。調度器可以自動問詢真實服務器的負載情況,並動態的調整其權值。
3)DH:目標hash。當某客戶IP第一次訪問到集羣中的A服務器,在一段時間內,該客戶再來訪問集羣的時候,如果A服務器是可用的且未超載,則依然將客戶的請求轉發到A服務器上。可用於解決動態網站的session共享問題。
4)SH:源hash。與目標hash相反,用於雙線或多線接入的網絡。
5)lc:最少鏈接。根據真實服務器已建立的連接數進行分配,將收到的訪問請求優先分配給連接數最少的節點。
6)wlc:加權最少鏈接。在服務器節點性能差異較大的情況下,可以爲真實服務器自動調整其權重,權重較高的節點將承擔更大比例的活動連接。
7)sed:最短的期望的延遲
8)nq:最少隊列調度。無需隊列。如果真實服務器的連接數爲零中,就直接分配一個連接,不需要再進行sed運算。
9)lblc:基於局部性的最少鏈接。針對目標IP地址的負載均衡,目前主要用於cache集羣系統。該算法根據請求的目標IP地址找出該目標IP地址最近使用的服務器,比如說A服務器,若A服務器是可用的且沒有超載,將請求發送到該服務器;若A服務器不存在,或者該服務器超載且有服務器處於一半的工作負載,則用“最少鏈接”的原則選出一個可用的服務器,比如說B服務器,將請求發送到該服務器。
10)lblcr:帶複製的基於局部性的最少鏈接。也是針對目標IP地址的負載均衡,目前主要用於cache集羣系統。與lblc算法的不同之處在於它要維護一個目標IP地址到一組服務器的映射,而lblc維護從一個目標到一臺服務器的映射。該算法根據請求的目標IP地址找出該目標IP地址對應的服務器組,按“最小鏈接”原則從服務器組中選出一臺服務器,若服務器沒有超載,將請求發送到該服務器;若服務器超載,剛按“最小鏈接”原則從這個集羣中選出一臺服務器,將該服務器加入到服務器組中,將請求發送到該服務器。同時,當該服務器組有一段時間被修改,將最忙的服務器從服務組中刪除,以降低複製的程度。

4.LVS管理工具

ipvsadm
rpm -vih ipvsadm-1.25-9.el6.i686.rpm

ipvsadm -v
#查看版本信息

創建虛擬服務器:
-A:添加虛擬服務器
-t:指定VIP地址及tcp端口
-s:指定負載調度算法
示例:
ipvsadm -A -t 172.16.16.172:80 -s rr

添加服務器節點:
-a:添加真實服務器
-t:指定VIP地址及TCP端口
-r:指定RIP地址及TCP端口
-m:使用NAT集羣模式(-g DR模式、-i TUN模式)
-w:用來設置權重(權重爲0時表示暫停節點)
示例:
ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.21:80 -m -w 1
ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.22:80 -m -w 1
ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.23:80 -m -w 1

查看集羣節點狀態
ipvsadm -L -n      #查看節點狀態
ipvsadm -Lnc      #查看負載連接情況

刪除服務器節點
ipvsadm -d -r 192.168.7.23:80 -t 172.16.16.172:80     #刪除某一個節點
ipvsadm -D -t 172.16.16.172:80                   #刪除整虛擬服務器

保存負載分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm      #保存策略
service ipvsadm stop               #清除策略
service ipvsadm start              #重建規則

5.配置示例

地址轉換模式(LVS-NAT)

1)實驗環境:
lvs負載調度器:eth0:172.16.16.172/24(接外網) eth1:192.168.7.254/24(接節點)
web服務器池:節點1-節點2:192.168.7.21-22/24

2)配置負載調度器
a.配置SNAT轉發規則
vim /etc/sysctl.conf
——————————————–
net.ipv4.ip_forward = 1
——————————————–
sysctl -p
iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -o eth0 -j SNAT –to-source 172.16.16.172         #做SNAT

b.配置負載分配策略
service ipvsadm stop
ipvsadm -A -t 172.16.16.172:80 -s rr
ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.21:80 -m -w 1
ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.22:80 -m -w 1
service ipvsadm save
chkconfig ipvsadm on

3)配置節點服務器
安裝httpd,創建測試網頁,進行測試。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章