LVS產生背景、原理及LVS-DR應用實例(一)

一、什么是lvs? 它產生的背景,使用場景是什么?

 

   LVS(Linux Virtual Server) 可以理解為一個虛擬服務器系統

      Internet的飛速發展,網絡帶寬的增長,Web服務中越來越多地使用CGI、動態主頁等CPU密集型應用,這對服務器的性能有較高要求,單臺服務器已經無法滿足需要,所以集群自然的成為一種解決方案,而LVS便是其中的一種集群方案。

    集群(Cluster)是一組相互獨立的、通過高速網絡互聯的計算機,它們構成了一個組,并以單一系統的模式加以管理。一個客戶與集群相互作用時,集群像是一個獨立的服務器。集群配置是用于提高可用性和可縮放性。集群系統的主要優點:高可擴展性、高可用性、高性能、高性價比。

    常見集群類型及實現方式簡介   
        LB:Load Balancing 高可拓展,伸縮集群
        HA:High Availability 高可用集群
        HP:High Performance 高性能集群
        LB:Load Balancing 

        硬件級:F5 BIG-IP、Citrix Netscaler、 A10 A10、Array、Redware
        軟件級:lvs (傳輸層)、haproxy, nginx (應用層)
        HA:高可用,heartbeat 、corosync + pacemaker、 cman +             rgmanager、cman + pacemaker、keepalived
        HP:高性能
            hadoop
      LVS項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。通過LVS提供的負載均衡技術和Linux操作系統可實現一個高性能、高可用的服務器群集,從而以低成本實現最優的服務性能。
 

    lvs能夠實現在大并發的情況下,將前端調度器收到的請求分發給后端服務器處理,實現了負載均衡集群的作用。

      注:更多信息:LVS是國內貢獻給開源組織的一個最優秀的項目之一,該項目創始人和主要開發人是章文嵩博士,目前就職于阿里巴巴,改項目及具體介紹請參見網站:http://www.linuxvirtualserver.org/zh/lvs1.html

 

 二、LVS的構成和內核

    LVS是作為一個前端(Director)存在的,又稱為調度器,它本身不提供任何的服務,只是將通過互聯網進來的請求接受后再轉發給后臺真正的服務器(RealServer)進行處理,然后響應給客戶端。 

     LVS有兩個重要的組件:一個是IPVS,一個是IPVSADM

         ipvsLVS的核心組件,它本身只是一個框架,類似于iptables,工作于內核空間中。

         ipvsadm 是用來定義LVS的轉發規則的,工作于用戶空間中

    內核客戶端的請求流向參見以下示意圖

     內核客戶端的請求流向參見以下示意圖.png

 

 

三、LVS調度算法

 
靜態方法:僅根據調度算法本身進行調度    

   

    rr: round robin,輪流,輪詢,輪叫

    wrr: weighted round robin, 加權輪詢

    sh:source hashing,session綁定

    dh: destination hashing, 目標地址hash

 

動態方法:根據算法及各RS當前的負載狀況進行調度

 

    lc: least connection,最少連接

    wlc: weighted lc,加權最少連接

    sed: shortest expection delay,最少期望延遲

    nq: never queue,永不排隊

    lblc: Locality-Based Least Connection,基于局部性的最少連接 

    lblcr:Replicated lblc,基于局部性的帶復制功能的最少連接

 

四:LVS 的安裝、配置,使用命令詳解

 

 LVS安裝(ipvsadm)

 

#yum -y install ipvsadm   

      安裝ipvsadm 

#echo 1 > /proc/sys/net/ipv4/ip_forward

      打開系統的轉發功能,也即路由功能

#ipvsadm -A -t 181.163.10.8 :80  -s  rr

    添加一個集群服務,指定 vip,端口80,調度算法:rr 輪詢

 

#ipvsadm -a -t 181.163.10.8:80   -r 181.163.10.9:80    -g

     添加一個節點到集群服務,指定指定節點IP,端口,模式為-g:DR 模式

 

#ipvsadm -a -t 181.163.1.10:80   -r 181.163.10.10:80    -g

     添加一個節點到集群服務,指定指定節點IP,端口,模式為-g:DR 模式 

 

    LVS  ipvsad    命令格式

 

         Ipvsadm     -A|E -t|u|f service-address [-s scheduler]

              [-p   [timeout]] [-M netmask]

      ipvsadm -D   -t|u|f service-address

      ipvsadm -C

      ipvsadm -R

      ipvsadm -S   [-n]

      ipvsadm   -a|e -t|u|f service-address -r server-address

              [-g|i|m] [-w weight] [-x upper] [-y lower]

      ipvsadm -d   -t|u|f service-address -r server-address

      ipvsadm   -L|l [options]

      ipvsadm -Z   [-t|u|f service-address]

      ipvsadm   –set tcp tcpfin udp

      ipvsadm   –start-daemon state [–mcast-interface interface]

                [–syncid syncid]

      ipvsadm   –stop-daemon state

      ipvsadm -h

 

    LVS  ipvsad  命令詳解

 

      定義集群服務:

        -A 添加一個集群服務

        -D 刪除一個集群服務

        -E 修改一個集群服務

        -t VIP:端口 定義集群服務的類型為TCP的某個端口

        -u VIP:端口 定義集群服務的類型為UDP的某個端口

        -f 防火墻標記 定義集群服務的類型為防火墻標記

        -s 調度算法 指定集群服務的調度算法

 

    定義集群節點:

        -a 添加一個節點到集群服務

    -d 從集群服務中刪除一個節點

    -e 修改集群服務器中的節點

    -r 節點IP:端口  定義節點的IP及類型

    -m 定義為NAT模型

    -g 定義為DR模型

    -i 定義為TUN模型

    -w 權重 定義服務器的權重

 

    查看已經定義的集群服務及RS:

        ipvsadm -L -n

        -c: 查看各連接

        –stats: 統計數據

        –rate: 速率

        –exact: 精確值

 

    從集群服務中刪除RS:

        ipvsadm -d -t|u|f service-address -r server-address

     刪除集群服務:

        ipvsadm -D -t|u|f service-address

    清空所有的集群服務:

        ipvsadm -C

     保存集群服務定義:

        ipvsadm -S > /path/to/some_rule_file

        ipvsadm-save > /path/to/some_rule_file

      讓規則文件中的規則生效:

        ipvsadm -R < /path/from/some_rule_file

        ipvsadm-restore < /path/from/some_rule_file

 

五、LVS四種工作模式與對比

        1、LVS-DR   
        LVS-DR模式,直接路由模式, 調度器與實際服務器都有一塊網卡連在同一物理網段上
    lvs-DR模型是lvs的默認模型,也是企業中用到的最多的模型
解讀:直接路由模型,每個Real Server上都有兩個IP:VIP和RIP,但是VIP是隱藏的,就是不能提高解析等功能,只是用來做請求回復的源IP的,Director上只需要一個網卡,然后利用別名來配置兩個IP:VIP和DIP ### Director在接受到外部主機的請求的時候轉發給Real Server的時候并不更改目標地址,只是通過arp解析的MAC地址進行封裝然后轉給Real Server,Real Server在接受到信息以后拆除MAC幀封裝,然后直接回復給CIP

   LVC-DR.png

 

        2、 LVS-TUN 

        LVS-TUN模式,ip隧道模式,可以運用于異地機房的負載調度上
解讀:隧道模型,跟DR模型比較相似,都是由rs直接回復給cs .跟dr模型不同的是,vs和rs之間可以存在路由,原因是tun模型在報文源ip和目的ip后又加入了一層源ip和目的ip的信息。  LVC-TUN.png

 

        3、 LVS-NAT  

         LVS_NAT模型,通常應用與rs較少,rs節點無要求,端口轉換的場景
    解讀:地址轉換模型,vs通過修改目的ip將報文發送到rs.rs通過dip網關將報文發給vs,vs再將報文的源ip進行修改發送給客戶端。

       LVC-NAT.png

 

      4、LVS-FULLNAT

    全地址轉換模型,主要應用與rs和vs不在同一網絡的情景
    解讀:vs接收到client發送的報文后,修改報文中的源ip和目的ip為dip和rip.rs將報文返回vs后vs再將報文中的源ip和目的ip改為vip和cip.LVC-FULLNAT.png    

 注:本文參考:N22-深圳-曉志, 章文嵩項目信息

原創文章,作者:Acheng,如若轉載,請注明出處:http://www.www58058.com/54255

(1)
AchengAcheng
上一篇 2016-10-28
下一篇 2016-10-29

相關推薦

  • ip子網劃分

    ip子網劃分 人們為了通信方便,給每臺計算機分配了一個類似我們電話號碼一樣的標識地址。IP就好比一個人的指紋一樣,在INTERNET中是獨一無二的(公網中)。我們可以通過ip查詢到使用該ip的主機。 現在的IP分為ipv4和ipv6。前者是32位二進制組成,為了防止IP不夠用由此研發出后者ipv6,ipv6是由128位二進制組成。ipv6中包含ip的數量相當…

    Linux干貨 2017-07-01
  • Linux命令格式、獲取幫助、文件系統

    一、Linux的命令     (一)、概念和意義:             發起一個命令:請求內核將某個二進制程序運行為一個進程;      &nbs…

    Linux干貨 2016-08-15
  • 高級變量-有類型變量

    一.高級變量用法– 有類型變量   Shell 變量一般是無類型的,但是bash Shell 提供了declare和 typeset 兩個命令用于指定變量的類型,兩個命令是等價的 declare [ 選項]  變量名 -r  將變量設置為只讀屬性 -i  將變量定義為整型數 -a  將變量定義為數…

    Linux干貨 2016-11-24
  • vim用法詳解

    vim編輯器:文本編輯器: 文本:純文本,ASCII text;Unicode 文本編輯器種類:     行編輯器:sed     全屏編輯器:nano,vi   vi:visual interface vim:vi improv…

    Linux干貨 2016-08-15
  • 磁盤管理之MBR,GPT的概念及MBR和GPT分區工具的使用

    一,概述 設備文件 I/O ports: I/O設備地址 一切皆文件 open() read() write()close() 設備類型: 塊設備:block,存取單位“塊”,磁盤 字符設備:char,存取單位”字符“,鍵盤 塊設備和字符設備的區別 塊設備可以隨機訪問,字符設備必須連續訪問,如,/dev/null 塊設備有緩存,字符設備沒有緩存,因為字符設備…

    Linux干貨 2016-09-06
  • 軟件包管理

    1.程序包管理器 源代碼–>目標二進制格式–>組織稱為一個或有限幾個“包”文件;     安裝、升級、卸載、查詢、校驗 程序包管理器: debian(Ubuntu):dpt,工具:dpkg,程序包以“.deb”結尾 redhat:redhat package manager&nbsp…

    Linux干貨 2016-08-21

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-11-02 16:11

    完成的非常好,給出了詳細操作步驟,能把排版在完善一下就更完美了,加油!

欧美性久久久久