lvs通過工作於核心的ipvs模組來實現功能,其主要工作於netfilter 的input鏈上。
而使用者需要對ipvs進行操作配置則需要使用ipvsadm這個工具。
ipvsadm主要用於設定lvs模型、排程方式以及指定後端主機。
2.lvs 有哪幾種模式,工作過程原理是什麼?
dr模式(直接路由模式)
dr模式是通過改寫請求報文的目標mac位址,並將請求發給真實伺服器,而真實伺服器響應後的處理結果直接返回給客戶端使用者。nat模式但是要求排程器lb與真實伺服器rs都有一塊網絡卡連線到同一物理網段上,必須在同乙個區域網環境。
簡述:lb收到使用者請求資料報後,將請求包中目標mac位址轉換後端某個rc伺服器的mac位址後,將資料報**出去,rs收到請求包後,直接將響應的內容傳給使用者。此時要求lb和所有的rs都必須在乙個物理段內,且lb與rs群共享乙個虛擬ip。
客戶端訪問排程器時,排程器通過網路位址轉換,排程器重寫請求報文的目標位址,根據預設的排程演算法,將請求分派給後端的真實伺服器,真實伺服器的響應報文通過排程器時,報文的原位址被重寫,再返回給使用者,完成整個負載排程過程tun隧道模式簡述:lb收到使用者請求包後,lb將請求包中虛擬伺服器的ip位址轉換為某個選定rs的位址,然後**給rs。rs將應答包發給lb,lb將應答包中rs的ip轉換為虛擬伺服器的ip位址。返回給使用者。
採用net模式時,由於請求和響應的報文必須通過排程器位址重寫,當客戶請求越來越多時,排程器處理能力將成為瓶頸,為了解決這個問題,排程器把請求的報文通過ip隧道**到真實的伺服器,真實的伺服器將響應處理後的資料直接返回給客戶端,這樣排程器就只處理請求入站的報文,由於一般網路服務應答資料比 請求報文大很多,採用vs/tun模式後,集群系統的最大吞吐量可以提高10倍。full nat模式
dr
①通過排程器上修改資料報的目的mac位址實現**,注意,源ip位址仍然是cip,目的ip位址仍然是vip
②請求的報文經過排程器,而rs相應處理處理後報文無需經過排程器lb,因此,併發訪問量大時使用效率很高
③dr模式是通過mac位址的改寫機制實現**,因此所有的rs節點和排程器lb只能在乙個區域網中
④需要注意rs介面的vip的繫結(lo:vip/32 lol:vip/32)和arp的一致問題
⑤抑制arp是不讓rs(real server)相應cs(client server)的arp請求
⑥rs節點預設閘道器不需要排程器的lb的dip,而是直接idc機房分配的上級路由器的ip(這是rs帶有外網的
的ip位址的情況),理論上講,只要rs出網即可,不是必須配置外網的ip
工作中rs要配置外網的ip
⑦由於dr模式角度器僅僅進行了mac位址的改寫,因此排程器lb無法改變請求的報文的目的埠
⑧lb幾乎支援所有的unix,linux系統,但是目前不支援winows系統,真實的節點可以是windows系統。
⑨總的來說dr模式效率很高,但是配置也比較麻煩,因此訪問量不是很大的可以用haproxy/nginx取代,
日pv 1000-2000w或者併發請求1w以下都是可以考慮haproxy/nginx
lvs的優點:
1.抗負載能力強,工作在第四層僅做分發之用,沒有流量的產生,這個特點也決定了他在負責均衡軟體裡的效能最強,無流量,同時保證了均衡器io的效能不會受到大流量的影響。
2.工作穩定,自身有完整的雙機熱備方案,如lvs+keepalived
3.應用範圍比較廣,可以對所有應用做負載均衡。
4.配置性比較低,這是乙個缺點也是乙個優點,因為沒有可太多配置的東西,所以並不需要太多的接觸,大大減少人為出錯的機率。
lvs的缺點:
1.軟體本身不支援正則處理,不能做動靜分離。
2.如果**應用比較龐大,lvs/dr+keepalived就比較複雜了,特別是後面有windows server應用的機器,實施及配置還有維護過程就比較麻煩,相對而言,nginx+keepalived就簡單一點。
nginx的優點:
跨平台:可以linux系統執行,而且windows的移植版本。
配置簡單:非常的簡單,容易上手。
非阻塞併發連線;資料複製時,磁碟io的第一階段是非阻塞,官方測試能支援5萬併發連線,實際生產中能跑2-3萬併發連線數。傳送報文是,nginx一邊介紹web伺服器的返回資料,一邊把資料傳送給客戶端瀏覽器。
自帶簡單檢查:當有伺服器宕機後,新的請求就不會傳送到這台機器上了,而是傳送到其他節點。
節省頻寬:支援gzip壓縮,開啟瀏覽器快取。
網路依賴性低,理論上能ping通就可以實現負載均衡,而且可以有效區分內網,外網流量。
記憶體消耗小,穩定性高:開啟10個nginx消耗記憶體125m,可以很好的處理靜態資源,記憶體消耗少,死機率很低。
負載均衡 lvs
常用的負載均衡開源軟體有nginx lvs haproxy,商業的硬體負載均衡裝置f5 netscale。負載均衡的架構和原理很簡單,就是當使用者的請求過來時,會直接分發到director server上,然後它把使用者的請求根據設定好的排程演算法,智慧型均衡地分發到後端真正伺服器上。為了避免不同機...
LVS負載均衡
一 lvs簡介 lvs linux virtual server 即linux虛擬伺服器,是由章文嵩博士主導的開源負載均衡專案,目前lvs已經被整合到linux核心模組中。該專案在linux核心中實現了基於ip的資料請求負載均衡排程方案,其體系結構如圖1所示,終端網際網路使用者從外部訪問公司的外部負...
LVS負載均衡
應用層7 nginx 軟體 表示層6 會話層5 傳輸層4 lvs 核心 網路層3 鏈路層2 物理層1 整個網際網路建立在下一跳的模式下 端點間tcp傳輸過程中 解析資料報需要成本 學習機制 路由器 三層,只關心ip和路由表 lvs伺服器 四層,只關心port,狀態 nginx 七層,關心socket...