lvs一:lvs概述html LVS是linux內核的一部分,所以性能高前端 linux虛擬服務器(即分發器或調度器director);node 他不是真正提供服務,但他接受客戶的訪問,爲整個集羣提供一個惟一的入口。虛擬服務器再和真實服務器通訊(read server)。linux 它真正提供服務,集羣中每一個real server能夠是一臺物理主機,也能夠是虛擬機。nginx lvs相關術語(必記):算法 DS(或DR):Director server調度服務器。指的是前端負載均衡器節點。vim RS:(real server)後端真實的工做服務器。後端 vip:virtual IP虛擬ip。是指向外部直接面用戶請求,做爲用戶請求的目標的ip地址(外網ip地址)。瀏覽器 dip: Director server ip調度服務器ip,主要用於和內部主機通信的ip地址。(內網ip地址)服務器 Rip:(real server ip)後端服務器的ip地址。 Cip:client ip,客戶端的ip。 注意:LVS調度器須要有2塊網卡,一塊是對外(wan口)的網卡,一塊是對內(lan口)的網卡。 2、LVS三種模式 3、lvs基本工做原理 1.當用戶請求到達Director server,請求的數據報文會先到內核空間的PREROUTING鏈。此時報文的源ip爲cip,目標ip爲vip。 2.PREROUTING檢查發現數據包的目標ip是本機,將數據包送至input鏈 3.ipvs比對數據包請求的服務是否爲集羣服務,修改數據包的目標ip地址爲後端服務器ip,而後將數據吧發送至postrouting鏈。 4.postrouting鏈經過路由選路,將數據包發送給Real Server 5.Real Server對比發現目標爲本身的ip開始構建響應報文回給Director Server。此時報文的源ip爲RIP,目標ip爲cip 6.Director Server在響應客戶端前,此時會將源ip地址修改成本身的ip地址,而後響應給客戶端。此時報文的源ip爲vip,目標ip爲cip。
1.LVS-NAT模型 特性 1).RS應該使用私有ip地址,RS的網關必須指向DIP 2)DIP和RIP必須在同一個網段內 3)請求和響應報文都需通過DIrector Server,高負載場景中,Director Server易成爲性能瓶頸 4)支持端口映射 5)RS可使用任意操做系統 6)缺陷:對Director Server壓力會比較大,請求和響應都需通過director server
實驗 準備real server的http服務 在node十二、node13上作: 要讓虛擬機上沒有安裝nginx yum -y install httpd curl systemctl restart httpd echo node12.com > /var/www/html/index.html 13就是echo node13.com > /var/www/html/index.html curl 127.0.0.1 作本地測試 route -n 或 netstat -r查看路由表信息 route del dafault gw 192.168.11.2 臨時刪除默認網關 route add default gw 192.168.11.11臨時設置默認網關 或vim /etc/syscomfig/network-scripts/ifcfg-ens33中修改網關 route -n LVS負載均衡器配置(node11) 在node11上作的 lsof -i:80 && nginx -s quit curl 192.168.11.12 &&curl 192.168.11.13 必須確保能訪問到此服務器的網站 添加一塊新的nat類型的虛擬網卡 將虛擬網卡ens37的ip設置爲192.168.10.11 在網絡適配器下添加一塊nat網卡 cd /etc/sysconfig/network-scripts/ cp -av ifcfg-ens33 ifcfg-ens37 刪除兩塊網卡的gateway網關 route -n route del default gw 192.168.11.2 route del default gw 192.168.10.2 配置lvs負載均衡集羣列表: ipvsadm -Ln ipvsadm -C 清空ipvs集羣配置信息 ipvsadm -A -t 192.168.10.11:80 -s rr ipvsadm -a -t 192.168.10.11:80 -r 192.168.11.12:80 -m ipvsadm -a -t 192.168.10.11:80 -r 192.168.11.13:80 -m ipvsadm -Ln 查看並臨時開啓路由轉發功能 cat /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/ip_forward ------------------------------------------------------------------ 開啓永久路由轉發 vim /etc/syscrl.conf net.ipv4.ip_forward=1 當即生效: sysctl -p cat /proc/sys/net/ipv4/ip_forward
在vmware虛擬機網絡編輯器上 將子網ip改成192.168.10.1 筆記本物理機的vmnat8虛擬網卡ip和網關信息必須跟此處相同 在網卡中加入網關192.168.10.11 而後作測試 命令選項解釋:[藍字爲經常使用選項]
LVS-DR數據鏈路層負載均衡 顧名思義,數據鏈路層負載均衡是指在通訊協議的數據鏈路層修改mac地址進行負載均衡。
1.當用戶請求到達Director Server,請求的數據會先到內核空間的pereouting鏈。此時報文的源ip爲cip,目標ip爲vip。 2.Prerouting檢查發現數據包的目標ip是本機,將數據包發送至input鏈。 3.ipvs比對數據包請求的服務是否爲集羣服務,如果,將請求報文中的源mac地址修改成dip的mac地址,將目標mac地址修改成rip的mac地址,那麼此時數據包將會發送至real server。 4.因爲DS和rs在同一個網絡中,因此是經過二層來傳輸。Postrouting鏈檢查目標mac地址爲rip的mac地址,那麼數據包將會發送至real server。 5.rs發現請求報文的mac地址是本身的mac地址,就接收此報文。處理完成以後,將響應報文經過eth0網卡而後向外發出。此時的源ip地址爲vip,目標ip爲cip。 6.響應報文最終送達至客戶端
1.Lvs-DR模型的特性 1.保證前端路由將目標地址爲vip報文發給director server,而不是rs 2.rs可使用私有地址;也能夠是公網地址,若是使用公網地址,此時能夠經過互聯網對rip進行直接訪問 3.rs跟Director server必須在同一個物理網絡中 4.全部的請求報文經由Director Server,但響應報文必須不能進過Director Server 5.不支持地址轉換,也不支持端口映射,由於DR模型是工做在二層的,二層只處理數據包中的mac地址 6.rs能夠是大多數常見的操做系統 7.rs的網關覺不容許指向DIr(由於咱們不容許他通過director) 8.RS上的lo接口配置vip的ip地址
3. 過程及解決方案: vs/dr模式配置在rel server上作的 node12 yum -y install httpd systemclt restart httpd vim /aa/lo.sh 腳本以下 chmod -v +x lo.sh . /aa/lo.sh 而後再傳給13的ip
director調度器 在11上作的 給網卡臨時設置vip地址 yum -y install ipvsadm -w 權重 -g指定LVS 的工做模式爲DR直接路由模式(也是LVS 默認的模式) curl 192.168.11.12 curl 192.168.11.13 訪問測試(win7/win10上作): |