LVS負載均衡概念+三種模式
阿新 • • 發佈:2020-10-16
1、LVS負載均衡概念剖解:
1)LVS技術全稱:Linux virtual Server ,Linux虛擬機器伺服器叢集,1998由章文嵩博士設計、並且開源的,是中國最早的開源軟體專案之一。
2)LVS被稱為負載均衡軟體(軟體級別),使用者通過網際網路訪問LVS VIP地址,LVS根據轉發方式和演算法將使用者,對於使用者來講,是無法看到或者感知後端叢集的狀態的。
- 轉發方式:
- 演算法:
- NAT:
- DR:
- TUN:
- LVS伺服器至少2塊物理網絡卡,一塊連線公網(VIP),一塊連線內網;
- 後端Realserver機器的預設閘道器設定為LVS的內網IP地址;
- 保證LVS內網網絡卡通常跟Realserver在同一網段;
- LVS NAT模式後端Realserver機器數量不超過30臺;
- 使用者的請求進入和返回均會經過LVS,LVS會成為瓶頸。
wget -c http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz ln -s /usr/src/kernels/2.6.* /usr/src/linux tar xzvf ipvsadmyum方式安裝:(安裝完即可,無需啟服務)-1.24.tar.gz cd ipvsadm-1.24 make make install
yum install ipvsadm* -y1)LVS NAT模式,要求至少兩臺伺服器,一臺作為LVS,另一臺為Real server後端伺服器,而且LVS至少2塊網絡卡(一塊為模擬公網,一塊為內網網絡卡。)
2)192.168.1.21Real server後端伺服器的閘道器設定為LVS伺服器的內網網絡卡IP地址:192.168.1.20,如下圖所示:
3) LVS外網網絡卡的IP地址為10.10.10.188,可以作為對外接收使用者的訪問請求,也可以自行新增其他的外網IP繫結在外網網絡卡上。
nodprode ip_vs
lsmod |grep -i ip_vs
#新增VIP 10.10.10.188虛擬叢集:
ipvsadm -A -t 10.10.10.188:80 -s rr -A 新增虛擬伺服器VIP -t TCP協議 -s 指定演算法為RR輪詢模式
#在虛擬叢集10.10.10.188中,加入後端Real server伺服器:
ipvsadm -a -t 10.10.10.188:80 -r 192.168.1.21:80 -m -w 100 -a 往虛擬伺服器叢集中新增真實後端伺服器 -t TCP協議 -r 指定後端realserver伺服器的IP和埠 -m 指定NAT轉發模式 -w weight權重設定
4)LVS NAT模式能夠實現資料轉發,還要依靠Linux核心開啟轉發功能,所以需要如下設定:
echo 1 > /proc/sys/net/ipv4/ip_forward
5)檢視LVS NAT模式叢集配置資訊。如圖所示:
ipvsadm -L -n
6)檢視LVS 引數使用幫助:
ipvsadm --help|more7)訪問效果:(需要關閉防火牆) 4、LVS負載均衡DR方式實戰: 1)LVS DR原理:使用者請求LVS VIP到達director(LB均衡器),director將請求的報文的目標MAC地址改成後端的realserverMAC地址,目標IP為VIP(不變),源IP為使用者IP地址(保持不變),如果Director將報文傳送到realserver,realserver檢測到目標為自己本地VIP,如果在同一個網段,然後將請求直接返給使用者。如果使用者跟realserver不在一個網段,則通過閘道器返回使用者,如下圖所示: 2)LVS DR模式注意事項:
- LVS伺服器和後端伺服器realserver必須在同網段(內網、公網);
- LVS修改請親報文的目標MAC,目標(VIP)不修改的;
- 目標IP(VIP)保持不變。在RS後端配置VIP,lo網絡卡上面配置(不衝突);
- RS後端伺服器的閘道器指向路由器的下一跳,保證資料能夠出去(訪問外網);
- 在所有RS後端伺服器,抑制ARP廣播,禁止VIP響應解析,而且要保證真實網絡卡不能抑制ARP廣播。
#拷貝網絡卡: cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-srcipts/ifcfg-lo:1 #編輯 新增如下內容 vim /etc/sysconfig/network-srcipts/ifcfg-lo:1 DEVICE=lo IPADDR=192.168.1.188 NETMASK=255.255.255.255 ONBOOT=yes NAME=loopback #需要重啟網絡卡: ifup lo:1 systemctl restart network2)在客戶端驗證pingVIP地址能夠通訊,發現其MAC地址就是Real server後端伺服器的MAC: 3) LVS伺服器配置負載均衡,配置網絡卡IP 可以配置真實網絡卡的子介面上:(VIP地址需要同網段)新增realserver後端伺服器的IP:
#新增VIP 192.168.1.188虛擬叢集,加人後端伺服器IP:
ipvsadm -A -t 192.168.1.188:80 -s rr ipvsadm -a -t 192.168.1.188:80 -r 192.168.1.20 -g -w 100 ipvsadm -a -t 192.168.1.188:80 -r 192.168.1.21 -g -w 100 #引數解釋: -A 大A 新增虛擬叢集 -t tcp協議 -s 指定演算法rr模式 -a 在虛擬叢集中新增後端真實IP -g 指定DR模式 -w 權重 #檢視虛擬叢集狀態: ipvsadm -L -n #刪除叢集IP: ipvsadm -d -t 192.168.1.188:80 -r 192.168.1.20 ipvsadm -D -t 192.168.1.188:80
4)為了實現均衡,需要在後端伺服器上配置抑制arp廣播,禁止arp響應解析,而且要保證真實網絡卡能接受arp廣播:
cat /proc/sys/net/ipv4/conf/lo/arp_ignore 預設是0需要執行如下命令: 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 #解釋: arp ignore引數(1)含義:只響應目標IP配置在真實網絡卡; arp announce引數(2)含義:忽略報文得源IP地址,使用主機上能夠跟使用者通訊的真實網絡卡傳送資料。6、LVS負載均衡TUN方式實戰(基於DR,是DR的升級版): LVS TUN原理:使用者請求LVS到達director,director通過IP-TUN加密技術請求的報文的目標MAC地址改成後端的Real serverMAC地址,目標IP為VIP(不變),源IP為使用者IP地址(保持不變),然後director將報文傳送到realserver,realserver基於IP-TUN解密,然後檢測到目標為自己本地VIP,如果在同一個網段,然後將請求直接返回給使用者。如果使用者跟realserver不在一個網段,則通過閘道器返回使用者。如下圖所示:
realserver配置DR指令碼:
#!/bin/sh #LVS Client Server VIP=192.168.1.188 case $1 in start) ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP /sbin/route add -host $VIP dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce sysctl -p >/dev/null 2>&1 echo "RealServer Start OK" exit 0 ;; stop) ifconfig lo:0 down route del $VIP >/dev/null 2>&1 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce echo "RealServer Stoped OK" exit 1 ;; *) echo "Usage: $0 {start|stop}" ;; esac