★負載均衡
負載均衡技術是把衆多的訪問人羣以及流量分擔到不同的網絡設備以及不同的服務器的過程
以輪循的過程進行數據分流
(1)Cisco以太網通道(思科公司)
(2)Windows NLB技術
(3)Linux LVS技術
(4)F5等負載均衡器
★LVS
LVS有三種模式
(1)NAT技術(network address translation)——來回都要經過LVS調度器
LVS將外界來的數據進行地址轉換,轉換到相應的服務器
在NAT模式中,LVS的作用既是調度器又是路由器,因爲其兩端爲不同網段的ip
---------------------------------------------------------------------------------
| Web Server |
| (192.168.10.2) |
| eth1 192.168.10.1 ↗ |
| Internet ——————— LVS —————————— 交換機 |
| eth0 8.8.8.8 ↘ |
| Web Server |
| 公網ip 私網ip (192.168.10.3) |
---------------------------------------------------------------------------------
通過地址轉換,調度器重寫請求報文的目標地址爲8.8.8.8
LVS根據預設的調度算法將請求分派給後端的真是服務器(192.168.10.2),分派過程採用輪循機制
真實服務器返回數據仍然通過調度器,報文的源地址被重寫爲8.8.8.8,然後再將數據返回給客戶
說明:之所以要進行地址的轉換,是因爲公網ip與私網ip是嚴格分隔的,私網ip(192.168.*.*、172.16.*.*、10.*.*.*)永遠不會在公網ip中流通
詳細配置
lvs server
yum install -y ipvsadm*
echo 1 >/proc/sys/net/ipv4/ip_forward(ip轉發表,1表示開啓了路由功能,成爲了一臺路由器)
ipvsadm -C 將調度器中以前的轉換表清除
ipvsadm -At 8.8.8.8:80 -s rr
(-A 增加一個帶有調度算法的轉換表 -s 規定調度算法爲rr模式 -t TCP通信)
ipvsadm -at 8.8.8.8:80 -r 192.168.10.2:80 -m (-r 增加真實服務器 -m 規定模式爲NAT模式)
ipvsadm -at 8.8.8.8:80 -r 192.168.10.3:80 -m
外面的機器可以不配置網關,內部的機器必須配置網關route -n 查看路由表
(2)IP Tun模式
VIP:LVS虛擬服務器具有的ip(200.168.10.10)
RIP:真實服務器具有的ip
VIP(200.168.10.10)在LVS上是配置在eth0上,即一塊網卡設置兩個ip
在真實服務器是配置ip tun網卡上
-----
| LVS | 192.168.10.1
-----
|
|
------------- ------ --------------
|192.168.10.4 | —————|交換機|————————| 192.168.10.2 |
------------- ------ --------------
|
|
------------
|192.168.10.3|
------------
詳細配置
lvs server配置
ifconfig tunl0 192.168.10.10 netmask 255.255.255.255(255.255.255.255說明網段裏只有它一個)
route add -host 192.168.10.10 dev tunl0 防止路由表短缺,人爲添加路由表
ipvsadm -C 將所有IP調度轉換表清除
ipvsadm -A -t 192.168.10.10:80 -s rr
-t TCP通信 -s 規定爲rr模式 倫叫模式
ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.2 -i
ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.3 -i
Ipvsdam 記錄調度的痕跡和次數
真實客戶端配置(可寫成shell腳本)寫成腳本後注意修改權限a+x
ifconfig tunl0 192.168.10.10 netmask 255.255.255.255 up
route add -host 192.168.10.10 dev tunl0
echo "1" > /proc/sys/net/ipv4/comf/tunl0/arp_ignore
echo "2" > /proc/sys/net/ipv4/comf/tunl0/arp_announce
echo "1" > /proc/sys/net/ipv4/comf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/comf/all/arp_announce
如果通過計算機網卡進來的ip有責任迴應其對應的mac地址
如果不是通過網卡進來的以外的ip則不迴應
(3)Dr模式(直接路由模式)
都必須是公用的ip,將VIP配置到迴環接口上
迴環接口除了可以做迴環測試以外還可以做LVS
VS/DR通過改寫請求報文的MAC地址,將請求發送到真實服務器,而真實服務器將響應直接返回給客戶,跟ip tun技術一樣,DR也可以極大地提高集羣系統的伸縮性和吞吐量,這種方法沒有ip隧道的開銷,對集羣中的真實服務器也沒有必須支持ip隧道協議的要求,但是要求調度器與真實服務器都有一塊網卡連在同一物理網段上。
詳細配置
與ip隧道不同的是,VIP不再配置在ip tun網卡上
lvs server
ifconfig eth0:0 192.168.10.10 netmask 255.255.255.255
route add -host 192.168.10.10 dev eth0:0
ipvsadm -C 將所有IP調度轉換表清除
ipvsadm -A -t 192.168.10.10:80 -s rr
-t TCP通信 -s 規定爲rr模式 倫叫模式
ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.2 -g
ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.3 -g
Ipvsdam 記錄調度的痕跡和次數
real server
ifconfig lo:0 192.168.10.10 netmask 255.255.255.255 在迴環接口上配置
route add -host 192.168.10.10 dev lo:0
echo "1" > /proc/sys/net/ipv4/comf/tunl0/arp_ignore
echo "2" > /proc/sys/net/ipv4/comf/tunl0/arp_announce
echo "1" > /proc/sys/net/ipv4/comf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/comf/all/arp_announce
★四種常用的倫叫算法
倫叫(rr)
調度器通過“倫叫”調度算法將外部請求數據按順序輪流分配到集羣中的真實服務器上,它均等地對待每一臺服務器,而不考慮服務器上實際的連接數和系統負載。
加權倫叫(wrr)
調度器通過“加權倫叫”調度算法根據真實服務器的不同處理能力來調度訪問請求。這樣可以保證處理能力強的服務器處理更多的訪問流量。調度器可以自動問詢真實服務器的負載情況,並動態的調整其權值。
最少鏈接(LC)
調度器通過“最少鏈接”調度算法動態地將網絡請求調度到已建立的鏈接數最少的服務器上。如果集羣系統的真實服務器具有相近的系統性能,採用“最小鏈接”調度算法可以較好地均衡負載。
加權最少鏈接(WLC)
在集羣系統中的服務器性能差異較大的情況下,調度器採用“加權最少鏈接”調度算法優化負載均衡性能,具有較高權值的服務器將承受較大比例的活動鏈接負載。調度器可以自動問詢真實服務器的負載情況,並動態地調整其權值。