ipvs


                                                                                 ipvs負載均衡(lvs)html

IPVS在內核中的負載均衡調度是以鏈接爲粒度的。在HTTP協議(非持久)中,每一個對象從WEB服務器上獲取都須要創建一個TCP鏈接,同一用戶 的不一樣請求會被調度到不一樣的服務器上,因此這種細粒度的調度在必定程度上能夠避免單個用戶訪問的突發性引發服務器間的負載不平衡。node

在內核中的鏈接調度算法上,IPVS已實現瞭如下十種調度算 (http://zh.linuxvirtualserver.org/node/35)linux

  • 輪叫調度(Round-Robin Schedulingweb

  • 加權輪叫調度(Weighted Round-Robin Scheduling算法

  • 最小鏈接調度(Least-Connection Scheduling後端

  • 加權最小鏈接調度(Weighted Least-Connection Scheduling瀏覽器

  • 基於局部性的最少連接(Locality-Based Least Connections Scheduling服務器

  • 帶複製的基於局部性最少連接(Locality-Based Least Connections with Replication Scheduling負載均衡

  • 目標地址散列調度(Destination Hashing Schedulingtcp

  • 源地址散列調度(Source Hashing Scheduling

  • 最短預期延時調度(Shortest Expected Delay Scheduling

  • 不排隊調度(Never Queue Scheduling

具體的調度算法會在之後的博客中概述!

################################################################################

注意:實驗以前關閉防火牆與selinux

實驗環境:rhel6.5

lvs調度器主機:172.25.28.8 vm8.example.com

後臺web應用服務器:172.25.28.1 vm1.example.com

172.25.28.4  vm4.example.com


兩臺web服務主機安裝httpdyum install httpd -y

兩臺web主機執行如下操做:

[root@vm1 ~]# cd /var/www/html/     分別 在各自默認發佈目錄下創建html文件

[root@vm1 html]# cat index.html

vm1.example.com

[root@vm4 html]# cat index.html

vm4.example.com

[root@vm8 ~]# yum install -y ipvsadm       在調度主機上面安裝軟件

[root@vm8 ~]# ifconfig eth0:0 172.25.28.100 netmask 255.255.255.0 up 設置虛擬ip

[root@vm1 html]# ifconfig eth0:0 172.25.28.100 netmask 255.255.255.255 設置後端應用服務器的虛擬ip

vm1的操做與vm4進行同樣的操做

[root@vm1 html]# yum install -y arptables_jf

[root@vm1 html]# /etc/init.d/arptables_jf start

[root@vm1 html]# arptables -A IN -d 172.25.28.100 -j DROP

[root@vm1 html]# arptables -A OUT -s 172.25.28.100 -j mangle --mangle-ip-s 172.25.28.1

[root@vm1 html]# /etc/init.d/arptables_jf save

Saving current rules to /etc/sysconfig/arptables:          [  OK  ]

[root@vm4 html]# yum install -y arptables_jf

[root@vm4 html]# /etc/init.d/arptables_jf start

[root@vm4 html]# arptables -A IN -d 172.25.28.100 -j DROP

[root@vm4 html]# arptables -A OUT -s 172.25.28.100 -j mangle --mangle-ip-s 172.25.28.4

[root@vm4 html]# /etc/init.d/arptables_jf save

Saving current rules to /etc/sysconfig/arptables:          [  OK  ]


[root@vm8 ~]# ipvsadm -A -t 172.25.28.100:80 -s rr

[root@vm8 ~]# ipvsadm -a -t 172.25.28.100:80 -r 172.25.28.1:80 -g

[root@vm8 ~]# ipvsadm -a -t 172.25.28.100:80 -r 172.25.28.4:80 -g


測試:

在瀏覽器中輸入:http://172.25.28.100  會負載均衡顯示應用服務器的首頁內容

可使用命令在調度主機上查看:

[root@vm8 ~]# ipvsadm -L

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.25.28.100:http rr

-> vm1.example.com:http         Route   1      0          2

-> vm4.example.com:http         Route   1      0          2




ipvsadm命令參數(http://zh.linuxvirtualserver.org/node/5)


-A --add-service 在內核的虛擬服務器表中添加一條新的虛擬服務器記錄。也

就是增長一臺新的虛擬服務器。

-t --tcp-service service-address 說明虛擬服務器提供的是tcp 的服務

[vip:port] or [real-server-ip:port]

-s --scheduler scheduler 使用的調度算法,有這樣幾個選項

rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,  默認的調度算法是: wlc.

-a --add-server 在內核虛擬服務器表的一條記錄裏添加一條新的真實服務器

記錄。也就是在一個虛擬服務器中增長一臺新的真實服務器

-r --real-server server-address 真實的服務器[Real-Server:port]

-g --gatewaying 指定LVS 的工做模式爲直接路由模式(也是LVS 默認的模式)



-L|-l --list 顯示內核虛擬服務器表  

-C --clear 清除內核虛擬服務器表中的全部記錄。

相關文章
相關標籤/搜索