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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

LVS负载均衡基础总结

發(fā)布時間:2025/3/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LVS负载均衡基础总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

提高服務器響應能力的方法:

scale on? 在原有服務器的基礎上進行升級或者直接換一臺新的性能更高的服務器。 scale out? 橫向擴展,將多臺服務器并發(fā)向外響應客戶端的請求。優(yōu)點:成本低,擴展架構比較簡單。
? 集群(Cluster),通俗地講就是按照某種組織方式將幾臺電腦組織起來完成某種特定任務的這樣一種架構。
? 集群技術主要分為三大類:

1、高可用性HA(High Available Cluster)
?
利用集群管理軟件,當主服務器故障時,備份服務器能夠自動接管主服務器的工作,并及時切換過去,以實現(xiàn)對用戶的不間斷服務。

2、負載均衡LB(Load balancing Cluster)
負載均衡其實就是一個樂隊的指揮,指揮下面的樂隊

即把負載壓力根據(jù)某種算法合理分配到集群中的每一臺計算機上,以減輕主服務器的壓力,降低對主服務器的硬件和軟件要求。?

可以擴展服務容量;常用的有LVS

3、高性能計算HP(High Performance Computing)

即充分利用集群中的每一臺計算機的資源,實現(xiàn)復雜運算的并行處理,通常用于科學計算領域,比如基因分析,化學分析等。
?
? LB Cluster:負載均衡集群
? Director:負載均衡器,也叫調度器; 負責接收客戶端請求,并將請求按照某種算法分發(fā)到后臺真正提供服務的服務器上。 調度器在調度時要考慮后端服務器的狀態(tài);還能夠對后端服務器的健康狀態(tài)進行檢測 Shared Storage(共享存儲): 在負載均衡中后端的real server需要對數(shù)據(jù)進行共享; Shared Storage為所有Real Server提供共享存儲空間和一致的數(shù)據(jù)內容。
? 共享存儲分為:
DAS:直接附加存儲
????? 直接連到主機總線那去的;;靠主板芯片通電
????? 在塊級別;連接線的長度很短
NAS:網(wǎng)絡附加存儲
? ? ? ? 文件共享是在文件級別的;不能格式化,用于共享文件
? ? ? ? ?通過NFS/Samba實現(xiàn)
? ? ??
SAN:存儲區(qū)域網(wǎng)絡
????? 基于塊級別的,可以分區(qū),格式化,需要鎖管理 SAN又分為:
???? FC SAN :光纖
???? IP SAN:以太網(wǎng)

? 能夠提供負載均衡的方案:
Hardware
1、F5 :BIG IP? 1000w并發(fā)請求
2、Citix:netscler? 思捷 500w并發(fā)請求
3、IBM的A10?? 600w

Software:

4、lvs:能夠達到400w;
5、 haproxy:
? LVS :?Linux虛擬服務

LVS是一個開源軟件
體系結構:
LVS由前端的負載均衡器(Load Balancer,LB)和后端的真實服務器(Real Server,RS)群組成。RS間可通過局域網(wǎng)或廣域網(wǎng)連接。 LVS的這種結構對用戶是透明的,用戶只能看見一臺作為LB的虛擬服務器(Virtual Server),而看不到提供服務的RS群。

類似于iptables的架構,在內核中有一段代碼用于實時監(jiān)聽數(shù)據(jù)包來源的請求,當數(shù)據(jù)包到達端口時做一次重定向。這一系列的工作必須在內核中實現(xiàn)。在內核中實現(xiàn)數(shù)據(jù)包請求處理的代碼叫做ipvs。ipvs僅僅提供了功能框架不識別服務,ipvs和iptables一樣,要想真正工作起來要靠規(guī)則;寫規(guī)則的工具是工作在用戶空間的ipvsadm。


Director是一種四層交換;tcp/udp的協(xié)議都可以通過lvs向后端做負載均衡的;是工作在四層的一個軟件,
用戶的請求應該是一個特定協(xié)議的特定請求;如tcp/80是web服務,

常見的名稱稱呼:
VIP--Virtual IP address:虛擬IP地址,并不提供服務,而是將用戶的請求轉發(fā)至后方
RIP--Real IP address:后臺真正提供服務的服務器的IP地址
DIP--Director IP address:調度IP地址,通常是和RIP相連的LVS的IP地址
CIP--Client IP address:客戶端IP。

LVS的類型:
NAT:地址類型
DR:直接路由
TUN:隧道

一、NAT:目標地址轉換 所有客戶端的請求都被Director根據(jù)訪問請求和調度算法被定向到后臺的Real Server上。

NAT方式下前端的DR與RS是一托N的,DR可以帶動n個服務器工作的,所有的服務器的進出請求都要經過DR的;這樣Director的壓力就比較大。當服務器規(guī)模增大到一定程度時,DR會稱為整個系統(tǒng)的瓶頸的。
NAT適用于規(guī)模不大的集群的

NAT模型和DNAT(目標地址轉換)基本相似,只是比后者多了負載均衡的用法

?

?數(shù)據(jù)包地址轉換過程:
S:CIP D:VIP--->Director--->S:CIP D:RIP--->Real Server--->
--->S:RIP? D:CIP--->Director--->S:VIP? D:CIP?

特征:

1、集群節(jié)點與DR在同一網(wǎng)絡中
??? real server 和director在同一網(wǎng)絡中
2、RIP是私有Ip,僅用于通信
3、DR工作在clients和RS中間,負責處理進出的全部報文
4、RS網(wǎng)關要指向DIP
5、可以實現(xiàn)端口轉換(或映射)
6、RS可以是任何操作系統(tǒng)
7、DR可能會成為系統(tǒng)瓶頸,不適合在較大規(guī)模中應用

二、DR:直接路由

由于在NAT模式下當服務器數(shù)量達到一定規(guī)模是會成為整個系統(tǒng)的瓶頸,影響集群性能的發(fā)揮,為了解決這個問題,引入了一種類似旁路的方式,即DR只負責處理請求的報文,服務器端響應請求時直接到達客戶端,不在經過DR,請求與響應分離,這樣DR就相當于處理了一半的業(yè)務量,DR的性能就大大的釋放出來了,也避免了Director稱為單點故障了;

?

1、客戶請求經過Director,而Real Server在響應的時候直接回應給客戶端

2、但每一個real server必須隱藏自己的VIP,不能響應前段的請求;
每一個real server都不能告訴用戶自己的mac地址;如果用戶直接能夠找到
real server的mac地址,那么就繞過了Director了,這樣負載均衡的意義也就不存在了。

3、DR收到報文后根據(jù)算法選擇后臺相應的real server
并將目標mac變成選擇的real server的mac地址

4、Director怎么知道real server的mac地址?
Director和RS必須要處于同一個物理網(wǎng)絡中,在一個局域網(wǎng)中,實行廣播,讓Director知道其內的每一個RS的mac地址,這樣Director可以將請求發(fā)至選擇的RS中

5、除了上述說的real server需要mac地址;每個real server還要有自己的RIP

? 需解決兩個問題: 1、如何避免real server對客戶端發(fā)來的請求的直接響應;達到隱藏real server的RIP? 解決方法:修改內核的兩個參數(shù):
??????? 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

1)arp_announce?當ARP請求通過某個端口進來是否利用這個接口來回應。
012用于定義通告級別的
0,是默認級別,控制本機至外地的所有通告
1,避免使用跟目標網(wǎng)絡不在同一網(wǎng)絡內的地址進行通告
2,只使用最佳本地網(wǎng)絡地址通告給目標地址

2)arp_ignore:當ARP請求發(fā)過來后發(fā)現(xiàn)自己正是請求的地址是否響應
0、不論請求從哪個目標地址來的,只要本機上有,就給予響應
1,只有你的請求報文從這個網(wǎng)絡接口進來,才予以響應

##對linux來說IP地址屬于系統(tǒng)而不屬于某個接口。

2、當Real Server內網(wǎng)網(wǎng)卡響應客戶端請求時,要以VIP作為源地址,不能以RIP作為源地址。
解決方法:
添加一條路由 如:route add -host 192.168.0.127(VIP) dev lo:0使客戶端訪問VIP,就讓VIP來響應客戶端。這樣避免了使用RIP作為源地址。

DIP來完成與RIP彼此間實現(xiàn)arp解析,并將客戶端的請求轉發(fā)給Real Server。
VIP作用是響應客戶端請求;
? DR模式:DR模式是這樣工作的,當CIP訪問VIP后,VIP把數(shù)據(jù)包通過DIP轉交給RIP,RIP在收到數(shù)據(jù)包后通過網(wǎng)卡別名欺騙(節(jié)點的網(wǎng)卡配置別名,IP為VIP),直接用別名的VIP響應客戶端,從而加快了回應速度,也避免了Director成為地址轉換的單點故障.目前主要應用的為DR模式的負載均衡.

特征:
1、集群節(jié)點和Director必須在同一物理網(wǎng)絡中,中間不能隔路由網(wǎng)關的
2、RIP可以是公網(wǎng)地址
3、Director僅處理入站請求(僅處理請求報文);而real server直接響應請求給用戶
4、RS的網(wǎng)關不能指向DIP;而是以公網(wǎng)上的某臺路由器作為網(wǎng)關;
5、不能使用端口映射
6、大多數(shù)操作系統(tǒng)都可以用作RS;windows除外
7、DR模型的Director能夠處理比NAT更海量的請求


三、隧道模型:
與DR的網(wǎng)絡結構一樣,但Director和Real Server可以在不同的網(wǎng)絡當中,可以實現(xiàn)異地容災的功能。DIP----->VIP 基于隧道來傳輸,在數(shù)據(jù)包外層額外封裝了S:DIP D :RIP 的地址。

LVS-TUN可實現(xiàn)基于網(wǎng)絡的集群;這樣就脫離了DR模型中的real server之間距離的限制?

特征:
1、集群節(jié)點不必在同一物理網(wǎng)絡中
2、RIP一定不能使用私有地址
3、Director僅處理請求報文
4、real server的響應報文不能經過Director
5、基于隧道模型不能使用端口映射
6、僅允許支持隧道協(xié)議的操作系統(tǒng)用于RS

調度方法:十種

分為動態(tài)方法和靜態(tài)(固定)
靜態(tài)僅根據(jù)算法本身調度,不考慮real server的當前連接狀況,

動態(tài)要將RS的鏈接狀態(tài)記入調度考量標準的

四種靜態(tài)調度方法:
1、rr:Round-robin 輪詢,將用戶請求平均分配給后端real server
2、wrr:Weighted round-robin 加權輪詢
????????給每臺Real Server分配一個權重,權重越大,性能越好,分到的請求越多。?????
3、DH:目標地址hash;Destination hashing?
? ? ? ? 來自于同一個IP地址的請求都被重定向到同一臺Real Server上;主要為了提高緩存利用率? ? ? ? ?
4、SH: 源地址hash; ? ? ??
? ? ? ? ?Director必須確保響應的數(shù)據(jù)包必須通過請求數(shù)據(jù)包所經過的路由器或者防火墻(保證原地址不變)。

六種動態(tài)調度方法:
1、LC:least? connection 最少鏈接
????? 哪一個Real Server上的連接數(shù)少就將下一個連接請求定向到那臺Real Server上去。
? ? ?算法:Overhead=active*256+inactive
2、WLC:加權最少鏈接;Weight Least-Connection
??? 在最少連接的基礎上給每臺Real Server分配一個權重。
??? 算法:Override=(active*256+inactice)/weight
3、SED:最短延遲;不再考慮非活動連接數(shù)
???? Override=(active+1*256)/weight
????? 缺點:當權重差別大,值又相等時,會造成性能強的服務器連接了幾個,而性能弱的會一直處于等待狀態(tài);
4、NQ:不用排隊;在sed基礎上改進,先會為每一個分配一個請求
??????????????
5、LBLC: 基于本地狀態(tài)的最少連接,Locality-Based Least-Connection
????????該算法根據(jù)請求的目標IP地址找出該目標IP地址最近使用的服務器,如果一個用戶曾經鏈接過的話,分配到原先分配的RS上;新連接會考慮到后方RS服務器的鏈接狀態(tài)
?6、LBLCR:帶復制功能的基于本地的最少鏈接?????????
????????它與LBLC算法的不同之處是它要維護從一個目標IP地址到一組服務器的映射,而LBLC算法維護從一個目標IP地址到一臺服務器的映射。

較常用的是WLC,LBLC


定義集群服務:

ipvsadm -A|E -t|u|f service-address [-s scheduler]
-A:添加
-E:修改

-t:tcp服務
-u:udpfw
-f:防火墻標記;后加標記號

-s scheduler:調度算法

刪除:
ipvsadm -D -t|u|f service-address

管理集群服務中的RS:

ipvsadm -a|e -t|u|f service-address -r server-addr -g|i|m? [-w weight]

-a:增加
-e:修改

-g,? --gatewaying???? DR模式?
-i,?? --ipip ? ? ? ? ? ? ? TUN模式
-m,? --masquerading?? NAT模式 ??

刪除:
ipvsadm -d -t|u|f service-addr -r server-addr

查看定義的服務及RS:

ipvsadm -L|l:
????????? -n:輸出IP和端口的數(shù)字形式
????????? -c:顯示當前的鏈接狀態(tài)
????????? --stats:顯示統(tǒng)計信息
????????? --rate:顯示速率信息
????????? -Z --zero:置零

ipvsadm -C?清空所有的定義
ipvsadm -R = ipvsadm-restore 存儲
ipvsadm -S = ipvsadm-save 保存

?

轉載于:https://blog.51cto.com/51880526/1070412

總結

以上是生活随笔為你收集整理的LVS负载均衡基础总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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