日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第 二 十 八 天 :LB 负 载 均 衡 搭 建 之 LVS

發布時間:2025/3/8 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第 二 十 八 天 :LB 负 载 均 衡 搭 建 之 LVS 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小Q抱怨,是一種負能量,猶如搬起石頭砸自己的腳,與人無益,于己不利,于事無補?


前面我們介紹了HA高可用集群,今天我們來了解下LB負載均衡集群,在學習完基本的搭建后,在擴展中方了解到他的知識量是挺大的,詳細的我會在開一個目錄,重點講解我所了解到的集群的概念與操作。下面我介紹的重點在于搭建一個簡單NAT和DR模式下的LVS集群以及我對LB和LVS的理解,有錯誤希望大家多多指教;


========================================簡介===========================================

LB=load balance ?負載均衡集群?

是集群中的一種集群方式,另外的有高可用集群,高性能計算機群;他主要是均衡客戶所帶來的巨大負載,比如我們一臺服務器智能處理1k并發量,但是當網站訪問量過大時,到達1w并發,我們就要用十臺機子進行合作處理,而搭建這種合作處理的方式就是負載集群;

上圖就是集群的本質,主要流程:大量的客戶發送服務請求,當director均衡服務器接收到請求后,通過LAN/WAN傳遞給后端的real服務器,分工形式的完成大并發量的服務。

負載均衡建立在網絡結構之上,所以實現他的軟件也是被根據網絡模型層次開發的:

常用的開源軟件:LVS(4層tcp/ip) nginx(7層應用層) ? ?keepalived?

商業的負載設備: F5、Netscale ? ? ? ? (這些我不太了解,還沒接觸過)


后面的我們會有nginx 和 keepalived的搭建步驟,下面主要是LVS的NAT和DR模式,采用wrr算法;

關于LVS:三種模式

VS/NAT模式(Network address translation)

VS/TUN模式(tunneling)

DR模式(Direct routing)


七種調度算法:

固定調度算法:rr,wrr,dh,sh

動態調度算法:wlc,lc,lblc,lblcr


==========================NAT模式搭建LVS負載均衡=======================

實際上NAT就是運用的一個防火墻的規則;所有請求進出都通過director server,所以造成了大量的壓力,所以它配置real server的上限就是20以內。



準備階段:

至少三臺機子(我用的虛擬機)

客戶端機 ? ? ? 192.168.21.190 ? ? ? ? ? ?必須能訪問外網,不能和下網段一樣

均衡服務器 ? ?192.168.11.190 ? ? ? ? ? ? director =dir

真實服務器 ? ?192.168.11.30 ? ? ? ? ? ? ? real server=rs1

? ? ? ? ? ? ? ? ? ? 192.168.11.20 ? ? ? ? ? ? ? real server=rs2

三臺機子都要安裝nginx或者Apache,因為三臺機子需要80端口開啟進行連接,yum一下就行;

更改一下主機名分別為dir ?rs1 ?rs2:舉例hostname ? dir ?>>> ?bash,方便管理;

dir主機:

安裝LVS核心軟件:

yum ? install ?-y ?ipvsadm

編寫shell腳本:

vim ? /usr/local/sbin/Lvs_nat.sh ? ?添加:

#!?/bin/bash #?director?????????? #服務器上開啟路由轉發功能:? echo?1?>?/proc/sys/net/ipv4/ip_forward? #?關閉icmp的重定向 echo?0?>?/proc/sys/net/ipv4/conf/all/send_redirects echo?0?>?/proc/sys/net/ipv4/conf/default/send_redirects echo?0?>?/proc/sys/net/ipv4/conf/eth0/send_redirects echo?0?>?/proc/sys/net/ipv4/conf/eth1/send_redirects #?director?設置nat防火墻 iptables?-t?nat?-F iptables?-t?nat?-X iptables?-t?nat?-A?POSTROUTING?-s?192.168.11.0/24??-j?MASQUERADE???????????#從哪個網段過來的包進行MASQUERADE #?director設置ipvsadm IPVSADM='/sbin/ipvsadm' $IPVSADM?-C $IPVSADM?-A?-t?192.168.21.190:80??-s?wrr??-p?300?#-s是算法?-p強制轉換訪問某臺真實機,舍去??? $IPVSADM?-a?-t?192.168.21.190:80??-r?192.168.11.20:80?-m?-w?1 $IPVSADM?-a?-t?192.168.21.190:80??-r?192.168.11.30:80?-m?-w?3

-w 權重,交替訪問的次數用于wrr算法 ? ? ? ? ? ? ? -m 是上邊MASQUERADE,用NAT模式必須加上

-A增加一條director ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -a增加一條rs

當使用rr算法的時候,就是一機一次的訪問,就沒有下面的-w權重選項了

直接運行這個腳本就可以完成lvs/nat的配置了:?

/bin/bash(bash) ? ? ? /usr/local/sbin/lvs_nat.sh?


內網連網的話,要指定一個網關,和購買的外網IP通信,實現上網功能;而我們現在要實現rs與dir通信,所以要改網關為dir的IP;

兩個rs真機:

vi ? ?/etc/sysconfig/network-scripts/ifcfg-eth0

更改

GETWAY=192.168.11.190 ? ? ? ? ? ? ? ? 指向dir的IP

保存重啟:service ?network ?restart ? ?或者 ?ifdown ?eth0 ;ifup ?eth0


為了測試方便,我們更改一下nginx火Apache的網站默認頁面,找到所在路徑,一般可在配置文件下找到:

或通過配置文件查找一些相關的配置文件,再到那些配置中查看;

rs1上: echo "1111111" >/usr/share/nginx/html/index.html

rs2上: echo "2222222" >/usr/share/nginx/html/index.html


測試:瀏覽器 訪問192.168.21.190 ? ? ? ? ?刷新一次更新一次內容, ?11 與22交替出現次數分別是1>3>1

? ? ? ? ?有時瀏覽器會因為緩存等原因,出現頁面一直是當前頁面,其實就算不是緩存問題,對于大規模的

? ? ? ? ? 并發處理也沒事,因為即使一個用戶一直訪問rs1,那另一個用戶會主動訪問rs2 ?···········

? ? ? ? ? ? 服務器curl可以實現高效準確的訪問,一直 curl ? 192.168.21.190 ? ? ? ? ? 會發現明確交替現象 ? ? ? ??



==============================DR模式LVS負載均衡==============================

DR模式要使用三個外網IP,他是比較浪費IP,其實我們完全可以讓realserver使用局域網IP;但是他

支持負載集群多,因為她可以直接將數據傳給客戶端,緩解了負載均衡器;

? ? ? ? ??

因為我們上節配置了NAT模式的,要先清空配置和規則

查看: ipvsadm ?-ln

清空: ipvsadm ?-C

? ? ? ? ? ?iptables ? -t ?nat ? -F?

要求:有三個外網IP

dir ? ? ?192.168.11.100

rs1 ? ? ?192.168.11.20

rs2 ? ? ?192.168.11.30?

dir均衡機

DR模式下不需要客戶端的外網IP了,所以 ifdown ?eth1

編寫腳本: vim ? ?/usr/local/sbin/Lvs_dr.sh

#!?/bin/bash echo?1?>?/proc/sys/net/ipv4/ip_forward ipv=/sbin/ipvsadm vip=192.168.11.110??????????????????????設置虛擬IP rs1=192.168.11.20 rs2=192.168.11.30 ifconfig?eth0:0?$vip?broadcast?$vip?netmask?255.255.255.255?up????????注意網關是這個 route?add?-host?$vip?dev?eth0:0??????????????????????????添加靜態路由 $ipv?-C???????????????????????????????????????????????????????????????清空以前的規則 $ipv?-A?-t?$vip:80?-s?wrr???????????????????????????????????-s?是算法 $ipv?-a?-t?$vip:80?-r?$rs1:80?-g?-w?1 $ipv?-a?-t?$vip:80?-r?$rs2:80?-g?-w?1??????????????????-g代表DR模式執行?bash???/usr/local/sbin/Lvs_dr.sh

兩臺rs真機

因為都要實現可以上網的功能,發送數據包給客戶端,所一網關要改回以前可以上網的網關,就是你的路由IP ? ? ??

vim /usr/local/sbin/lvs_dr_rs.sh

#!?/bin/bash vip=192.168.31.110???????????????????????????????????????對應虛擬IP,客戶連虛擬IP,和高可用方式類似 ifconfig?lo:0?$vip?broadcast?$vip?netmask?255.255.255.255?up?????????????????VIP網卡信息對應 route?add?-host?$vip?lo: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

啟動:bash ? ? ?/usr/local/sbin/lvs_dr_rs.sh

測試:瀏覽器和curl訪問同上邊形式一樣,只不過是訪問VIP;


擴展:負載均衡http://blog.sina.com.cn/s/blog_90065bd00100wav5.html?

? ? ? ? ?特別好的文章?http://atong.blog.51cto.com/2393905/1348602?








轉載于:https://blog.51cto.com/tengxiansheng/1702222

總結

以上是生活随笔為你收集整理的第 二 十 八 天 :LB 负 载 均 衡 搭 建 之 LVS的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。