負載均衡集羣(LBC)

1、LVS簡介及工做模式
1. LVS簡介
Linux Virtual Server,該軟件的功能是實現LB(load balance)
2.LVS的三種工做模式
1)NAT模式(NAT)
LVS 服務器同時充當一臺NAT 網關,擁有公有IP ,同時負責將針對此公共IP的請求依據算法將請求轉發給LAN 中的某臺真實服務器(node) ,node 處理完成請求後將結果返回至LVS Server(調度器), 在由LVS Server 將結果返回給用戶。能夠將內部網絡隱藏 (VIP虛擬IP,RIP真實IP),適用於小規模(10~20臺之間)、訪問量較小的網絡集羣。
2)IP隧道模式(TUN)
能夠實現讓集羣中的節點處於不一樣網絡段
3)直連路由模式(DR)
當參與集羣的計算機和做爲控制管理的計算機在同一個網段時可使用此種方法。
控制管理的計算機接收到請求包時直接送到參與集羣的node 上。當node 處理完請求後將直接把結果返還至用戶而不經過LVS Server 返還。
DR的優點在於速度快、開銷少。
2、三種工做模式的使用範圍
NAT 方式適用於在同一個LAN中實現小型LB
TUN 方式適用於node部分在Internet上
DR 方式使用與在同一個LAN中實現較爲大型LB
3、LVS的調度算法
1. 算法
 將客戶端的請求按照不一樣的算法轉發給web服務器
2.算法的種類
1)rr:輪詢 rr 算法就是將外部請求順序輪流分配到集羣中的node 上,但不考慮每臺node 的負載狀況。
2)wrr:加權輪詢 wrr 算法在rr 算法的基礎上會考察每臺node的負載狀況,並嘗試讓負較輕的node 承擔更多請求。
3)lc:最少鏈接 算法可讓LVS 嘗試把新的請求交給當前鏈接數最少的node ,直到此node 鏈接數再也不屬於最少標準
4)wlc:加權最少鏈接 wlc 算法也由權重的干預。LVS 會根據每臺node的權重並綜合鏈接數控制轉發行爲
5)lblc:局部最少鏈接 算法會加上針對源請求IP地址的路由估算,並嘗試把請求發送到與源請求IP路由最近的node 上。此種方法通常用於遠程或者是大規模的集羣組
6)lblcr:帶有複製的局部最少鏈接算法 lblcr 算法是在lblc 算法的基礎上增長了一個node 列表,先依據lblc 算法計算出與源請求IP地址最近的一組node ,而後在決定把請求發送到最近一組中的最近的一臺node 。若此node沒有超載則將請求轉發給這臺node, 若是超載則依據」最少鏈接」原則找到最少鏈接的node 並將此node 加入集羣組中。並將請求轉給此node
7)dh:目標地址散列算法 至關於隨機
8)sh:原地址散列算法 至關於隨機
4、ipvsadm語法規則
注:需安裝lvs軟件:yum install ipvsadm -y
1.ipvsadm -C:清空kernel中的lvs列表(清空虛擬主機及轉發記錄)
ipvsadm -A (增長一條虛擬主機記錄)-t (協議tcp)虛擬主機IP:80  -s 算法 :聲明一個虛擬主機
ipvsadm -a(增長一條轉發記錄) -t(協議tcp) 虛擬主機IP:80  -r 接受鏈接的真實服務器IP:80  lvs的模式 -w 權重值
2.三種模式
-i     TUN模式
-g     DR模式
-m    NAT模式
5、Linux下LBC的實現
1.LVS集羣實現NAT方式
注:通常將lvs-server 稱爲Director Server(前端調度器),通常將node稱爲real-server(真實服務)
在lvs-server上安裝軟件:yum install ipvsadm -y
2)在server1,server2上安裝apache服務器:yum install httpd -y
echo "web1-test" > /var/www/html/index.html
echo "web2-test" > /var/www/html/index.html
chmod 705 /var/www/html/index.html
systemctl restart httpd
3)在lvs-server上編輯lvs的DR的集羣配置
vim lvs-dr.sh
#!/bin/bash
VIP=192.168.0.254
RIP1=192.168.0.3
RIP2=192.168.0.4
ipvsadm -C
ifconfig eno33554960:0 $VIP broadcast $VIP netmask 255.255.255.255 up
route add -host $VIP dev eno33554960:0
ipvsadm -A -t $VIP:80 -s wlc
ipvsadm -a -t $VIP:80 -r $RIP1:80 -g -w 1
ipvsadm -a -t $VIP:80 -r $RIP2:80 -g -w 1
 
 
 
 
 
編輯完腳本後運行:bash lvs-tun.sh
4)在server1和server2上編輯web.sh腳本
#!/bin/bash
VIP=192.168.0.254
/sbin/ifconfig tunl0 down
/sbin/ifconfig tunl0 up
echo 1 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/tunl0/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
/sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev tunl0
 編輯完腳本後運行:bash web.sh
 5)在客戶端測試:elinks http://192.168.0.254
 
 
相關文章
相關標籤/搜索