第十周LINUX 學習筆記

来源:https://www.cnblogs.com/gohrx/archive/2019/05/06/10817846.html
-Advertisement-
Play Games

LVS集群nat丶DR HA:高可用 平均無故障時間/(平均無故障時間+平均修複時間) 負載均衡次序lb(負載)——>ha()LB tcp:lvs,haproxy 應用層:nginx haproxy ats 緩存:varnish squiedHA:heartbeat,corosync keepliv ...


                                    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

 

                          LVS持久連接、DR、防火牆標記  

 


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.如何讓腳本有更好的適應性

 

 

                    

 


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

-Advertisement-
Play Games
更多相關文章
  • [TOC] 找到.ini路徑 Centos中重啟PHP 修改etc/php.ini後,必須重啟PHP才能生效 方式一 如果在安裝PHP時,設置了許可權並啟動php fpm: 方式二 也可以服務的方式啟動、停止和重啟: 一些經驗 ...
  • 本文將把Linux 系統管理遇到的問題進行彙總 一、用戶修改密碼 問題現象 用戶登錄後,修改自己的密碼,出現 passwd:Authentication token manipulation error(身份驗證令牌操作錯誤),一般是密碼文件的許可權的問題,不過也有可能是根目錄空間滿。 問題定位 ls ...
  • 我的內容來自於《馬哥Linux2016最新高薪運維視頻課程-Nginx應用基礎及配置詳解》 httpd:MPM prefork,worker,event prefork:主進程,生成多個子進程,每個子進程處理一個請求; worker:主進程,生成多個子進程,每個子進程再生成多個線程,每個線程響應一個 ...
  • python django uwsgi nginx安裝 已安裝完成python/django的情況下安裝 pip install uwsgi cd /usr/share/nginx/html/ vim uwsgi.ini輸入以下內容 #uwsgi.ini file [uwsgi] # Django- ...
  • 1.去官網下載適用於linux的jdk包,如jdk-8u162-linux-x64.tar.gz 2.創建目錄,將jdk包拷貝到該目錄下,如home/haha/user/java 3.在控制臺中進入該目錄,執行tar zxvf jdk-8u162-linux-x64.tar.gz 進行解壓 4.配置 ...
  • 一、前言 1、簡介 回顧上一篇UART發送當中,已經講解瞭如何實現UART的發送操作了,接下來這一篇將會繼續講解如何實現UART的接收操作。 2、UART簡介 嵌入式開發中,UART串口通信協議是我們常用的通信協議之一,全稱叫做通用非同步收發傳輸器(Universal Asynchronous Rec ...
  • 一、說明 sdhci msm是指高通的mmc host,其使用了標準SDHC標準。故可以使用前面說的《host(第二章)——sdhci》和《host(第三章)——sdhci pltfm說明》的介面。 後續代碼以msm8916平臺的host實現以及linux 4.6.0版本中的sdhci msm的實現 ...
  • 一、sdhci pltfm說明 sdhci pltfm並不是實際某個host的driver。 sdhci pltfm是指在sdhci core的基礎上,提供了統一對sdhci_host的必要屬性進行解析和設置的方法。 但是,對於sdhci類的host driver來說,使用sdhci pltfm並不 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...