LVS-幾種負載方式的區別

LVS的原理很重要,很重要。每一個知識點都要做到熟記與腦,謹記于心,張口就來。


LVSLinux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統。本項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。

使用集群技術和Linux操作系統實現一個高性能、高可用的服務器.
很好的可伸縮性(Scalability)
很好的可靠性(Reliability)

很好的可管理性(Manageability)

………..

總之就是一個字–好(大拇指)

閑話不多講,先從lvs的模式開始–>

lvs四種類型
1.lvs-nat

2.lvs-dr

3.lvs-tun

4.lvs-fullnat

前三個是標準類型  后一種后加入的  可能內核默認不支持 (不要問我為啥不支持,我現在不知道)


lvs-nat  :修改請求報文的目標ip或者目標端口  多目標的DNAT。
為挑選出某些RS的RIP和PORT來實現
nat特點:
1、各RS的IP應該指向DIP(目標IP)
2、請求或者響應報文都要經由director(調度器)轉發;

3、支持端口映射
4、VS必須為linux系統 RS任意

這個模式存在一個問題:因為是請求和響應報文都要經由director,那么如果用戶的并發量超過了調度器負載性能,就會造成調度器陷入癱瘓,影響用戶體驗。
借圖一用–>
LVS-幾種負載方式的區別
lvs-dr 
轉發方式:修改請求報文的MAC地址進行轉發;IP首部不會發生變化的
(源IP為CIP,目標IP始終為VIP)
dr特點:
  1、確保前端路由器將目標IP為VIP的請求報文一定會發送給dIRECTOR 
解決方案有三種:
       1).在前端路由做靜態綁定:不好  影響后期高可用實現
       2). iptables:定義規則
       3). 禁止RS響應VIP的ARP的請求:
       用調度器 修改內核參數,把VIP配置在特定的接口上實現禁止其響應 (回環lo網卡)
   2、RS的RIP可以使用私有或者公有地址
   3、RS和director必須在同一物理網絡中 (比如都是網絡)
   4、請求報文必須由director調度,但是響應報文必須不能經由director
   5、不支持端口映射
   6、各RS可以使用大多的操作系統

lvs-dr.png.JPG
   3.lvs-tun:ip隧道
   轉發方式:不修改請求報文的IP首部,而是在原有的IP首部外在次封裝一個IP首部;請求報文經由director;響應報文一定不能經由director
   注意:封裝了兩個IP首部的報文大小不要超過MTU:

   特點:
1、RIP,DIP,VIP全得是公網地址
2、RS的網關不能也不可能指向DIP;
3、不支持端口映射
4、請求報文經由director調度但響應報文將直接發給CIP
5、RS的操作系統必須支持IP隧道功能

4、lvs-fullnat
轉發方式:通過同時修改請求報文的源IP地址(CIP–>DIP)和目標IP地址(VIP–>RIP)實現轉發
特點:
1、VIP是公網地址,RIP,DIP是私網地址,且可以不在同一IP網絡中,但需要通過路由互相通信;
2、RS收到請求報文的源IP為DIP,因此其響應報文將發給DIP
3、請求報文和響應報文都必須經由direcr
4、支持端口映射
5、RS可使用任意操作系統

lvs調度算法一共有十種
靜態算法:僅根據算法本身進行調度。
存在的無情問題-不考慮當前RS的負載性能強弱

1)RR–輪詢 (比如1.2.3.4–>1.2.3.4.)
2)WRR–加權輪詢  比權重  那個權重數高,負載性能好先用那個
3)SH–源地址哈希  實現session保持  存在的問題-調度力度太大,負載均衡的效果差
4)DH– 目標地址哈希  根據請求的目標ip實現定向轉發負載性能較差

  正向web代理,負載均衡內網用戶對互聯網的請求
  Cinent–>Director–>Web Cache Servers (正向代理)

動態算法:即根據算法又根據各RS當前的負載狀態進行調度;
 overhead  負載值;負載值一樣時自上而下輪詢
LC  

最少連接 
存在的問題也:就說調度器會首選選擇RS服務請求并發數最少的那個,即使它的性能很差
      算法:Overhead=Actice*256+Inatice
            負載值=活動鏈接*256+非活動連接
              RS1: 10, 1000
               RS2: 20, 10


WLC 

加權最少連接;
存在的問題:當orverload為0時可能會出現權重小的服務器響應新請求;
   overhead=(actice*256+Inactive)/weight
      RS1: 10, 100, 1
      RS2: 20, 10, 3


SED  

最短期望延遲  也就是WLC的算法改進版

存在的問題:當多個RS之間的權重比較大時會出現RS空閑的情況
   overhead=(Active+1)*256/weight
      RS1: 0,  9
      RS2: 0,  1


NQ:

NerverQueue:SED算法的改進,即當有用戶請求涌入時服務器根據服務器權重由大到小依次先分配1個請求而后再按照SED算法調度;

LBLC:

基于本地的最少連接;動態的DH算法,即考慮當前服務器負載狀態的DH算法,把新請求調度到負載少的服務器上,從而盡可能的實現服務器間負載的均衡;

存在的問題:當新請求很少而且客戶端重復大量訪問某個熱門服務時會出現嚴重負載不均衡的場景
   Client –> Director –> Web Cache Server(正向代理)


 LBLCR:帶復制功能的LBLC;
 通過服務器間緩存復制實現本應該從高負載的A緩存服務器回應某些客戶請求轉換為從低負載的B服務器回應他們請求,進而實現后續他們的請求都從B服務器而不從A服務器回應,最終實現負載均衡;

 ipvs集群服務工作機制:四層交換(四層路由,直接工作在內核上)
 ipvs支持基于TCP,UDP,SCTP,AH,ESP,AH_ESP等協議的眾多服務;
 1.一個ipvs主機可以同時定義多個集群服務;
 2.一個ipvs服務至少應該一個RS;
       通過防火墻標記可以實現把多個端口綁定在一起進而實現將多個集群服務定義為一個集群服務而應用同一個調度邏輯。


管理集群服務命令用法:
增、刪、改、查
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-Mnetmask] [-b sched-flags]
-A:添加一個集群服務
-E:修改已添加的集群服務
-t:TCP協議
-U: UDP協議
-f:防火墻標記
-s:調度方法,默認為WLC
-p: 持久連接
-D: 刪除服務

管理集群上的RS
-a:向指定的CS中添加RS
-e:修改RS
-r:只有支持端口映射的LVS類型才允許此處使用跟集群服務中不同的端口

指明LVS工作類型
-q: 即dr模式
-i:tun模式
-m:nat模式
-w:指定權重

查看
ipvsadm -L | 11 [options]
  -n,–numberic;數字格式顯示IP和PORT
    –exact:精確值
  -c,–connection;顯示IPVS連接
   -stats;統計數據
   -rate;速率

 清空
 ipvsadm -C 按下Enter鍵-非常自然


 清空計數器
 ipsadm -Z [-t|u|f service-address]

 存儲和重載
主程序:/usr/sbin/ipvsadm
主程序:/usr/sbin/ipvsadm
規則保存工具:/usr/sbin/ipvsadm-save
規則重載工具:/usr/sbin/ipvsadm-restore
配置文件:/etc/sysconfig/ipvsadm-config

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

(2)
All wellAll well
上一篇 2017-05-11 18:35
下一篇 2017-05-11 22:46

相關推薦

  • ansible進階(roles應用)

    ansible 進階 一、roles簡介 一個項目從開始到結束,不是簡單幾十個playbook就可以完事了,當文件數很多,有上百個的話,僅通過簡單的includes不停的引用,那最終的結果錯綜復雜。這個時候ansible roles就可以很好的發揮它的作用了。 roles,字面意思是角色的含義,可以理解為有相互關聯功能的集合。我們把安裝ntp、mem、ngi…

    2017-01-05
  • 文本處理工具及正則表達式

    一、*各種文本處理工具 1.1抽取文本的工具 1.1.1 cat、less查看文本內容    more、less和cat 【選項】 【文件】 cat  –n ,-d列行 ,-A:顯示所有看不見的符號(控制符),     -E:顯示結尾$ ;…

    Linux干貨 2016-11-23
  • 前三天基礎-Linux文件系統概論

    Linux之我見     在2016農歷丙申年2016年猴年,對于小白的我來說接觸到了江湖流傳的武功秘籍之-Linux心法,第一次接觸到命令行,知道在鍵盤上隨便敲擊命令就可以滿屏跑數據,就像看過的美國大片里黑客帝國里面的畫面,感覺學會好后可以裝逼了,廢話不多說了,允許在下斗膽介紹Linux文件系統。     &nbsp…

    Linux干貨 2016-03-24
  • 第九周

    統計可登錄shell與不能登陸shell的個數 2. 寫一個腳本 3.寫一個腳本    4、寫一個腳本,完成如下功能 腳本能夠接受一個參數。 (1) 如果參數1為quit,則顯示退出腳本,并執行正常退出。 (2) 如果參數1為yes,則顯示繼續執行腳本。 (3) 否則,參數1為其它任意值,均執行非正常退出。    5、…

    Linux干貨 2016-12-26
  • 推薦-tree命令的安裝和使用

    一、前言     tree命令是可以把指定文件夾的所以文件用樹狀羅列出來,呈現目錄形式的一個命令。在Centos 6.5中默認不能直接使用: 輸入type tree命令(type COMMAND:區別是內建命令還是外部命令)提示不存在: 二、安裝       …

    系統運維 2016-03-27
  • 實現CA和證書申請,

    接下來講的是在centos7.3和centos6.8中實現CA和證書申請,centos7.3作為主機,centos6.8作為客戶端 首先你授權客戶端CA證書,必須本身主機也具有CA,自己證明自己,先CA自簽證書,然后在7.3創建私鑰 為了方便以后的操作CD進入 cd /etc/pki/CA   生成自簽名證書 -new:  生成…

    2017-04-11
欧美性久久久久