lvs:linux virtual server,負載排程器,核心整合。
vs:virtual server,負責排程
rs:real server,負責真正提供服務
vs根據請求報文的目標ip和目標協議以埠將其排程**至某rs,根據排程演算法來挑選合適的rs。lvs是核心級功能,工作在input鏈的位置,將發往input的流量進行處理。
2.1 lvs功能及組織架構
負載均衡的應用場景為高訪問的業務,提高應用程式的可用性和可靠性。
2.2 應用於高訪問的業務
如果您的應用訪問量很高,可以通過配置監聽規則將流量分發到不同的雲伺服器ecs (elastic compute service 彈性計算服務)例項上。此外,可以使用會話保持功能將同一客戶端的請求**到同- -台後端ecs
2.3 擴充套件應用程式
2.4 消除單點故障
可以在負載均衡例項下新增多台ecs例項。當其中-一部分ecs例項發生故障後,負載均衡會自動遮蔽故障的ecs例項,將請求分發給正常執行的ecs例項,保證應用系統仍能正常工作
2.5 應用場景
c.網路遊戲的動靜分離
d.多層次的容災架構場景
3.1 lvs集群的工作模式
nat:修改請求報文的目標ip,多目標ip的dnat
dr:在原請求ip報文之外新加乙個ip首部(用的最多)
fullnat:修改請問報文的源和目標ip(阿里)
3.1.1 nat模式
nat流程圖:
1、nat技術將請求的報文(通過dnat方式改寫)和響應的報文(通過snat方式改寫),通過排程器位址重寫然後在**給內部的伺服器,報文返回時在改寫成原來的使用者請求的位址。3.1.2 dr模式2、只需要在排程器lb. 上配置wan公網ip即可,排程器也要有私有lanip和內部rs節點通訊。
3、每台內部rs節點的閘道器位址,必須要配成排程器lb的私有lan內物理網絡卡位址(ldip),這樣才能確保資料報文返回時仍然經過排程器lb。
4、由於請求與響應的資料報文都經過排程器lb, 因此,**訪問量大時排程器lb有較大瓶頸,-般要求最多10-20 臺節點。
5、nat模式支援對ip及埠的轉換,即使用者請求10.0.0. 1:80, 可以通過排程器轉換到rs節點的10.0. 0. 2:8080 (dr和tun模式不具備的)。
6、所有nat內部rs節點只需配置私有lan ip即可。
7、由於資料報來回都需要經過排程器,因此,要開啟核心**net. ipv4. ip_ forward= 1,當然也包括iptables防火牆的forward功能(dr和tun模式不需要)。
dr原理圖:
dr特點:
1、通過在排程器lb. 上修改資料報的目的mac位址實現**。注意,源ip位址仍然是cip,目的ip位址仍然是vip。3.1.3 tun模式2、請求的報文經過排程器,而rs響應處理後的報文無需經過排程器lb,因此,併發訪問量大時使用效率很高(和nat模式比)
3、因dr模式是通過mac位址的改寫機制實現的**,因此,所有rs節點和排程器lb只能在-乙個區域網lan中(小缺點)。
4、需要注意rs節點的vip的繫結(lo:vip/32,lol:vip/32) 和arp抑制問題。
5、強調下: rs節點的預設閘道器不需要是排程器lb的dip, 而直接是idc機房分配的上級路由器的ip (這是rs帶有外網ip位址的情況),理論講:只要rs可以出網即可,不是必須要配置外網ip。
6、由於dr模式的排程器僅進行了目的mac位址的改寫,因此,排程器lb無法改變請求的報文的目的埠(和nat要區別)。
7、當前,排程器lb支援幾乎所有的unix, linux系統,但目前不支援windows系統。真實伺服器rs節點可以是windows系統。8、總的來說dr模式效率很高,但是配置也較麻煩,因此,訪問量不是特別大的公司可以用haproxy/nginx取代之。這符合運維的原則:簡單、易用、高效。日1000-2000w pv或併發請求1萬以下都可以考慮用haproxy/nginx (lvs nat模式) 9、直接對外的訪問業務,例如:web服務做rs節點,rs最好用公網ip位址。如果不直接對外的業務,例如: mysql,儲存系統rs節點,最好只用內部ip位址。
fullnat原理模式:
特點:
1、負載均衡器通過把請求的報文通過ip 隧道(ipip 隧道,高階班講這個)的方式(請求的報文不經過原目的位址的改寫(包括mac),而是直接封裝成另外的ip報文)**至真實伺服器,而真實伺服器將響應處理後直接返回給客戶端使用者。固定排程演算法:rr,wrr,dh,sh2、由於真實伺服器將響應處理後的報文直接返回給客戶端使用者,因此,最好rs有一乙個外網ip位址,這樣效率才會更高。理論上:只要能出網即可,無需外網ip位址。
3、由於排程器lb只處理入站請求的報文。因此,此集群系統的吞吐量可以提高10倍以上,但隧道模式也會帶來-定的系統開銷。tun模式適合lan/wan。
4、tun模式的lan環境**不如dr模式效率高,而且還要考慮系統對ip隧道的支援問題。
5、所有的rs伺服器都要繫結vip, 抑制arp,配置複雜。
6、lan環境- -般多採用dr模式,wan環境可以用tun模式,但是當前在wan環境下,請求**更多的被haproxy/nginx/dns排程等**取代。因此,tun 模式在國內公司實際應用的已經很少。跨機房應用要麼拉光纖成區域網,要麼dns排程,底層資料還得同步。
7、直接對外的訪問業務,例如: web服務做rs節點,最好用公網ip位址。不直接對外的業務,例如: mysql,儲存系統rs節點,最好用內部ip位址。
動態排程演算法:wlc,lc,lblc,lblcr
固定排程演算法:即排程器不會去判斷後端伺服器的繁忙與否,一如既往得將請求派發下去。
動態排程演算法:排程器會去判斷後端伺服器的繁忙程度,然後依據排程演算法動態得派發請求。
6.1、rr:輪詢(round robin)
這種演算法是最簡單的,就是按依次迴圈的方式將請求排程到不同的伺服器上,該演算法最大的特點就是簡單。輪詢演算法假設所有的伺服器處理請求的能力都是一樣的,排程器會將所有的請求平均分配給每個真實伺服器,不管後端 rs 配置和處理能力,非常均衡地分發下去。這個排程的缺點是,不管後端伺服器的繁忙程度是怎樣的,排程器都會講請求依次發下去。如果a伺服器上的請求很快請求完了,而b伺服器的請求一直持續著,將會導致b伺服器一直很忙,而a很閒,這樣便沒起到均衡的左右。
6.2、wrr:加權輪詢(weight round robin)
這種演算法比 rr 的演算法多了乙個權重的概念,可以給 rs 設定權重,權重越高,那麼分發的請求數越多,權重的取值範圍 0 – 100。主要是對rr演算法的一種優化和補充, lvs 會考慮每台伺服器的效能,並給每台伺服器新增要給權值,如果伺服器a的權值為1,伺服器b的權值為2,則排程到伺服器b的請求會是伺服器a的2倍。權值越高的伺服器,處理的請求越多。
6.3、dh:目標位址雜湊排程演算法 (destination hash)
簡單的說,即將同一型別的請求分配給同乙個後端伺服器,例如將以 .jgp、.png等結尾的請求**到同乙個節點。這種演算法其實不是為了真正意義的負載均衡,而是為了資源的分類管理。這種排程演算法主要應用在使用了快取節點的系統中,提高快取的命中率。
即將來自同乙個ip的請求發給後端的同乙個伺服器,如果後端伺服器工作正常沒有超負荷的話。這可以解決session共享的問題,但是這裡有個問題,很多企業、社群、學校都是共用的乙個ip,這將導致請求分配的不均衡。
6.5、lc:最少連線數(least-connection)
這個演算法會根據後端 rs 的連線數來決定把請求分發給誰,比如 rs1 連線數比 rs2 連線數少,那麼請求就優先發給 rs1。這裡問題是無法做到會話保持,即session共享。
6.6、wlc:加權最少連線數(weight least-connection)
這個比最少連線數多了乙個加權的概念,即在最少連線數的基礎上加乙個權重值,當連線數相近,權重值越大,越優先被分派請求。
6.7、lblc:基於區域性性的最少連線排程演算法(locality-based least-connection)
將來自同一目的位址的請求分配給同一臺rs如果這台伺服器尚未滿負荷,否則分配給連線數最小的rs,並以它為下一次分配的首先考慮。
6.8、lblcr:基於位址的帶重複最小連線數排程 (locality-based least-connection with replication)
lvs簡單介紹
所有的負載均衡群集大概都分為三層 1 排程器 2 伺服器池 各個節點 3 儲存設施 群集的分類 負載均衡群集,高可用群集,高效能能運算群集 lvs群集的工作模式 nat模式 dr模式 tun模式今天介紹的兩個主要是 nat模式與dr模式 首先nat模式的群集他只需要乙個公網 ip,是最容易的負載均衡...
lvs演算法介紹
lvs演算法型別 靜態演算法 rr,wrr,dh,sh 動態演算法 wlc,lc,lblc,sed,nq 後兩種官方站點沒有提到,編譯lvs,make過程可以看到 靜態演算法 僅根據演算法本身進行排程 保證起點公平 rr round robin,輪調,輪循 wrr weighted rr,加權輪循 ...
lvs之 lvs原理架構介紹
一 概念 lvs的術語 router gwip vs virtual server,director rs real server cip client ip vip virtual server ip dip ditecter ip connect with rs rip real server ...