LVS介紹

来源:https://www.cnblogs.com/shenxm/archive/2018/02/23/8461024.html
-Advertisement-
Play Games

LVS介紹 LVS LVS體系架構 LVS的基本原理 LVS的四種負載均衡模式 LVS的十種調度演算法 LVS的優缺點 ...


LVS介紹

LVS

    LVS是Linux Virtual Server的簡稱,也就是Linux虛擬伺服器, 是一個由章文嵩博士發起的自由軟體項目,它的官方站點是www.linuxvirtualserver.org。
    現在LVS已經是 Linux標準內核的一部分,在Linux2.4內核以前,使用LVS時必須要重新編譯內核以支持LVS功能模塊,但是從Linux2.4內核以後,已經完全內置了LVS的各個功能模塊,無需給內核打任何補丁,可以直接使用LVS提供的各種功能。
    使用LVS技術要達到的目標是:
        通過LVS提供的負載均衡技術和Linux操作系統實現一個高性能、高可用的伺服器群集,它具有良好可靠性、可擴展性和可操作性,從而以低廉的成本實現最優的服務性能。
        以低廉的成本實現最優的服務性能。
    LVS自從1998年開始,發展到現在已經是一個比較成熟的技術項目了,可以利用LVS技術實現高可伸縮的、高可用的網路服務,例如WWW服務、Cache服務、DNS服務、FTP服務、MAIL服務、視頻/音頻點播服務等等。
    LVS是一套開源組件,用於實現負載均衡,其工作於內核空間,四層轉發或四層路由,即在傳輸層轉發。
    由於LVS工作在內核空間,突破了套接字數量限制,所以工作性能極強。
    若內核優化得當,經測試最高能併發轉發400w條各種請求。

LVS體系架構

    最前端的為負載均衡層(loader balancer)
        由一臺或多台負載調度器(director server)組成,LVS模塊就安裝在其上面,主要作用類似一個路由器,將用戶請求分發給server array層的real server。
        director server上還安裝著對real server服務的監控模塊ldirectord,來檢測各個real server的健康狀態,在其不可用時在LVS路由表上刪除,在其可用時在LVS路由表上重新加入。
    中間的伺服器集群層(server array)
        由一組實際運行應用服務的機器組成,real server可以是web伺服器、mail伺服器、ftp伺服器、dns伺服器等中的一個或多個,real server之間通過LAN或分別在各地的WLAN連接。
    最底層的數據共用存儲層(shared storage)
        由磁碟陣列等存儲設備組成,是為所有的real server提供共用存儲空間和內容一致性的存儲區域。
        可採用集群文件系統來共用數據。
    總體來看
        負載調度器(director server)是整個LVS的核心,支持其的操作系統有Linux和Free BSD。

LVS的基本原理

    LVS根據請求報文的目標IP 和目標協議及埠將其調度轉發至某RS,根據調度演算法來挑選RS。
    RS間可通過區域網或廣域網連接。
    當用戶的請求發送到虛擬伺服器,LB根據設定的包轉發策略和負載均衡調度演算法將用戶請求轉發給RS。
    RS再將用戶請求結構返回給用戶。
    同請求包一樣,應答包的返回方式也與包轉發策略有關。
    LVS的這種結構對用戶來說是透明的,用戶只能看見一臺作為LB的虛擬伺服器(Virtual Server),而看不到提供的服務的RS群。
    LVS不需要打開文件,直接在內核轉發,沒有套接字(16位,65535個最大連接)的限制,不用維護套接字文件,不用維護套接字。

LVS的四種負載均衡模式

    NAT 模式:網路地址轉換
    DR 模式:直接路由
    TUN模式:封裝新IP頭實現轉發
    FULLNAT模式:修改請求報文的源和目標IP
    lvs-nat 與lvs-fullnat :請求和響應報文都經由Director
        lvs-nat :RIP 的網關要指向DIP,修改請求報文的目標IP, 多目標IP的DNAT(目標地址轉換)
        lvs-fullnat :RIP 和DIP 未必在同一IP 網路,但要能通信,修改請求報文的源和目標IP
    lvs-dr 與lvs-tun :請求報文要經由Director,但響應報文由RS直接發往Client
        lvs-dr :通過封裝新的MAC 首部實現,通過MAC 網路轉發
        lvs-tun :通過在原IP 報文外封裝新IP頭實現轉發,支持遠距離通信

LVS的十種調度演算法

    靜態調度
        RR(Round Robin):輪詢調度
        WRR:weight,加權輪詢(以權重之間的比例實現在各主機之間進行調度)
        SH:source hashing,源地址散列。主要實現會話綁定,能夠將此前建立的session信息保留了
        DH:Destination hashing:目標地址散列。把同一個IP地址的請求,發送給同一個server。
    動態調度
        LC(Least-Connection):最少連接
        WLC(Weighted Least-Connection Scheduling):加權最少連接。
        SED(Shortest Expected Delay):最短期望延遲
        NQ(never queue):永不排隊(改進的sed)
        LBLC(Locality-Based Least Connection):基於局部性的最少連接
        LBLCR(Locality-Based Least Connections withReplication):帶複製的基於局部性最少鏈接

LVS的優缺點

    LVS的優點是:
        1、抗負載能力強。
            是工作在網路4層之上僅作分發之用,沒有流量的產生,這個特點也決定了它在負載均衡軟體里的性能最強的,對記憶體和cpu資源消耗比較低。
        2、配置性比較低。
            這是一個缺點也是一個優點,因為沒有可太多配置的東西,所以並不需要太多接觸,大大減少了人為出錯的幾率。
        3、工作穩定。
            因為其本身抗負載能力很強,自身有完整的雙機熱備方案,如LVS+Keepalived,不過我們在項目實施中用得最多的還是LVS/DR+Keepalived。
        4、無流量。
            LVS只分發請求,而流量並不從它本身出去,這點保證了均衡器IO的性能不會收到大流量的影響。
        5、應用範圍比較廣。
            因為LVS工作在4層,所以它幾乎可以對所有應用做負載均衡,包括http、資料庫、線上聊天室等等。
    LVS的缺點是:
        1、軟體本身不支持正則表達式處理,不能做動靜分離。
            而現在許多網站在這方面都有較強的需求,這個是Nginx/HAProxy+Keepalived的優勢所在。
        2、如果是網站應用比較龐大的話,LVS/DR+Keepalived實施起來就比較複雜了,特別後面有Windows Server的機器的話,如果實施及配置還有維護過程就比較複雜了,相對而言,Nginx/HAProxy+Keepalived就簡單多了。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、Linux簡單介紹 二、虛擬機Linux中常用介紹 上一篇博文記錄瞭如何在虛擬機中安裝centOS,但是因為使用windows習慣了,所以記錄一下centOS常用的界面圖標 【註意】虛擬機的Linux中有一個比較坑的地方,那就是如果需要大寫,需要按住shift不放,然後輸入字元......筆者因 ...
  • 環境: win10 64位 Virtualbox 5.1.30 ubuntu-16.04.3-server-amd64.iso 1. 安裝好ubuntu後,打開virtualbox安裝路徑文件夾,找到VBoxGuestAdditions.iso(增強包)。如圖: 2. 點擊滑鼠右鍵,選擇裝載,就會看 ...
  • HTTP 2.2 ...
  • apache apache介紹 apache的特性 apache的功能 apache優缺點 httpd介紹 https :http over ssl ...
  • 一、在虛擬機中安裝Linux 1.1安裝虛擬機 雙擊VMWare Workstation Pro軟體,點擊下一步: 點擊同意協議,下一步: 自定義安裝的目錄,點擊下一步:(暫時先不勾選增強型.....) 不要更新了,避免麻煩,畢竟是用的破解的,點擊下一步: 創建桌面快捷方式,點擊下一步: 點擊安裝: ...
  • 持續連接 session保存機制(會話機制) LVS的高可用 ...
  • centos 7 下配置環境變數,不用在每次開機後運行命令source : 之前配置環境變數在 /etc/profile 後面添加路徑,但是每次開機後要source /etc/profile 才能使用命令。用以下方法可以直接使用: 編輯/etc/environment文件,在裡面更改PATH環境變數 ...
  • LVS的負載均衡 LVS負載均衡機制 lvs nat 模式 lvs tun 模式 LVS DR模式 lvs fullnat 模式 負載均衡實現 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...