lvs工作原理可以簡單理解為:
lvs工作在核心空間,本身工作在input鏈上,與iptable不能同時用。
lvs: ipvsadm :管理集群服務的工具,用來寫規則
ipvs 工作在核心。
工作原理:
1)當使用者向負載均衡器發出請求時,排程器將請求發往核心空間
2)prerouting鏈會首先接收使用者的請求判斷目標ip確定時本機ip,將資料報發往input鏈
3)ipvs是工作在inut鏈上的,當使用者請求到達input時,ipvs會將使用者請求和自己定義好的集群服務進行對比,如果使用者請求的技術定義好的集群服務,那麼此時ipvs會強行修改資料報的目標ip位址及埠,並將新的資料報發往postroting鏈
4)postrouting鏈接收資料報後發現目標ip位址剛好是自己的後端伺服器,那麼此時通過選路將資料報最終傳送給後端的伺服器。
原理:把客戶端發來的ip包的ip頭目的位址在dr上的其中一台real server的ip位址,併發至此real server,而real server在處理完以後把資料經過dr主機發回客戶端,dr在這時再把資料報的原ip位址改為dr介面上的ip位址即可,期間,無論是進來的流量還是出去的流量都要經過dr。
特點:1)集群點跟directory必須工作在同乙個ip的網路中
2)rlp通常是私位址。僅用於各集群節點間的通訊
3)directory位於client和real server之間,並負責處理進出的所有通道。
4)real server必須將閘道器執行dip
5)directory支援埠對映
6)real server可以使用任何型別的作業系統
當集群中的節點數量增加到一定程度時,director將變成網路通訊的乙個瓶頸,因為來自集群節點的所有的回覆資料報必須通過director。
類似於vpn的方式,使用網路分層的原理,從客戶端發來的資料報的基礎上,封裝乙個新的ip頭做標記(不完整的ip頭,只有目的ip部)發給real server,real server收到後,先把dr發過來的資料報的頭給解開,還原起資料報的原樣,處理後直接返回客戶端,不需要經過dr.
需要注意的是:由於real server需要對dr發過來的資料報進行還原,也就是必須支援iptunnel協議,所以在real server的核心中,必須編譯支援iptunnel這個選項。
1)集群節點可以跨越internet
2)rip必須是公網位址
3)directory僅負責處理入站請求,行影報文則有real server直接發往客戶端
4)real server閘道器不能指向directory
5)只有支援的隧道功能的os才能用於real server。
6)不支援埠對映
前兩種都是工作在網路層(三層),而直接路由模式的應該工作在資料鏈路層。原理為dr和real server都使用同乙個ip對外服務,但只有dr對arp請求進行響應,所有real server對本身的這個ip的arp請求保持靜默,也就是說閘道器會對這個服務ip請求全部定向到dr,而dr收到資料報後會根據演算法,找出對應的real server,把目的mac位址改為real server位址並發給這台real server。這時real server收到這個資料報,則等於直接從客戶端收到這個資料報無疑,處理後直接返回客戶端。
由於dr要對二層包頭進行改換,所以dr和real server之間必須在乙個廣播域,也可以理解為在一台交換機上。
特點:1)各集群節點跟directoy必須在同乙個物理網路中
2)rlp可以使用公網位址,實現遠端監控管理。
3)directory僅負責處理入站請求,響應報文則有real server直接發往客戶端
4)real server 閘道器不能 指向dip,而是直接指向前端閘道器;
5)directory不支援埠對映
6)direcotry能夠處理更多的real server.
1)輪詢排程:
輪流分配到集群中的真實伺服器上
2)加權輪訓排程
根據伺服器的不同處理能力來排程訪問請求,處理能力強的伺服器處理更多的訪問流量
3)最小連線排程
把請求排程到已建立連線數最小的伺服器上
4)加權最小連線排程
具有較高權值的伺服器將承受較大比例的活動連線負載,排程器可以自動詢問真實伺服器的負載情況,並動態調整其權值。
5)基於區域性性的最小連線
目前主要用於cache集群系統,該演算法根據請求的目標ip位址找出該目標的ip位址最近使用的伺服器,若該伺服器是可用的且沒有超載,將請求傳送至該伺服器,若伺服器不存在或該伺服器超載,則用最小連線的原則選出乙個可用的伺服器,將請求傳送到該伺服器。
6)帶複製的基於區域性性的最小連線
目前用於cache集群系統,它與lblc演算法不同之處在於他要維護乙個目標ip位址到一組伺服器的對映,而lblc演算法維護從乙個目標ip位址到一台伺服器的對映,該演算法根據請求的ip位址找到該目標ip位址對應的伺服器組,按「最小鏈結」原則從這個伺服器組中選出一台伺服器,將該伺服器加入到伺服器組中,將請求傳送到該伺服器,若該伺服器超載,按「最小鏈結原則」原則從這個集群中選出一台伺服器,將伺服器加入到伺服器組中,將請求傳送到該伺服器,同時,當該伺服器組中有一段時間沒有被修改,將最忙的伺服器從伺服器組中刪除,以降低複製程度。
7)目標位址雜湊
根據請求的目標ip位址,作為雜湊鍵從靜態分配的雜湊表中找出對應的伺服器,若該伺服器可用無超載,將請求發給該伺服器,否則返回為空。
8)源位址雜湊排程
將請求的源ip位址作為雜湊鍵,從靜態分配的雜湊表中找出對應的伺服器,若該伺服器是可用的且沒有超載,就將請求傳送到該伺服器,否則返回空
分享:
LVS負載均衡工作模式和排程演算法
一 lvs簡介 lvs linux virtual server 即linux虛擬伺服器,是由章文嵩博士主導的開源負載均衡專案,目前lvs已經被整合到linux核心模組中。該專案在linux核心中實現了基於ip的資料請求負載均衡排程方案,其體系結構如圖1所示,終端網際網路使用者從外部訪問公司的外部負...
LVS排程演算法
演算法 說明 rr 輪詢排程 round robin 它將請求一次分配不同的 rs,也就是在rs中均攤請求,演算法簡單,但是只適合於rs處理效能相差不大的情況 多個伺服器硬體配置差不多 wrr加權輪詢排程 weighted round robin 它根據rs不同的權值分配任務,權值高的rs優先獲得請...
LVS 排程演算法
排程器通過 輪叫 排程演算法將外部請求按順序輪流分配到集群中的真實伺服器上,它均等地對待每一台伺服器,而不管伺服器上實際的連線數和系統負載。排程器通過 加權輪叫 排程演算法根據真實伺服器的不同處理能力來排程訪問請求。這樣可以保證處理能力強的伺服器能處理更多的訪問流量。排程器可以自動問詢真實伺服器的負...