本文鏈接:https://blog.csdn.net/cheng1804/article/details/81951254
一、 四種模式
1、nat模式,也可以說三層負載均衡
2、dr模式,二層負載均衡,用的最多
3、隧道模式(tunnel)
4、full_nat模式
二、nat模式和dr模式的區(qū)別
主要區(qū)別在與數(shù)據(jù)的流向
nat模式數(shù)據(jù)流入:客戶--分發(fā)器--真實服務器;流出:真實服務器--分發(fā)器--客戶
dr模式數(shù)據(jù)流入:客戶--分發(fā)器--真實服務器;流出:真實服務器--客戶
dr模式客戶訪問分發(fā)器的vip,再由分發(fā)器的dip經由lvs算法發(fā)給真實服務器,真實服務器直接回復客戶。
要求:分發(fā)器有兩塊網(wǎng)卡,兩個ip,一個做vip,一個做dip,再在真實服務器的lo回環(huán)網(wǎng)卡上添加臨時的vip,以便真實服務器使用vip回復客戶。
問題:1、vip的選擇
2、多個相同的vip在相同的網(wǎng)段怎么避免ip沖突
3、怎么確定真實服務器使用vip回復客戶
解決:1、route -n查看路由條目,哪個規(guī)則在上哪一個做dip,另一個做vip
2、使真實服務器的vip忽略arp協(xié)議的響應來避免ip沖突
3、給真實服務器添加的vip用最精確的ip,子網(wǎng)掩碼越長ip被認為越好,規(guī)則設定用本地最好的ip發(fā)送數(shù)據(jù)包
各ip的作用:
1、vip,作為訪問的入口
2、dip 作為給真實服務器分發(fā)數(shù)據(jù)的出口
3、rip,分發(fā)器用來獲取真實服務器的mac地址,來修改數(shù)據(jù)包的mac地址
實現(xiàn)過程:
1、真實服務器上部署web服務
2、route -n 查看路由條目,哪個規(guī)則在下哪個作為vip
3、給真服務器的lo網(wǎng)卡設置子網(wǎng)掩碼為32位vip
ifconfig lo:0 vip/32
4、給真實服務器設置內核參數(shù)
保證優(yōu)先使用vip發(fā)送數(shù)據(jù) ,echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
讓vip忽略arp響應,echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
5、在分發(fā)器上設置lvs路由條目
yum install ipvsadm -y
ipvsadm -A -t 10.0.0.30:80 -s rr
ipvsadm -a -t 10.0.0.30:80 -r 10.0.0.21:80 -g
ipvsadm -a -t 10.0.0.30:80 -r 10.0.0.22:80 -g
**-A 添加virtual server
-t 指定使用tcp協(xié)議
-s 指定調度策略為rr
-a 添加realserver
-r 指定realserver是誰**
三、lvs調度算法
1、輪詢調度(Round Robin)(簡稱rr),按順序輪流分配真實服務器,均等地對待每一臺服務器,而不管服務器上實際的連接數(shù)和系統(tǒng)負載
2、加權輪詢(Weighted Round Robin)(簡稱wrr),根據(jù)真實服務器的不同處理能力來調度訪問請求。調度器可以自動問詢真實服務器的負載情況,并動態(tài)地調整其權值。
3、最少鏈接(Least Connections)(LC),調度到已建立的鏈接數(shù)最少的服務器上
4、加權最少鏈接(Weighted Least Connections)(WLC),較高權值的服務器將承受較大比例的活動連接負載。調度器可以自動問詢真實服務器的負載情況,并動態(tài)地調整其權值。
5、基于局部性的最少鏈接(Locality-Based Least Connections)(LBLC),根據(jù)請求的目標IP地址找出該目標IP地址最近使用的服務器,若該服務器是可用的且沒有超載,將請求發(fā)送到該服務器;若服務器不存在,或者該服務器超載且有服務器處于一半的工作負載,則用“最少鏈接”。
6、帶復制的基于局部性最少鏈接(Locality-Based Least Connections with Replication)(LBLCR)
7、最短的期望的延遲(Shortest Expected Delay Scheduling SED)(SED)
8、最少隊列調度(Never Queue Scheduling NQ)(NQ),無需隊列。如果有臺 realserver的連接數(shù)=0就直接分配過去
9、目標地址散列(Destination Hashing)(DH),緩存目標地址
10、源地址散列(Source Hashing)(SH),緩存源地址