LVS_NAT實現過程...

LVS-NAThtml

是經過改變數據包中的目的IP地址,來實現調度的.算法


拓撲圖:apache

wKioL1NkXtyRXCgJAAIOjbp8AVw534.jpg

說明:vim

Director是調度服務器、Real N爲真實服務器(這裏用四臺).實驗用vmware虛擬機和小凡模擬器來完成,爲了保證物理上確實是隔離開的,須要不一樣的vmnet網卡相連.瀏覽器

lClient與路由器之間用vmnet1鏈接;服務器

l路由器與Director之間用vmnet2鏈接;負載均衡

lDirectoreth1Real Nvmnet5tcp

全部服務器均爲:Centos6.5_X86_64 內核版本爲2.6.32-431.el6.x86_64ide


步驟:工具

1、Install software:

1.安裝ipvsadm(用戶空間工具)

配置好本地yum,使用本地yum源來安裝此工具

[root@Director ~]# yum install -yipvsadm


2、配置各主機的IP

主機

IP

網關

Client

172.16.41.2

F0/0

Route

F0/0:172.16.41.1---vm1

F0/1:192.168.2.1---vm2


Director

eth0:192.168.2.2(VIP)---vm2

eth1:192.168.3.1(DIP)---vm5

F0/1

Real server 1

eth0:192.168.3.10

192.168.3.1(DIP)

Real server 2

eth0:192.168.3.20

192.168.3.1(DIP)

Real server 3

eth0:192.168.3.30

192.168.3.1(DIP)

Real server 4

eth0:192.168.3.40

192.168.3.1(DIP)

Real server N

eth0:192.168.3.N

192.168.3.1(DIP)

因爲是用NAT方式作負載均衡,因此Realserver N 都要指向Director做爲網關.


3、配置Realserver N的主頁服務

給每臺Real server 服務器安裝好Web服務,並在每臺服務器的/var/www/html/下創建index.html文件,爲了看出效果,最好每臺服務器上的index.html文件不同,例如在Real server 1 上的index.html內容以下:

wKiom1NkWiHxl_JpAAA2d69dhMA258.jpg

其餘幾臺Real server 服務器的index.html內容,只須要把上面的紅色框的部分對應更改一下便可,而後開啓httpd服務.


4、配置Director

Director上面也創建個apache服務,寫個與真實服務器不同的index.html,例如:

wKioL1NkWhSinQu-AAAjjuwexos234.jpg

創建這個index.html的目的是爲驗證集羣效果.當沒有配置集羣時,看到的是Director上的index.html,若是配置了集羣,再訪問VIP,就能看到其餘Real server服務器上的index.html.


1.開啓路由轉發:

[root@Director ~]# vim/etc/sysctl.conf

wKiom1NkWj7yjAzxAAAaWFPk5RI929.jpg

[root@Director ~]# sysctl -p

此步很是重要!!!


2.增長虛擬服務

[root@Director ~]# ipvsadm -A -t 192.168.2.2:80 -s rr

增長一個指向192.168.2.2:80 tcp虛擬服務,用輪叫(rr)算法


3.增長真實服務器

ipvsadm -a -t192.168.2.2:80 -r 192.168.3.10 -m

ipvsadm -a -t192.168.2.2:80 -r 192.168.3.20 -m

ipvsadm -a -t 192.168.2.2:80-r 192.168.3.30 -m

ipvsadm -a -t192.168.2.2:80 -r 192.168.3.40 -m

NAT的方式,增長指向各真實服務器條目.


5、測試

Client上用瀏覽器打開http://192.168.2.2地址,這時能看到真實服務的主頁內容.反覆按F5刷新,能看到不一樣的真實服務器的內容.說明集羣已經創建成功.


咱們也能夠到Director服務器上,經過執行ipvsadm -L-n 來查看調度的狀態,以下:

wKioL1NkWivzpDB-AADaJqrpPrM596.jpg


能夠看出,4Realserver,被調用的頻率是均等的,由於用了rr算法.

而且用的是NAT方式實現調度.(Masq表明NAT方式)


6、wrr算法的應用

上面用的是輪叫(rr)算法,每一個Realserver被調用的機會是均等的,假設Real server1Realserver2的處理性能遠比Real server3Real server4都強,rr算法就不是很合理了.由於rr算法不會考慮權重(Weight),也就是優先級,因此須要換成wrr(加權輪叫)算法,此算法會考慮管理員設置的權重,權重高的Realserver,會被優先選中,而被選中的頻率也會多一些.

因爲是接着上面的實驗繼續研究,因此能夠有2種方法:①刪除之前的內容從新開始②替換之前的內容.若是要刪除,能夠用ipvsadm -C來清除全部配置,再按上面的步驟23作就能夠了.下面採用替換的方法:

1.改變算法:

wKiom1NkWlbCQmLDAAA3bfps3zg495.jpg

2.改變Real server1Realserver2的權重高一些

wKiom1NkWlaCxzGIAABhH9yehec458.jpg

權重值範圍從0-65535之間,默認值爲1,值越高,優先級就越高.若是值是0表示永遠不被選中(在處理真是服務器故障和維護時頗有用),若是隻是65535表示永遠只選中.


改完後在Client 的瀏覽器裏按F5刷新,director上能夠看到Realserver1Real server2被選中的頻率是其餘Real server5.倍值能夠根據你工做的環境來合理設置.

wKioL1NkWlWgSRaSAADzInRelJQ830.jpg


注意:

當用rr算法時,即便設置了權重值,也不會起做用.只有用到wrr算法時,權重值纔會發揮做用.

可見ipvsadm -a 命令加入真實條目的前後順序,並不能決定Real server 的優先級,而是靠權重來決定的.


7、lcwlc算法的應用

Lc是最少連接算法,此算法會檢查哪臺Realserver 的連接請求最少,就優先選擇它.因此當你的服務器硬件配置相同時,lc是個不錯的選擇,(我的感受若是連接的起始數量同樣的時候,rr算法沒有區別)wlc是加權最少連接算法,此算法跟lc相似,只是增長了權重的考慮條件.能讓管理員在指定的Realserver,優先應用最少連接算法.rrwrr之間的關係是一種感受.咱們來實驗一下:

1.改變算法:

wKiom1NkWoDwGgeuAAA7R4a4fus809.jpg

2.改變Realserver1Real server 2的權重高一些

wKioL1NkWlby8T39AADQXVaBlnU471.jpg

改完後在Client 的瀏覽器裏按F5刷新,director上能夠看到Realserver1Real server2被選中的頻率是其餘Real server5.倍值能夠根據你工做的環境來合理設置.(好像跟wrr的效果差很少-_-!)

wKiom1NkWoDxNKctAADUqnaOqFw214.jpg


注意:

Lvs默認的算法是wlc

當用lc算法時,即使設置了權重值,也不會起做用.只用用到wlc算法時,權重纔會發揮做用.


NAT方式小結:

原理比較好理解,配置相對簡單些

若是Real server 5-10臺以上時,Director將會是瓶頸....

相關文章
相關標籤/搜索