標籤:des http io os 使用 ar for 檔案 資料
一、LVS的三種包轉寄方式
LVS提供了三種包轉寄方式:NAT(網路地址映射)、IP Tunneling(IP隧道)、Direct Routing(直接路由)
不同的轉寄模式決定了不同的cluster的網路結構,下面對三種轉寄方式分別介始:
1、NAT(網路地址映射):
NAT方式可支援任何的作業系統,以及私人網路,並且只需一個Internet IP地址,但是整個系統的效能受到限制。因為執行NAT每次需要重寫包
有一定的延遲;另外,大部分應用有80%的資料是從伺服器流向客戶機,也就是使用者的請求非常短,而伺服器的回應非常大,對負載平衡器形成很大壓力,成為了新的瓶頸。
2、IP Tunneling(IP隧道):
director分配請求到不同的real server。real server處理請求後直接回應給使用者,這樣director負載平衡器僅處理客戶機與伺服器的一半串連
IP Tunneling技術極大地提高了director的調度處理能力,同時也極大地提高了系統能容納的最大節點數,可以超過100個節點
real server可以在任何LAN或WAN上運行,這意味著允許地理上的分布,這在災難恢複中有重要意義。伺服器必須擁有正式的IP地址用於與客戶機直接通訊
並且所有伺服器必須支援IP隧道協議。
3、Direct Routing(直接路由):
與IP Tunneling類似,負載平衡器僅處理一半的串連,避免了新的效能瓶頸,同樣增加了系統的延展性。Direct Routing與IP Tunneling相比
沒有IP封裝的開銷,但由於採用物理層(修改MAC地址)技術,所有伺服器都必須在一個物理網段。
二、LVS的八種調度演算法:
* rr 輪叫(Round Robin)
調度器通過"輪叫"調度演算法將外部請求按順序輪流分配到叢集中的真實伺服器上,它均等地對待每一台伺服器,而不管伺服器上實際的串連數和系統負載。
* wrr 加權輪叫(Weighted Round Robin)
調度器通過"加權輪叫"調度演算法根據真實伺服器的不同處理能力來調度訪問請求。這樣可以保證處理能力強的伺服器處理更多的訪問流量。調度器可以自動問詢真實伺服器的負載情況,並動態地調整其權值。
* lc 最少連結(Least Connections)
調度器通過"最少串連"調度演算法動態地將網路請求調度到已建立的連結數最少的伺服器上。如果叢集系統的真實伺服器具有相近的系統效能,採用"最小串連"調度演算法可以較好地均衡負載。
* wlc 加權最少連結(Weighted Least Connections)
在叢集系統中的伺服器效能差異較大的情況下,調度器採用"加權最少連結"調度演算法最佳化負載平衡效能,具有較高權值的伺服器將承受較大比例的活動串連負載。調度器可以自動問詢真實伺服器的負載情況,並動態地調整其權值。
* lblc 基於局部性的最少連結(Locality-Based Least Connections)
"基於局部性的最少連結" 調度演算法是針對目標IP地址的負載平衡,目前主要用於Cache叢集系統。該演算法根據請求的目標IP地址找出該目標IP地址最近使用的伺服器,若該伺服器是可用的且沒有超載,將請求發送到該伺服器;若伺服器不存在,或者該伺服器超載且有伺服器處於一半的工作負載,則用"最少連結"的原則選出一個可用的伺服器,將請求發送到該伺服器。
* lblcr 帶複製的基於局部性最少連結(Locality-Based Least Connections with Replication)
" 帶複製的基於局部性最少連結"調度演算法也是針對目標IP地址的負載平衡,目前主要用於Cache叢集系統。它與LBLC演算法的不同之處是它要維護從一個目標IP地址到一組伺服器的映射,而LBLC演算法維護從一個目標IP地址到一台伺服器的映射。該演算法根據請求的目標IP地址找出該目標IP地址對應的伺服器組,按"最小串連"原則從伺服器組中選出一台伺服器,若伺服器沒有超載,將請求發送到該伺服器,若伺服器超載;則按"最小串連"原則從這個叢集中選出一台伺服器,將該伺服器加入到伺服器組中,將請求發送到該伺服器。同時,當該伺服器組有一段時間沒有被修改,將最忙的伺服器從伺服器組中刪除,以降低複製的程度。
* dh 目標地址散列(Destination Hashing)
"目標地址散列"調度演算法根據請求的目標IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的伺服器,若該伺服器是可用的且未超載,將請求發送到該伺服器,否則返回空。
* sh 源地址散列(Source Hashing)
"源地址散列"調度演算法根據請求的源IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的伺服器,若該伺服器是可用的且未超載,將請求發送到該伺服器,否則返回空。
註:如果想瞭解關於以上幾點的技術細節,LVS的首頁查詢。LVS的首頁是:
http://www.LinuxVirtualServer.org/
http://www.linux-vs.org/
三、安裝ipvsadm服務
1、 官網去下載安裝包:http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
ipvsadm 安裝:
# tar zxvf ipvsadm-1.24.tar.gz -C /usr/src/
# cd /usr/src/ipvsadm-1.24
# make all
# make install
# ipvsadm --version
2、yum安裝(簡單且方便)
#yum -y install ipvsadm
四、配置ipvsadm服務
備忘:以下步驟分別按照LVS的三種包轉寄方式進行配置
實驗環境如下:
lvsserver 192.168.1.49(eht0) vip: 192.168.1.40 8.8.8.8(nat模式下)
serverA 192.168.1.46(eth0)
serverB 192.168.1.47(eth0)
1、vs/nat模式下各伺服器的配置
lvsserver配置如下:
ifconfig eht0 192.168.1.49 netmsk 255.255.255.0
ifconfig eht1 8.8.8.8 netmask 255.255.255.0
(註:由於nat模式需要兩塊真實網卡,所以又額外加了一塊網卡 ,此網卡的IP地址同時也是VIP的地址)
vi ipvsadm.sh (建立指令碼檔案)
-------------------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
echo 1 > /porc/sys/net/ipv4/ip_forward (開啟路由功能)
ipvsadm -C (清除之前的轉換表)
ipvsadm -At 8.8.8.8:80 -s rr (指定帶有調度演算法轉換的伺服器)
ipvsadm -at 8.8.8.8:80 -r 192.168.1.46:80 -m (增加一台真實伺服器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)
ipvaadm -at 8.8.8.8:80 -r 192.168.1.47:80 -m
#chmod u+x ipvsadm.sh (增加可執行許可權)
------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverA配置如下:
ifconfig eth0 192.168.1.46 netmask 255.255.255.0
route add default gw 192.168.1.49
(註:此網關是lvsserver的eth0的IP地址)
service httpd start (開啟測試用的web服務)
echo ‘192.168.1.46‘ > /var/www/html/index.html (製作測試用的html網頁)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverB配置如下:
ifconfig eth0 192.168.1.47 netmask 255.255.255.0
route add default gw 192.168.1.49
(註:此網關是lvsserver的eth0的IP地址)
service httpd start (開啟測試用的web伺服器
echo ‘192.168.1.47‘ > /var/www/html/index.html (製作測試用的html網頁)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
2、vs/tun模式下各伺服器的配置
lvsserver配置如下:
ifconfig eht0 192.168.1.49 netmsk 255.255.255.0
(註:tun 模式下只需要一塊物理網卡,可將eth1網卡禁用)
ifconfig tunl0 192.168.1.40 netmask 255.255.255.255 up
(註:tunlo介面配置的地址為vip地址)
route add -host 192.168.1.40 dev tunlo
vi ipvsadm.sh (建立指令碼檔案)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
ipvsadm -C (清除之前的轉換表)
ipvsadm -At 192.168.1.40:80 -s rr (指定帶有調度演算法轉換的伺服器)
ipvsadm -at 192.168.1.40:80 -r 192.168.1.46:80 -i (增加一台真實伺服器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)
ipvaadm -at 192.168.1.40:80 -r 192.168.1.47:80 -i
#chmod u+x ipvsadm.sh (增加可執行許可權)
#./ipvsadm.sh
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverA配置如下:
ifconfig eth0 192.168.1.46 netmask 255.255.255.0
ifconfig tunl0 192.168.1.40 netmask 255.255.255.255 up
route add -host 192.168.1.40 dev tunlo
vi arp.sh (建立指令碼檔案)
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverB配置同severA一樣
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
3、vs/dr模式下各伺服器的配置
lvsserver配置如下:
ifconfig eht0 192.168.1.49 netmsk 255.255.255.0
(註:dr 模式下只需要一塊物理網卡,可將eth1網卡禁用)
ifconfig eth0:0 192.168.1.40 netmask 255.255.255.255 up
(註:eth0:0介面配置的地址為vip地址)
route add -host 192.168.1.40 dev eth0:0
vi ipvsadm.sh (建立指令碼檔案)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
echo 1 > /porc/sys/net/ipv4/ip_forward (開啟路由功能)
ipvsadm -C (清除之前的轉換表)
ipvsadm -At 192.168.1.40:80 -s rr (指定帶有調度演算法轉換的伺服器)
ipvsadm -at 192.168.1.40:80 -r 192.168.1.46:80 -g (增加一台真實伺服器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)
ipvaadm -at 192.168.1.40:80 -r 192.168.1.47:80 -g
#chmod u+x ipvsadm.sh (增加可執行許可權)
./ipvsadm.sh
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverA配置如下:
ifconfig eth0 192.168.1.46 netmask 255.255.255.0
ifconfig lo:0 192.168.1.40 netmask 255.255.255.255 up (在lo介面上增加vip地址)
route add -host 192.168.1.40 dev lo:0 (增加到環回介面的路由)
vi arp.sh (建立指令碼檔案)
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
#chmod u+x arp.sh (增加可執行許可權)
#./arp.sh
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverB配置和serverA一樣
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
測試:1、顯示LVS 目前的串連
如:ipvsadm -L -c ipvsadm -L --stats
2、將46和47的WEB服務啟用。直接輸入vip的地址不停的重新整理你將會看到不同頁面的切換
linux下負載平衡(LVS安裝與配置)【轉】