參考:https://blog.csdn.net/weixin_44695383/article/details/103742375
lvs負載均衡面試題
lvs 負載均衡
1.lvs 原理
LVS通過工作於內核的ipvs模塊來實現功能,其主要工作於netfilter 的INPUT鏈上。
而用戶需要對ipvs進行操作配置則需要使用ipvsadm這個工具。
ipvsadm主要用於設置lvs模型、調度方式以及指定后端主機。
2.lvs 有哪幾種模式,工作過程原理是什么?
DR模式(直接路由模式)
DR模式是通過改寫請求報文的目標MAC地址,並將請求發給真實服務器,而真實服務器響應后的處理結果直接返回給客戶端用戶。
但是要求調度器Lb與真實服務器RS都有一塊網卡連接到同一物理網段上,必須在同一個局域網環境。
簡述:lb收到用戶請求數據包后,將請求包中目標mac地址轉換后端某個rc服務器的mac地址后,將數據包轉發出去,rs收到請求包后,直接將響應的內容傳給用戶。此時要求LB和所有的rs都必須在一個物理段內,且lb與rs群共享一個虛擬ip。
NAT模式
客戶端訪問調度器時,調度器通過網絡地址轉換,調度器重寫請求報文的目標地址,根據預設的調度算法,將請求分派給后端的真實服務器,真實服務器的響應報文通過調度器時,報文的原地址被重寫,再返回給用戶,完成整個負載調度過程
簡述:lb收到用戶請求包后,lb將請求包中虛擬服務器的ip地址轉換為某個選定rs的地址,然后轉發給rs。rs將應答包發給lb,lb將應答包中rs的ip轉換為虛擬服務器的ip地址。返回給用戶。
TUN隧道模式
采用net模式時,由於請求和響應的報文必須通過調度器地址重寫,當客戶請求越來越多時,調度器處理能力將成為瓶頸,為了解決這個問題,調度器把請求的報文通過ip隧道轉發到真實的服務器,真實的服務器將響應處理后的數據直接返回給客戶端,這樣調度器就只處理請求入站的報文,由於一般網絡服務應答數據比 請求報文大很多,采用vs/TUN模式后,集群系統的最大吞吐量可以提高10倍。
FULL NAT模式
3.最常用的模式是什么,有什么特點?
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
10.直接對外訪問的業務,例如:web服務做RS節點,RS最好用公網的IP地址,如果不直接對外的業務,
例如:mysql,存儲系統的RS節點,最好只用內部的Ip地址。
lvs和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,可以很好的處理靜態資源,內存消耗少,宕機率很低。