LVS-NAT

LVS-NAT

是通過改變數據包中的目的IP地址,來實現調度的。

164432688.jpg

說明:

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

l Client與路由器之間用vmnet1連接;

l 路由器與Director之間用vmnet3連接;

l Directoreth1Real Nvmnet5

所有服務器均爲:Centos 5.5 _i386 內核版本爲2.6.18-194.el5



步驟:

一、Install software:

1.安裝內核源代碼(因爲安裝ipvsadm時需要)

mount /dev/cdrom /media

cd /media/Centos

rpm -ivh kernel-devel-2.6.18-194.el5.i686.rpm

需要給源代碼做個軟連接,不然一會編譯ipvsadm時會報錯

ln -s /usr/src/2.6.kernel-devel-2.6.18-194.el5.i686 /usr/src/linux

2.安裝ipvsadm

http://www.linuxvirtualserver.org/software/index.html,下載對應的ipvsadm

我下載的是:ipvsadm-1.24.tar.gz

tar -zxfv ipvsadm-1.24.tar.gz

cd ipvsadm-1.24.tar.gz

make all && make install

安裝完成後運行一下ipvsadm命令,然後執行lsmod | grep ip_vs命令,若能顯示如下,說明內核已經支持:

164549165.png



二、配置各主機的IP

主機

IP

網關

Client

192.168.1.100

f0/0

Route

f0/0:192.168.1.1---vm1

f1/0:192.168.2.1---vm2


Director

eth0:192.168.2.2(VIP)---vm2

eth1:192.168.3.1(DIP)---vm5

f1/0

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方式做負載均衡,所以Real server N 都要指向Director作爲網關。


三、配置Real server N的主頁服務

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

164710160.png

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


四、配置Director

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

164750823.png

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


1.開啓路由轉發:


vi /etc/sysctl

164831632.png

sysctl -p

此步非常重要!!!


2.增加虛擬服務

ipvsadm -A -t 192.168.2.2:80 -s rr

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


3.增加真實服務器

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

ipvsadm -a -t 192.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 -t 192.168.2.2:80 -r 192.168.3.40 -m

NAT的方式,增加指向各真實服務器.


五、測試

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

我們也可以到Director服務器上,通過執行ipvsadm -L -n 來查看調度的狀態,如下:

164925907.png


六、wrr算法的應用

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

由於是接着上面的實驗繼續研究,所以可以有2種方法:①刪除以前的內容重新開始 替換以前的內容。如果要刪除,可以用ipvsadm -C 來清除所有配置,再按上面的步驟23做就可以了。下面採用替換的方法:


1.改變算法:

165004546.png


2.Real server1Real server2的權重高一些

165039888.png


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

改完後在Client 的瀏覽器裏按F5刷新,director上可以看到Real server1Real server2被選中的頻率是其他Real server5.倍值可以根據你工作的環境來合理設置。

165124168.png


注意:

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

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


七、lcwlc算法的應用

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


1.改變算法:

165216626.png


2.改變Real server1Real server 2的權重高一些

165246810.png


改完後在Client 的瀏覽器裏按F5刷新,director上可以看到Real server1Real server2被選中的頻率是其他Real server5.倍值可以根據你工作的環境來合理設置。(好像跟wrr的效果差不多-_-!)

165318520.png

注意:

Lvs默認的算法時wlc

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

NAT方式小結:

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

如果Real server 20臺以上時,Director將會是瓶頸


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