lvs是四層負載均衡器,linux2.4核心以後天然支援(核心的一部分),其網路架構如下所示:
備註:lvs對外暴露的公網ip叫做「vip」。
nat模式
nat(network address translation)網路位址轉換,即將乙個ip位址轉換為另乙個ip位址的技術,如下圖所示:
lvs接收到請求,根據排程演算法得到實際伺服器,假設其位址為rip;
lvs將資料報的目標位址從vip改為rip,並**到實際伺服器;
實際伺服器處理完成後返回響應資料報,其源位址為rip,目標位址為cip;
lvs收到響應資料報後,將其源位址改為vip,然後傳送到公網;
缺點:nat模式下所有的請求和響應都會經過lvs,lvs容易成為系統的效能瓶頸。
dr模式
dr(direct routing)直接路由,lvs只負責請求的排程,響應由真實伺服器直接返回給客戶端,以此提高吞吐量(依據是大多數網路請求都是請求報文短而響應報文長),如下圖所示:
lvs接收到請求,根據排程演算法得到實際伺服器rs;
lvs將資料報的mac位址改為際伺服器rs的mac位址,並**給rs;
實際伺服器處理完成後直接給客戶端返回響應資料報;
tun模式
ip隧道技術是將乙個ip資料封裝成另乙個ip資料報的技術。
lvs接收到請求,根據排程演算法得到實際伺服器rs;
lvs將資料報封裝成新的資料報,其目標位址為rs的位址,源位址為vip,並**給rs;
實際伺服器處理完成後直接給客戶端返回響應資料報;
備註:tun模式需要作業系統支援ip隧道技術。
輪詢(round robin, rr)
lvs將外部請求按順序依次分配到集群中的每台機器上,均等對待每一台機器,不管伺服器上實際的連線數和系統負載。
加權輪詢(weighted round robin, wrr)
lvs根據伺服器的不同處理能力來排程訪問請求,這樣可以保證處理能力強的伺服器處理更多的訪問流量。
最少連線(least connections, lc)
lvs動態地將網路請求排程到已建立連線最少的伺服器上。
加權最少連線(weighted least connections, wlc)
權重高的伺服器承受更多的連線,適用於伺服器配置差異較大的場景。
源位址雜湊(source hashing, sh)
將請求的源ip位址作為key進行hash,從靜態分配的雜湊表中找出對應伺服器。
目標位址雜湊(destination hashing, dh)
將請求的目標ip位址作為key進行hash,從靜態分配的雜湊表中找出對應伺服器。
目前主要使用ipvsadm命令配置lvs
參考:
負載均衡之lvs
集群 cluster 將一組計算機軟 硬體連線起來,高度緊密的協作完成計算工作,其中的單個計算機通常稱為節點。負載均衡集群 load balancing 通過負載均衡器,將負載盡可能平均分攤處理。lvs linux virtul server linux虛擬服務,分為三層結構 排程器 上面的虛擬ip...
負載均衡之LVS詳解
負載均衡 四層負載均衡 lvs 之前也寫過相關的文章,但是寫的太爛了。自己都不也敢直視。現在有空決定重新全面學習了下lvs.總結出本部落格。好了,其他的不多說了,我們開始吧。一 負載均衡 負載均衡包括如下 1 硬體負載均衡 f5,big ip citrix,netscaler a102 軟體負載均衡...
負載均衡之LVS詳解
負載均衡 四層負載均衡 lvs 之前也寫過相關的文章,但是寫的太爛了。自己都不也敢直視。現在有空決定重新全面學習了下lvs.總結出本部落格。好了,其他的不多說了,我們開始吧。一 負載均衡 負載均衡包括如下 1 硬體負載均衡 f5,big ip citrix,netscaler a102 軟體負載均衡...