0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

LVS是什么?LVS的四種模式與十種調(diào)度算法介紹

阿銘linux ? 來源:阿銘linux ? 2023-02-17 09:18 ? 次閱讀

LVS是什么?

LVS是基于4層的負載均衡技術,它是Linux內(nèi)核的一個模塊。

LVS的四種模式:

1)NAT模式

客戶端訪問LVS時,LVS通過重寫請求報文的目標地址,且根據(jù)預設的調(diào)度算法,將請求分派給后端真實服務器,真實服務器接收到請求處理后,發(fā)出響應報文也需要通過LVS返回,返回時需要修改報文的源地址,然后返回給客戶,完成整個負載調(diào)度過程。

NAT 模式就是使用 SNAT(目標地址轉換,改變的是目標地址) 和 DNAT(源地址轉換,改變的是源地址) 技術完成報的轉發(fā),NAT 方式可支持任何的操作系統(tǒng),以及私有網(wǎng)絡,并且只需一個 Internet IP 地址,非常節(jié)省成本,但是整個系統(tǒng)的性能受到限制。

因為執(zhí)行 NAT 每次需要重寫數(shù)據(jù)包,有一定的延遲,另外,大部分應用有 80%的數(shù)據(jù)是從服務器流向客戶機,也就是用戶的請求非常短,而服務器的回應非常大,對LVS形成很大壓力,容易成為瓶頸。

788d03e2-ae4e-11ed-bfe3-dac502259ad0.png

2)IP TUN模式

IP TUN(IP Tunneling 即 IP隧道)當 LVS 分配請求到不同的 real server,real server 處理請求后直接回應給用戶,這樣 LVS 僅處理客戶機與服務器的一半連接。IP TUN 技術極大地提高了 LVS 的調(diào)度處理能力,同時也極大地提高了系統(tǒng)能容納的最大節(jié)點數(shù),可以超過 100 個節(jié)點。

real server 可以在任何 LAN 或 WAN 上運行,這意味著允許地理上的分布,這在災難恢復中有重要意義。但此模式要求所有服務器必須支持 IP 隧道協(xié)議,因此只能在 linux 下使用,在 windows 無法使用此模式下,關鍵步驟:LB會重新封裝從客戶端發(fā)來的包,封裝后的包目標IP為其中一個Real Server。

78a16738-ae4e-11ed-bfe3-dac502259ad0.png

3)DR模式

DR(即 Direct Routing 直接路由)與 IP TUN 類似,負載均衡器僅處理一半的連接,避免了新的性能瓶頸,同樣增加了系統(tǒng)的可伸縮性,DR 與 IP TUN 相比,沒有 IP 封裝的開銷,但由于采用物理層(修改 MAC地址)技術,所有服務器都必須在同一個局域網(wǎng) DR 與 IP TUN 相比,沒有 IP 封裝的開銷,但由于采用數(shù)據(jù)鏈路層(修改 MAC地址)技術,所有服務器都必須在一個物理網(wǎng)段。

此模式下,關鍵步驟:LB會修改從客戶端發(fā)過來的包里的MAC地址,將MAC地址修改為其中某一個Real Server的mac地址。

78c52c0e-ae4e-11ed-bfe3-dac502259ad0.png

4)FULL NAT模式

這種模式為NAT模式的升級版。 傳統(tǒng)的NAT模式,LB和RS必須在同一個VLAN下,否則LB無法作為RS的網(wǎng)關。 這引發(fā)的兩個問題是:

同一個 VLAN的限制導致運維不方便,跨VLAN的RS無法接入。

當RS橫向擴容時,總有一天其上的單點LB會成為瓶頸。

Full-NAT解決的是LB和RS跨VLAN的問題,而跨VLAN問題解決后,LB和RS不再存在VLAN上的從屬關系,可以做到多個LB對應多個RS,解決水平擴容的問題。 Full-NAT相比NAT的主要改進是,在SNAT/DNAT的基礎上,加上另一種轉換,轉換過程如下:

在包從LB轉到 RS 的過程中,源地址從客戶端IP被替換成了LVS 的內(nèi)網(wǎng)IP。內(nèi)網(wǎng)IP之間可以通過多個交換機跨VLAN通信。

當RS處理完接收到的包,返回時,會將這個包返回給LB的內(nèi)網(wǎng)IP,這一步也不受限于 VLAN。

LB收到包后,在NAT模式修改源地址的基礎上,再把RS發(fā)來的包中的目標地址從LB內(nèi)網(wǎng)IP改為客戶端的 IP。

Full-NAT主要的思想是把網(wǎng)關和其下機器的通信,改為了普通的網(wǎng)絡通信,從而解決了跨VLAN 的問題。采用這種方式,LB和RS的部署在VLAN上將不再有任何限制,大大提高了運維部署的便利性。

LVS的十種調(diào)度算法:

LVS的調(diào)度算法分為靜態(tài)與動態(tài)兩類。

1)靜態(tài)算法(4種):只根據(jù)算法進行調(diào)度 而不考慮后端服務器的實際連接情況和負載情況

① RR:輪詢調(diào)度(Round Robin) 調(diào)度器通過”輪詢”調(diào)度算法將外部請求按順序輪流分配到集群中的真實服務器上,它均等地對待每一臺服務器,而不管服務器上實際的連接數(shù)和系統(tǒng)負載?

② WRR:加權輪詢(Weight RR) 調(diào)度器通過“加權輪叫”調(diào)度算法根據(jù)真實服務器的不同處理能力來調(diào)度訪問請求。這樣可以保證處理能力強的服務器處理更多的訪問流量。調(diào)度器可以自動問詢真實服務器的負載情況,并動態(tài)地調(diào)整其權值。

③ DH:目標地址hash(Destination Hash ) 根據(jù)請求的目標IP地址,作為散列鍵(HashKey)從靜態(tài)分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發(fā)送到該服務器,否則返回空。

④ SH:源地址 hash(Source Hash) 根據(jù)請求的源IP地址,作為散列鍵(HashKey)從靜態(tài)分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發(fā)送到該服務器,否則返回空?

2)動態(tài)算法(6種):前端的調(diào)度器會根據(jù)后端真實服務器的實際連接情況來分配請求

① LC:最少鏈接(Least Connections) 動態(tài)地將網(wǎng)絡請求調(diào)度到已建立的鏈接數(shù)最少的服務器上。如果集群系統(tǒng)的真實服務器具有相近的系統(tǒng)性能,采用”最小連接”調(diào)度算法可以較好地均衡負載。

② WLC:加權最少連接(默認采用的就是這種)(Weighted Least Connections) 在集群系統(tǒng)中的服務器性能差異較大的情況下,調(diào)度器采用“加權最少鏈接”調(diào)度算法優(yōu)化負載均衡性能,具有較高權值的服務器將承受較大比例的活動連接負載?調(diào)度器可以自動問詢真實服務器的負載情況,并動態(tài)地調(diào)整其權值。

③ SED:最短延遲調(diào)度(Shortest Expected Delay ) 在WLC基礎上改進,Overhead = (ACTIVE+1)*256/加權,不再考慮非活動狀態(tài),把當前處于活動狀態(tài)的數(shù)目+1來實現(xiàn),數(shù)目最小的,接受下次請求,+1的目的是為了考慮加權的時候,非活動連接過多缺陷:當權限過大的時候,會導致空閑服務器一直處于無連接狀態(tài)。

④NQ永不排隊/最少隊列調(diào)度(Never Queue Scheduling NQ) 無需隊列。如果有臺 realserver的連接數(shù)=0就直接分配過去,不需要再進行sed運算,保證不會有一個主機很空閑。在SED基礎上無論+幾,第二次一定給下一個,保證不會有一個主機不會很空閑著,不考慮非活動連接,才用NQ,SED要考慮活動狀態(tài)連接,對于DNS的UDP不需要考慮非活動連接,而httpd的處于保持狀態(tài)的服務就需要考慮非活動連接給服務器的壓力。

⑤ LBLC:基于局部性的最少鏈接(locality-Based Least Connections) 基于局部性的最少鏈接”調(diào)度算法是針對目標IP地址的負載均衡,目前主要用于Cache集群系統(tǒng)?該算法根據(jù)請求的目標IP地址找出該目標IP地址最近使用的服務器,若該服務器是可用的且沒有超載,將請求發(fā)送到該服務器;若服務器不存在,或者該服務器超載且有服務器處于一半的工作負載,則用“最少鏈接”的原則選出一個可用的服務器,將請求發(fā)送到該服務器?

⑥ LBLCR:帶復制的基于局部性最少連接(Locality-Based Least Connections with Replication) 帶復制的基于局部性最少鏈接”調(diào)度算法也是針對目標IP地址的負載均衡,目前主要用于Cache集群系統(tǒng)?它與LBLC算法的不同之處是它要維護從一個目標IP地址到一組服務器的映射,而LBLC算法維護從一個目標IP地址到一臺服務器的映射?該算法根據(jù)請求的目標IP地址找出該目標IP地址對應的服務器組,按”最小連接”原則從服務器組中選出一臺服務器,若服務器沒有超載,將請求發(fā)送到該服務器;若服務器超載,則按“最小連接”原則從這個集群中選出一臺服務器,將該服務器加入到服務器組中,將請求發(fā)送到該服務器?同時,當該服務器組有一段時間沒有被修改,將最忙的服務器從服務器組中刪除,以降低復制的程度。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    9165

    瀏覽量

    85436
  • Mac
    Mac
    +關注

    關注

    0

    文章

    1106

    瀏覽量

    51480
  • LVS
    LVS
    +關注

    關注

    1

    文章

    36

    瀏覽量

    9945
  • LINUX內(nèi)核

    關注

    1

    文章

    316

    瀏覽量

    21651
  • STUN
    +關注

    關注

    0

    文章

    2

    瀏覽量

    5876

原文標題:LVS四種工作模式和十種算法

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問怎么做一個跑馬燈有十種模式,第十種模式有三音樂,可加速減速和無線遙控?

    我現(xiàn)在想做一個跑馬燈,這個跑馬燈有十種模式,第十種模式要求有三音樂。,還得有數(shù)碼管顯示第幾種模式
    發(fā)表于 07-19 04:49

    STM32芯片GPIO的四種輸入模式四種輸出模式

    STM32芯片的GPIO一共有8配置模式,對8模式的理解如下1.四種輸入模式上拉輸入:在默認
    發(fā)表于 05-21 07:55

    非規(guī)則矩形電阻在Calibre LVS中阻值提取

    本文首先介紹了Calibre LVS 的基本流程。在分析了現(xiàn)有的在LVS 過程中電阻版圖阻值提取方法的優(yōu)缺點基礎上提出了一新穎的電阻的提取方法,經(jīng)過Calibre
    發(fā)表于 12-19 15:27 ?32次下載

    基于LVS的動態(tài)反饋調(diào)度算法研究

    LVS集群加權輪叫調(diào)度算法為基礎,根據(jù)客戶對QOS的要求,引入自動控制的單回路反饋控制思想,實現(xiàn)對LVS服務器集群的快速、有效控制。該方案通過對系統(tǒng)內(nèi)服務器的負載情況進行整
    發(fā)表于 07-06 16:40 ?0次下載
    基于<b class='flag-5'>LVS</b>的動態(tài)反饋<b class='flag-5'>調(diào)度</b><b class='flag-5'>算法</b>研究

    二維碼的四種主要應用模式

    本文介紹二維碼主要的四種應用模式,包括讀取數(shù)據(jù)模式、解碼上網(wǎng)模式、解碼驗證模式、解碼通信
    發(fā)表于 01-25 11:52 ?3429次閱讀

    超詳細!使用 LVS 實現(xiàn)負載均衡原理及安裝配置詳解

    是學習 LVS 并對其進行了詳細的總結記錄。 一、負載均衡LVS基本介紹 LB集群的架構和原理很簡單,就是當用戶的請求過來時,會直接分發(fā)到Director Server上,然后它把用戶的請求根據(jù)設置好
    發(fā)表于 01-21 14:01 ?1221次閱讀

    十種不同模式實現(xiàn)簡單的計算案例

    labview作為一開發(fā)語言其實有許多不同的設計模式,大家在學習工作中接觸最多當屬狀態(tài)機,今天我們就通過一個簡單的計算案例用十種不同的模式來實現(xiàn),主要帶領大家了解不同編程
    的頭像 發(fā)表于 10-22 11:47 ?2264次閱讀
    <b class='flag-5'>十種</b>不同<b class='flag-5'>模式</b>實現(xiàn)簡單的計算案例

    四種常見的圖像濾波算法介紹

    濾波算法,并附上源碼,包括自適應中值濾波、高斯濾波、雙邊濾波和導向濾波。 前言 本文介紹四種常見的圖像濾波算法,并附上源碼。圖像濾波是一
    的頭像 發(fā)表于 02-15 09:50 ?1w次閱讀

    基于Cadence軟件DRACULA工具的LVS檢查

    基于Cadence軟件DRACULA工具的LVS檢查(村田電源技術(上海)有限公司深圳分公司)-基于Cadence軟件DRACULA工具的LVS檢查? ? ? ? ? ?
    發(fā)表于 09-18 17:40 ?25次下載
    基于Cadence軟件DRACULA工具的<b class='flag-5'>LVS</b>檢查

    DS75LVS+ DS75LVS+ - (Maxim Integrated) - 溫度傳感器 - 模擬和數(shù)字輸出

    電子發(fā)燒友網(wǎng)為你提供()DS75LVS+相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS75LVS+的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS75LVS+真值表,DS75LVS+管腳等資料,
    發(fā)表于 10-28 10:08
    DS75<b class='flag-5'>LVS</b>+ DS75<b class='flag-5'>LVS</b>+ - (Maxim Integrated) - 溫度傳感器 - 模擬和數(shù)字輸出

    物理驗證LVS對bulk(體)的理解和處理技巧

    對于物理驗證中的LVS,需要對各種物理器件進行SpiceVsGDS的比對,基于現(xiàn)在流行的std-cell的庫的設計方法,LVS需要對CMOS器件多相應的處理
    的頭像 發(fā)表于 06-14 14:41 ?1995次閱讀
    物理驗證<b class='flag-5'>LVS</b>對bulk(體)的理解和處理技巧

    GPIO的四種輸入模式介紹

    32位寄存器共同控制。 輸出和輸入都是針對芯片引腳來講的(即引腳的對外輸出,和外界對引腳的輸入)。 四種輸入模式介紹 輸入模式下可讀取端口的高低電平或電壓。例如各類傳感器(使用ADC功
    的頭像 發(fā)表于 11-09 16:51 ?6593次閱讀
    GPIO的<b class='flag-5'>四種</b>輸入<b class='flag-5'>模式</b><b class='flag-5'>介紹</b>

    基于LVS+Keepalived實現(xiàn)高可用負載均衡

    LVS 是一預裝在 Linux 系統(tǒng)中,基于層、具有強大性能的反向代理服務器。ipvsadm 是 LVS 的命令行管理工具。
    的頭像 發(fā)表于 04-09 12:30 ?1186次閱讀
    基于<b class='flag-5'>LVS</b>+Keepalived實現(xiàn)高可用負載均衡

    介紹MCUboot支持的四種升級模式(2)

    介紹MCUboot支持的四種升級模式,分別是Overwrite、Swap、Direct XIP和加載到RAM中執(zhí)行。由于FSP不支持第四種——加載到RAM中執(zhí)行,因為我們重點
    的頭像 發(fā)表于 06-13 10:56 ?937次閱讀
    <b class='flag-5'>介紹</b>MCUboot支持的<b class='flag-5'>四種</b>升級<b class='flag-5'>模式</b>(2)

    常見的lvs負載均衡算法

    散列(SH)、最短期望延遲(SED)和無需隊列(NQ)等,它們根據(jù)服務器性能、連接數(shù)、請求目標或源IP等因素,實現(xiàn)請求的均衡分配,適用于不同應用場景。 以下是UU云小編對LVS負載均衡算法的詳細介紹
    的頭像 發(fā)表于 12-12 13:50 ?86次閱讀