第十週LINUX 學習筆記

                                    LVS集羣nat丶DR前端

HA:高可用
    平均無端障時間/(平均無端障時間+平均修復時間)
    
    負載均衡

次序
lb(負載)——>ha()
LB
  tcp:lvs,haproxy
  應用層:nginx haproxy ats
  緩存:varnish squied

HA:heartbeat,corosync keeplived iscsi gfs2 drdb
MogileFS
NoSQL:MongoDB


集羣類型:
    LB:Load Banlancing(負載)
        擴展容量,實現伸縮性
    HA:High Availability(高可用)
        服務可用性
    HP:High Performace(高性能)
        向量機
        併發處理集羣

開源方案
    LB:lvs,haproxy,nginx,ats
    HA:
       heartbeat
       corosync+pacemaker
       cman+rgmanager
       cman+pacemaker
       keepalived
       ultramonkey
    HP:hadoop


LB:解決方案
    硬件:
        F5 BIG-IP
        思傑 Citrix Netscaler
        A10 A10
        Array
        Redware
    軟件:lvs
     linux Virtual Server
         章文嵩:正明

    ipvs至關於netfilter,將用戶轉發
       框架,須要依賴以規則完成轉發
       ipvs集羣服務
         定義一個或多個後端的服務器

    ipvsadm

LVS:四層交換、四層路由

VIP:
keepalived
CIP
Director:負載均衡器
real server
DIP:跟real server交互
RIP

CIP<-->VIP--DIP<-->RIP

LVS類型:
    NAT:-->(DNAT)
    DR
    TUN
    FULLNAT

LVS NAT的特性
    1.RS的應該使用私有地址
    2.RS的網關必須指向DIP
    3.RIP和DIP必須在同一網段內
    4.請求和響應的報文都得通過Director,在高負載場景中,Director極可能成爲性能憑藉
    5.支持端口映射
    6.RS可使用任意支持集羣服務的OS
LVS DR類型
    1.讓前段路由將請求發往VIP時,只能是Dirctor上的VIP
        解決方案
        1.靜態地址綁定
            未必有路由器的配置權限
            Director調用時靜態地址綁定將難以使用
        2.arptables
        3.修改linux內核參數,將RS上的VIP配置在lo接口的別名上,限制linux僅對對應接口的ARP請求作相應

LVS DR類型的特性
    1.RS可使用私有地址,還可使用公網地址,此時能夠直接經過互聯網連入RS,以實現配置、監控等
    2.RS的網關必定不能指向DIP
    3.RS跟Dirctory要在同一物理網絡內(不能有路由器分隔)
    4.請求報文通過Directory,但響應報文必定不通過Director
    5.不支持端口映射
    6.RS可使用大多數的操做系統

LVS TUN類型:IP隧道
     1.RIP,DIP,VIP都得是公網地址
     2.RS的網關不會指向也不可能指向DIP
     3.請求報文通過Directory,但響應報文必定不通過Director
     4.不支持端口映射
     5.RS的OS必須得支持隧道功能

LVS的調度方法:10種
 
下午:回顧
  LVS-NAT,DNAT
  LVS-DR(Direct Routing)
  LVS-TUN:(IPIP)
  LNS-FULLNAT


LVS的調度方法:10種
     靜態方法:僅根據算法自己進行調度
         rr:Round Robin 輪詢
         wrr:Weighted RR 權重輪詢
         sh:source hashing    源地址hash
         dh:destination hashing 目標地址hash
      動態方法:根據算法及RS當前的複製狀態
          lc:Least Connection 最少鏈接
              計算當前的負載Overhead=Active*256+Inactive來實現
          wlc:Weighted LC
              Overhead=(Active*256+Inactive)/weight
          sed:Shortest Expect Delay  最短時間望延遲
            Overhead=(Active+1)*256/weight          
        aq:Nerver Queus: 永不排隊

        lblc:Locality-based least connection 基於本地的最少鏈接
        至關於dh+lc

        Lblcr:基於複製的基於本地的最少鏈接 Replicated and Locality-based least connection


Session持久機制
    1.Session綁定:始終將統一請求者的鏈接定向至統一RS(第一次請求時仍有調度選擇):沒有容錯哦能力,有損均衡效果
    2.session複製:在RS之間同步session,所以,每一個RS持集羣中全部的session;對於大服務器集羣環境不適用
    3.session服務器:利用單獨部署的服務器來統一管理session


LNS-FULLNAT:


LVS的集羣服務:
    四層交換,四層路由
    根據請求目標套接字(包括端口的協議類型tcp,udp)來實現轉發


ipvsadm

集羣服務相關

-A:添加一個集羣服務
    -t:tcp
    -u:udp
    -f: firewall make 一般應用於將兩個或以上的服務綁定爲一個服務進行處理時使用
    service-address
      -t IP:port
      -u ip:port
      -f firewall_mark
    -s 調度算法,默認爲wlc
    -p: timeout persistent connection 持久鏈接
-E:修改定義過的集羣服務

-D -t|u|f service-address:刪除指定的集羣服務

RS相關

    -a:向指定的CS中添加RS
        -t|-u|-f service-address:指明將RS添加至那個Cluster Service 中

        -r:指定RS,能夠包含{IP[:port]},只有支持端口映射的LVS類型才容許此處使用跟集羣服務中不一樣的端口

        lvs類型:
            -g:Gateway,DR
            -i:ipip,TUN
            -m:masquerade(地址假裝),NAT
            默認爲DR

           指定RS權重
               -w
           上限下限:
            -x:下限
            -y:上限

    -e:修改指定的RS屬性

    -d  -t|u|f  service-address  -r  server-address:在指定的集羣服務中刪除一個指定的RS

狀況全部的集羣服務:
    -C

保存規則(使用輸出重定向):
    ipvsadm-save
    ipvaadm -S

載入指定的規則:(使用輸入重定向)
     ipvsadmin-restore
     ipvasdm -R

查看ipvs規則等
     -L [options]
         -n 使用數字格式顯示IP地址,不反解
         -c:查看鏈接數相關信息
         --stats:顯示統計數據
         --rate:數據傳輸速率
         --timeout:顯示tcp會話時長
         --daemon:守護進程的信息
         --sort:對虛擬服務進行排序,默認爲升序
         --exact:精確顯示,不作單位換算

-Z:計數器清零


LVS-DR模型
    Director兩個地址:VIP,DIP
    RS有兩個地址:VIP,RIP


    禁止rs響應對BIP的ARP廣播請求
        1.在前端路由上實現靜態MAC地址VIP的綁定
            前提:得有路由器的配置權限
            缺點:Directory故障轉移時,沒法更新此綁定
        2.arptables
            前提:在各RS在安裝arptables程序i,並編寫arptables規則
            缺點:依賴於獨特功能的應用程序
        3.修改Linux內核參數
            前提:RS必須是Linux
            缺點:適用性差
            兩個參數:
                arp_announce:定義通告模式
                arp_ignore:定義收到arp請求的響應模式
            配置專用路由,以使得響應報文首先經過VIP所篇日誌的lo上的別名接口

            Linux的工做特性:IP地址是屬於主機,而非特定網卡
LVS-DR配置架構根據其VIP與RIP是否在同一個網絡內有兩種狀況

在Directory 和RS上配置VIP,要使用以下格式
ifconfig ALIAS VIP netmask 255.255.255.255 broadcast VIP

route add -host VIP dev



LVS-DR的配置
 Director
     iptables -t filter -F
     ifconfig eth0:0 VIP netmask 255.255.255.255 broadcast VIP up
     route add -host VIP dev eth0:0

RS:
    echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce
    echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce

    ifconfig lo:0 VIP netmask 255.255.255.255 broadcast VIP up
     route add -host VIP dev eth0:0

Director:
ipvsadm -A -t ip:port -s scheduler
ipvsadm -a -t ip:port -r rs1 -g
linux

 

                          LVS持久鏈接、DR、防火牆標記  nginx

 


VIP 與DIP 不在同一網段
DIP 和RIP在同一網段

LVS持久鏈接

源地址HASH

ipvs的鏈接模板 能夠經過ipvsadm -L -c


持久鏈接
持久客戶端鏈接 PCC:在固定時間內未來自於同一個客戶端發往VIP的全部請求通通定向至同一個RS
0表示全部端口
持久端口鏈接 PPC:未來着餘同一個客戶端發往某VIP的某端口的全部請求通通定向至同一個RS
-p 指定時間

持久防火牆標記鏈接PFMC:port affinity
    基於防火牆標記,將兩個或以上的端口綁定爲同一個服務

    iptables -t mangle -A PREROUTING -d 172.16.100.8 -p tcp --dport 80 -j MARK --set-mark 10
    iptables -t mangle -A PREROUTING -d 172.16.100.8 -p tcp --dport 443 -j MARK --set-mark 10
    ipvsadm -A -f 10 -s rr
    ipvsadm -a -f 10 -r 172.16.100.11 -g
    ipvsadm -a -f 10 -r 172.16.100.11 -g

    ipvsadm -E -f 10 -s rr -p 1200



ipvs集羣兩個問題
    1.後端RS的監控狀態檢測?
        1.腳本
        2.keepalived,ldorectord

    2.Director自身的可用性?
        1.ldirectord(heartabeat,corosync)
        2.keeplived

   手動腳本檢測


   1.某RS故障時,要檢測至少三次才能讓且下線,而從新上線時,只須要檢測一次
   2.如何讓腳本有更好的適應性
算法

相關文章
相關標籤/搜索