Linux負載均衡LVS原理技術詳細講解

2021-09-13 11:22:39 字數 2602 閱讀 4916

lvs在基本的生產環境中,都會同時執行在二台硬體相近的伺服器上:lvs router(主 lvs ),乙個作為備份lvs(備份 lvs )。

主 lvs 伺服器在**的前端起二個作用:

(1. 均衡負載壓力到真實伺服器(如apache)上.

(2. 檢查後面真實伺服器提供的服務是否正常.

備份lvs 用來監控主lvs和備份主伺服器,在當故障出現時主lvs 宕機 fail 掉了以後,就會啟動自己來接管主 lvs 的工作。

基中有乙個叫 pulse (心跳服務) 執行在主lvs和備份lvs上。在備份 lvs 上,每秒 pulse 傳送乙個心跳(heartbeat)到主lvs的外網介面檢查主lvs的服務是否正常。當然在主lvs上,也有pulse服務,它主要是響應備份lvs的心跳。

lvs程序呼叫 ipvsadm工具(redhat開發)去配置和維護 ipvs 路由表,它會為每乙個在真實伺服器上的虛擬服務啟動乙個nanny程序。每乙個nanny程序去檢查真實伺服器上的服務狀態,如果有異常.就會將故障情況通知lvs程序。當故障時,lvs程序通知 ipvsadm 在 ipvs 路由表中將此節點刪除。當然,它發現故障的機器恢復時也能自動的加入到服務中來.

如果備份lvs未收到來自於主lvs的響應,它將呼叫send_arp將虛擬ip位址再分配到備份lvs的公網介面上。並在公網介面和區域網介面上分別傳送乙個命令去關掉主lvs上的lvs程序。同時啟動自己的lvs程序來排程客戶端請求。

象平時在大中型**的伺服器架構,基本就象上面一樣.上面是乙個伺服器組提供同一種服務,如image的服務.

如上所示,最前面是一組主備lvs伺服器,他們由心跳聯絡在一起 .接下來是一組功能相同的real server伺服器.有可能是apache,nginx, squid之類的伺服器.在接下來是一組應用伺服器,應用伺服器用的 redhat cluster 組成.最後,給所有的**將資料放到乙個網路檔案系統nfs and 分布檔案系統gfs上做shared storage,用來提供所有的real server同時讀寫。當然,你也可以用san的儲存伺服器

針對不同的網路服務需求和伺服器配置,ipvs排程器實現了如下八種負載排程演算法:

1. 輪調(round robin)

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

2.加權輪叫(weighted round robin)

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

3.最少鏈結(least connections)

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

4.加權最少鏈結(weighted least connections)

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

5.基於區域性性的最少鏈結(locality-based least connections)

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

6.帶複製的基於區域性性最少鏈結(locality-based least connections with replication)

"帶複製的基於區域性性最少鏈結"排程演算法也是針對目標ip位址的負載均衡,目前主要用於cache集群系統。它與lblc演算法的不同之處是它要維護從乙個目標ip位址到一組伺服器的對映,而lblc演算法維護從乙個目標ip位址到一台伺服器的對映。該演算法根據請求的目標ip位址找出該目標ip位址對應的伺服器組,按"最小連線"原則從伺服器組中選出一台伺服器,若伺服器沒有超載,將請求傳送到該伺服器,若伺服器超載;則按"最小連線"原則從這個集群中選出一台伺服器,將該伺服器加入到伺服器組中,將請求傳送到該伺服器。同時,當該伺服器組有一段時間沒有被修改,將最忙的伺服器從伺服器組中刪除,以降低複製的程度。 7.目標位址雜湊(destination hashing)

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

8.源位址雜湊(source hashing)

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

LVS負載均衡原理

實現lvs負載均衡 方式有三種,分別為nat dr tun模式,lvs常見演算法包括rr lc wrr wlc等 lvs nat原理 使用者請求lvs到達director,director將請求的報文的目標ip位址改成後端的realserver ip位址,同時將報文的目標埠也改成後端選定的reals...

Linux 負載均衡 LVS

1 介紹nat模式 優點 可以簡單快速配置負載均衡 缺點 單機器有瓶頸 附屬機器的閘道器 gateway 必須是主機內網ip 2 安裝 yum install y ipvsadm3 新建指令碼 bin bash director 伺服器上開啟路由 功能 echo 1 proc sys net ipv...

Linux負載均衡LVS原理技術詳細講解

lvs在基本的生產環境中,都會同時執行在二台硬體相近的伺服器上 lvs router 主 lvs 乙個作為備份lvs 備份 lvs 主 lvs 伺服器在 的前端起二個作用 1.均衡負載壓力到真實伺服器 如apache 上.2.檢查後面真實伺服器提供的服務是否正常.備份lvs 用來監控主lvs和備份主...