四層負載和七層負載

2021-10-22 11:56:29 字數 3243 閱讀 7819

所謂四層就是基於ip+埠的負載均衡,主要代表有lvs。

七層負載也稱內容交換,就是基於url等應用層資訊的負載均衡,主要代表有nginx。

lvs工作在一台server上提供directory(負載均衡器)的功能,本身並不提供服務,只是把特定的請求**給對應的real server(真正提供服務的主機),從而實現集群環境中的負載均衡。

nat**模式

network address translation,網路位址轉換

①.客戶端將請求發往前端的負載均衡器,請求報文源位址是cip(客戶端ip),後面統稱為cip),目標位址為vip(負載均衡器前端位址,後面統稱為vip)。

②.負載均衡器收到報文後,發現請求的是在規則裡面存在的位址,那麼它將客戶端請求報文的目標ip位址改為了後端伺服器的rip位址並將報文根據演算法傳送出去。

③.報文送到real server後,由於報文的目標位址是自己,所以會響應該請求,並將響應報文返還給lvs。

④.然後lvs將此報文的源位址修改為本機並傳送給客戶端。

#注意在nat模式中,real server的閘道器必須指向lvs,否則報文無法送達客戶端

優點:網路隔離更安全 節約ip位址

缺點director很可能成為系統效能瓶頸,所有的請求director都需要處理應答

dr直接路由模式

①.客戶端將請求發往前端的負載均衡器,請求報文源位址是cip,目標位址為vip。

②.負載均衡器收到報文後,發現請求的是在規則裡面存在的位址,那麼它將客戶端請求報文的源mac位址改為自己dip的mac位址,目標mac改為了rip的mac位址,並將此包傳送給rs。

③.rs發現請求報文中的目的mac是自己,就會將次報文接收下來,處理完請求報文後,將響應報文通過lo介面送給eth0網絡卡直接傳送給客戶端。

特點

1,集群節點和director必須在乙個物理網路內

2,rip可以使用公網位址或私有位址

3,director僅處理入站請求,director伺服器的壓力比較小

4,集群節點閘道器不指向director,故出站不經過director

5,不支援埠對映

6,大多數作業系統可以作為realserver,要支援隔離arp廣播

tun-ip隧道模式

①.客戶端將請求發往前端的負載均衡器,請求報文源位址是cip,目標位址為vip。

②.負載均衡器收到報文後,發現請求的是在規則裡面存在的位址,那麼它將在客戶端請求報文的首部再封裝一層ip報文,將源位址改為dip,目標位址改為rip,並將此包傳送給rs。

③.rs收到請求報文後,會首先拆開第一層封裝,然後發現裡面還有一層ip首部的目標位址是自己lo介面上的vip,所以會處理次請求報文,並將響應報文通過lo介面送給eth0網絡卡直接傳送給客戶端。

特點優點:

負載均衡器只負責將請求包分發給後端節點伺服器,而rs將應答包直接發給使用者。所以,減少了負載均衡器的大量資料流動,負載均衡器不再是系統的瓶頸,就能處理很巨大的請求量,這種方式,一台負載均衡器能夠為很多rs進行分發。而且跑在公網上就能進行不同地域的分發。

缺點:隧道模式的rs節點需要合法ip,這種方式需要所有的伺服器支援」ip tunneling」(ip encapsulation)協議,伺服器可能只侷限在部分linux系統上。

full-nat

full-nat由此而生,解決的是lvs和rs跨vlan的問題,而跨vlan問題解決後,lvs和rs不再存在vlan上的從屬關係,可以做到多個lvs對應多個rs,解決水平擴容的問題。

輪訓演算法

(1).rr 輪詢

round-robin:排程器通過"輪叫"排程演算法將外部請求按順序輪流分配到集群中的真實伺服器上,它均等地對待每一台伺服器,而不管伺服器上實際的連線數和系統負載。

(2).wrr 加權輪詢

排程器通過"加權輪叫"排程演算法,根據真實伺服器的不同處理能力.來排程訪問請求。這樣可以保證處理能力強的伺服器,處理更多的訪問流量。排程器可以自動問詢真實伺服器的負載情況,並動態地調整其權值。

(3).dh 目標位址hash

"目標位址雜湊"排程演算法根據請求的目標ip位址,作為雜湊鍵(hash key)從靜態分配的雜湊表找出對應的伺服器,若該伺服器是可用的且未超載,將請求傳送到該伺服器,否則返回空。

(4).sh 源位址hash

"源位址雜湊"排程演算法根據請求的源ip位址,作為雜湊鍵(hash key)從靜態分配的雜湊表找出對應的伺服器,若該伺服器是可用的且未超載,將請求傳送到該伺服器,否則返回空

2.dynamic scheduling method 動態調服方法

(1).lc 最少連線

排程器通過"最少連線"排程演算法動態地將網路請求排程到已建立的鏈結數最少的伺服器上。如果集群系統的真實伺服器具有相近的系統效能,採用"最小連線"排程演算法可以較好地均衡負載。

(2).wlc 加權最少連線

在集群系統中的伺服器效能差異較大的情況下,排程器採用"加權最少鏈結"排程演算法優化負載均衡效能,具有較高權值的伺服器將承受較大比例的活動連線負載。排程器可以自動問詢真實伺服器的負載情況,並動態地調整其權值。

(3).lblc 基於本地的最少連線

「基於區域性性的最少鏈結」 排程演算法是針對目標ip位址的負載均衡,目前主要用於cache集群系統。該演算法根據請求的目標ip位址找出該目標ip位址最近使用的伺服器,若該伺服器 是可用的且沒有超載,將請求傳送到該伺服器;若伺服器不存在,或者該伺服器超載且有伺服器處於一半的工作負載,則用"最少鏈結"的原則選出乙個可用的服務 器,將請求傳送到該伺服器。

(4).lblcr 帶複製的基於本地的最少連線

四層負載均衡和七層負載均衡

第一,技術原理上的區別。所謂四層負載均衡,也就是主要通過報文中的目標位址和埠,再加上負載均衡裝置設定的伺服器選擇方式,決定最終選擇的內部伺服器。以常見的 tcp為例,負載均衡裝置 在接收到第乙個來自客戶端的 syn請求時 即通過上述方式選擇乙個最佳的伺服器,並對報文中目標 ip位址進行修改 改為後端...

負載均衡七層和四層

所謂四層負載均衡,也就是主要通過報文中的目標位址和埠,再加上負載均衡裝置設定的伺服器選擇方式,決定最終選擇的內部伺服器。layer4 在三層負載均衡的基礎上,通過發布三層的ip位址 vip 然後加四層的埠號,來決定哪些流量需要做負載均衡,對需要處理的流量進行nat處理,至後台伺服器,並記錄下這個tc...

四層負載均衡與七層負載均衡

1 四層負載均衡與七層負載均衡區別 個人理解 網路七層協議包括,應用層 第七層 表示層,會話層,傳輸成 第四層 網路層,資料鏈路層,物理層。所謂的七層和四層負載均衡就是指基於哪一層做的負載均衡。nginx反向 就是一種七層負載均衡,可以通過使用者的請求url來進行劃分 lvs就屬於四層負載均衡,是基...