lvs基礎知識

簡介

 Cluster是什么?

   Cluster其實就是組織多個主機構建高實現性能、高可靠、多并發、大容量的同一功能的系統。

 常見的集群類型:

  (1) Load Balancing: 負載均衡集群

  (2) High Avaiability: 高可用集群

  (3) High Performance: 高性能集群(現在已很少使用)

  (4) 分布式存儲與運算    

   

 常見集群的擴展方式:

  (1)Scale Up:向上擴展、垂直擴展、縱向擴展;用性能好的主機替代性能差的主機,性價比差;

  (2)Scale Out: 向外擴展、水平擴展;

 lvs:Linux Virtual Server

  工作原理:四層路由或四層交換;依賴于netfilter實現根據目標IP或PORT實現請求轉發至后端的多個主機中的某一個主機(根據挑選算法挑選主機)

  

  Director數據包轉發過程:PREATING——>①———>②———>③———–>④——–>POSTROUTING

     當客戶端請求到Director,Director內核依靠netfilter將主機從PREROUTING經由路由之后到達INPUT,當到達INPUT之后,ipvs發現是去往集群主機的請求,并將請求強制發往至路由,通過POSTROUTING發往后端主機。

lvs.png

一、lvs的類型:

 1)ipvs-nat:MASQUERADE 地址偽裝

   類似于DNAT,是一種多目標主機的DNAT,通過修改請求報文的目標IP至基于調度方法選出來某RS的RIP進行轉發

 特點:(1)RS必須使用私有地址;網關必須指向DIP;

     (2)請求和響應的報文都經由Director轉發;高負載場景中,Director易成為性能瓶頸

     (3)支持端口映射

     (4)RS可以是任意類型的OS(操作系統)

     (5)RS的RIP和Director的DIP要在同一網段

lvs-nat.png

 2)ipvs-dr: Direct Routing 直接路由

   不修改請求報文的IP首部,而是通過直接封裝幀首部完成轉發;目標MAC是基于調度方法選出某RS的網絡接口的MAC地址

 特點:(1)保證前段路由器將目標地址為VIP的報文通過ARP解析后統統發往Director

          解決方案:arp解析

            在網關路由器上綁定Director的MAC地址

            利用arptables在每個RS制定規則

            修改RS的內核參數

     (2)RS的RIP可以是私有地址;也可以是公網地址,此時通過互聯網上的主機對此可發起管理請求;

     (3)RS與Director必須在同一物理網絡中;

     (4)請求報文必須經由Director轉發,而響應報文必須不可能經由Director;

     (5)不支持端口映射;

     (6)RS可以是大多數的OS;

     (7)RS的網關決不能指向Director;

   lvs-tun.png

 

 3)ipvs-tun: tunneling 隧道

    不修改請求報文的IP首部,而是通過IP隧道機制在IP外部再封裝一個IP首部(SIP:DIP, DEST:RIP);經由互聯網交給選定的RS

  特點:(1)RIP,DIP,VIP必須都是公網IP;

      (2)RS的網關不能也不可能指向DIP;

      (3)請求報文必須經由Director調度,而響應報文必須不能經由Director;

      (4)不支持端口映射;

      (5)RS的OS(操作系統)必須能夠支持隧道功能;

lvs-ipip.png

4)lvs-fullnat: 原地址與目標地址都進行替換(以后補充)

二、lvs的調度方法:

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

   (1)RR: round  robin, 輪詢、輪叫、輪流;

   (2)WRR:weighted RR, 加權輪詢;Overhead=connection/weighted,最小的會被挑中;

   (3)SH: source hashing;表示來源于同一個IP的請求始終發往第一個調度時請求的RS,從而實現了SESSION綁定;

   (4)DH: destination hashing;表示根據目標主機進行調度,將發往同一個目標地址的請求都轉發至后端主機;

 

 2)動態方法:根據算法及各RS的自身負載狀況進行調度

   (1)LC: least connection;最少連接;Overhead=actcon*256+inactcon,結果小的將會被挑中;

   (2)WLC: weighted LC;加權最少連接;Overhead=(actcon*256+inactcon)/weighted,結果小的將會被挑中;

   (3)SED: Shortest Expection Delay 最段期望延遲;Overhead=(actcon+1)*256/weighted,結果小的將會被挑中;

   (4)NQ: Nerver Queue 永不排隊;一開始每臺RS都解釋請求,往后都使用SED 

三、ipvs管理工具介紹

  ipvsadm:工作在用戶空間,定義轉發規則的程序;

  ipvs:工作在內核空間,根據規則完成調度請求的程序;

ipvsadm用法:  

 管理服務器集群:

  ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask]

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

    -A: 添加

    -E:修改

    -D:刪除

    -t:TCP協議的端口

    -u: UDP協議的端口

    -f:FWM,防火墻標記,標記用數字來表示,將多個端口綁定在一起定義成一個集群服務使用

    server-address: IP:[PORT]

    -s: 制定調度方法,默認為wlc

 管理指定集群服務的RS:

   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

      -a:添加RS

      -e:修改RS

      -d:刪除RS

      -t|u|f service-address:引用此前定義過的集群服務

      -r server-address :制定RS的地址

     [-g|i|m]:指定lvs類型

     -w weight: 指定權重;

 

 保存RS及CS:

   -S save: 

    ipvsadm -S > /etc/sysconfig/ipvsadmin.v1 

    ipvsadm-save > /etc/sysconfig/ipvsadmin.v1 

    service ipvsadm save      

   -R: restore

     ipvsadm -R < /etc/sysconfig/ipvsadmin.v1 

     ipvsadm-restore < /etc/sysconfig/ipvsadmin.v1 

    service ipvsadm start 

 清空規則:

   ipvsadm -C 

 顯示規則:

   ipvsadm -L |l [options]

    options:

    -c: 列出當前所有的connection

    –stats:列出CS及RS的連接統計數據

    –rate:列出CS及RS的連接、報文及字節速率

    -n –numeric: 數字格式顯示

   –exact: 精確值

原創文章,作者:馬行空,如若轉載,請注明出處:http://www.www58058.com/5485

(0)
馬行空馬行空
上一篇 2015-06-21 21:24
下一篇 2015-06-23 09:55

相關推薦

  • Docker 之初次體驗

    一、Docker 簡介  lxc linux container,openvz  容器中各虛擬機只有一個內核,而是多個用戶空間  在庫中完成虛擬化,比如wine 或者在windows中運行bash  在應用程序的運行級別提供虛擬化,比如jvm   pstree , pid 為1 的進程  …

    Linux干貨 2017-02-24
  • 馬哥教育網絡班21期第七周作業

    1、創建一個10G分區,并格式為ext4文件系統;   (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;   (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; [root@localhost ~]#…

    Linux干貨 2016-10-09
  • cp,chmod,chown,chgrg,grep命令應用實例和總結

    1.復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的其他屬組和其他用戶沒有任何訪問權限。[root@dxlcentOS ~]# cp -a /etc/skel/ /home/tuser1[root@dxlcentOS ~]# chmod -R go= /home/tuser1 遞歸修改權限,g:組的權限,o其他…

    Linux干貨 2017-10-26
  • 廣域網中的DNS服務

    拓撲圖                      創建主DNS:     配置文件/etc/named.conf&nbs…

    2017-04-15
  • 馬哥教育網絡班22期+第7周課程練習

    1、創建一個10G分區,并格式為ext4文件系統; [root@localhost ~]# fdisk /dev/sda 命令(輸入 m 獲取幫助):n All primary partitions are in use 添加邏輯分區 5 起始&nb…

    Linux干貨 2016-10-09
  • Linux理論基礎(計算機組成機器功能|Linux發行版|Linux哲學思想)

    1、描述計算機的組成及其功能。
    2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。
    3、描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。

    2018-03-06
欧美性久久久久