lvs 基本概念

LVS(linux virtual machine) 的簡寫,是一個虛擬的服務器集群系統主要用于4層負載均衡。

宗旨:

使用集群技術和Linux操作系統實現一個高性能、高可用的服務器.

很好的可伸縮性(Scalability)

很好的可靠性(Reliability),應該還是高可用吧

很好的可管理性(Manageability)。很容易使用,很好學。

 

lvs自身應該不能實現高可用,需要結合其它軟件實現。

可伸縮性:

1、可伸縮性,簡單來說,是以更大的規模來做你現在所做的事。伸展一個Web應用的規模在于讓更多的人使用你的程序。如果你沒法找出方法在伸展規模的同時提高性能,沒關系。而且只要你可以伸展規模來處理更大數量的用戶,那么有幾個單點故障(single point of failure)也沒關系。

 

LVS的幾個術語:

VIPDirector用來向外部提供服務的IP地址,也就是DNS通過域名解析到的IP

RIP:集群節點(后臺真正提供服務的服務器)所使用的IP地址

DIPDirector用來和RIP進行交互的IP地址

CIP:客戶端使用的IP或公網IP

R S :集群節點服務器Real server

lvs內核模型:

    }}F`_{GJ1PS7Y$K611MFNWY.png

LVS的三種負載均衡技術:

NAT

優點服務器可以運行任何支持TCP/IP的操作系統,它只需要一個IP地址配置在LVS主機上,服務器組可以用私有的IP地址。

缺點擴充能力有限,當服務器結點數目很多時,LVS主機本身有可能成為系統的新瓶頸,因為在VS/NAT中請求和響應封包都需要通過負載平衡LVS主機。

特點:

                1、RIP要使用使用地址,網關指向DIP

                2、請求報文和響應報文都需經過Director:所以Director可能成為系統性能瓶頸。

                3、支不支持端口映射,支持

                4、RS可以使用任意操作系統。

       請求流程:

KA37VB0A8Q_G_@%~GA2EJ$O.jpg

ICM7J3(T_FZY}{X601CDRH6.jpg

 

DR

VS/DR LVS主機只處理客戶到服務器端的連接,響應資料可以直接從獨立的網絡路由返回給客戶。這可以極大地提高LVS集群系統的伸縮性。

同 VS/TUN相比,這種方法沒有IP隧道的開銷,但是要求負載平衡LVS主機與實際服務器都有一塊網卡連在同一物理網段上,服務器網絡設備或者設備別名不 作 ARP 響應。

 

特點:

                    1、保證前端路由將VIP的報文通通發往Directory,而不是RS

                    解決方案:

                    (1)、靜態地址綁定,在前端路由器上操作

                    問題:未必有路由操作權限

                    (2)、在real server上配置iptables不讓響應

                    (3)、修改RS上的內核參數,將RS上的VIP配置在lo接口的別名上,并且限制其不能響應對VIP地址解析請求。

                    2、RS可以使用私有地址,也可以使用公網地址,此時可以通過互聯網對其直接進行訪問。

                    3、RS和Directory必須在同一物理網絡中。

                    4、所有的請求報文經由Director,但是響應報文必須不能經過Director

                    5、不支持端口映射。

                    6、RS可以是大多數常見的OS。

                    7、RS網關不指向DIP

    請求流程

lvs 基本概念UQ9VLPSCK[(`}%BBH]L5BUV.jpg

TUN

在VS/TUN 的集群系統中,負載平衡LVS主機只將請求分配到不同的實際服務器,實際服務器將應答的資料直接返回給用戶。這樣,負載平衡LVS主機就可以處理巨量的請 求,而不會成為系統的瓶頸。即使負載平衡LVS主機只有100Mbps的全雙工網卡,虛擬服務器的最大吞吐量可以達到幾Gbps。所以,VS/TUN可以 極大地增加負載平衡LVS主機分配的服務器數量,它可以用來構建高性能超級服務器。VS/TUN技術對服務器的要求是所有的服務器必須支持"IP Tunneling"或者"IP Encapsulation"協議。目前,VS/TUN 的后端服務器主要運行Linux操作系統。因為"IP Tunneling"正成為各個操作系統的標準協議,所以VS/TUN也會適用運行其它操作系統的后端服務器。

 

特點:

                    1、RIP、VIP、DIP全部是公網地址

                    2、RS的網關不會也不可能指向DIP

                    3、請求報文經由Director,但響應報文必須不能經過Director

                    4、不支持端口映射

                    5、支持隧道類型

   請求流程

M[K_PLL]GAAIBXJHQDJ{2FO.png

 

 

XL@TSIX5ROX4%1KX3GN2AEX.pngLVS的常見調度算法:

rr(round robin):將工作平均的分配到服務器 (用于實際服務主機性能一致)

lc:(least-connections )

    向較少連接的服務器分配較多的工作(tcp計時器判斷后端連接數量。用于實際服務主機性能一致。)

    overhead值,表示當前負載狀況 。

    overhead = active*256 + innactive


wrr(weighted round robin):

    加權輪詢,能者多勞。誰性能好分給誰的請求多。 (用于實際服務主機性能不一致時)

wlc(weighted least-connections):

    考慮它們的容量向較少連接的服務器分配較多的工作。容量通過用戶指定的砝碼來說明,可以根據裝載信息動態的向上或向下調整。(用于實際服務主機性能不一致時)

    overhead = (active*256 + inactive) /weight

 

   sh:(source hashing):

源地址hash,為了session持久的功能,在IPv4的代碼中自行位置一個hash表,把CIPhash存儲,任何一個客戶端在來,先查hash表。這就是來自同一個IP的主機將始終定向至同一個real server.

   dh:(destination hashing),目標地址hash,real server訪問外部時,   

還有一些調度算法,用的比較少,就不再列舉了。

 

參考:

http://www.infoq.com/cn/news/2007/10/whatisscalability  你真的明白什么是可伸縮性嗎?

http://baike.baidu.com/link?url=jIw3aTgnp6_SV7Op9LnIb7bL1Ik8xQGxTfhz-D5GraGOPkR97y6f3rMXtgS8axp9NlNilEUpLHWUNoJ5EVUGU18J4sdJlmOCbfCNeHwgZzy   LVS百度百科的介紹

http://os.51cto.com/art/201202/319979.htm  專題:LVS負載均衡手冊

總結:

    1、網上已經有很多lvs的資料了,這篇博客也沒有什么新意,edraw軟件在電腦上沒反應,沒有好的畫圖工具,三種lvs 調度模型,描述的就不夠詳細,而且是摘抄的別人的圖。

    2、感覺概念一般是死的,寫來寫去好像也就是這么多東西,不過總結一下對自己有些幫助吧。

    3、如果布局太差,那么在編輯的時候,文字間距離看起來還行啊,預覽的時候行間距就很大,這下次編輯的時候在看看是不是還是這種情況。

最后就是,接著這篇博客,會寫一下lvs調度模型的具體實現。

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

(0)
艾賀艾賀
上一篇 2015-09-14 09:27
下一篇 2015-09-14 09:37

相關推薦

  • 磁盤陣列(raid),劃分邏輯卷(lvm)

    磁盤陣列(raid),劃分邏輯卷(lvm)       將來我們在生產環境中由于磁盤的來回讀寫量比較大,所以就容易導致磁盤的損壞率比較高。但是,處于生產環境的需求,我們還得保證服務器的正常運行。或者說我們需要對服務器的讀寫速率進行優化,這樣我們就不得不運用到這個磁盤陣列(raid )。而所謂的磁盤陣列就是使用…

    Linux干貨 2016-08-29
  • vim

    VIM常用操作命令 模式轉換 1、ESC鍵:編輯模式 --> 一般模式;2、從一般模式 --> 編輯模式 i:在光標所在處的前方轉換為編輯模式 a:在光標所在處的后方轉換為編輯模式 o:在光標所在行的下方新建一個空行并轉換為編輯模式 I:在光標所在行的行首輸入 A:在光標所在行的行尾輸入 O:在光標所在行的上方新建一個空白行 3、一般模式?。尽∧┬心J剑骸?/p>

    Linux干貨 2017-04-06
  • 第一周作業

    1. 描述計算機組成及其功能 說到計算機組成,就必須提及計算機之父馮洛伊曼先生。是他早年最先提出了計算機體系結構的設想,并沿用至今。 計算機由五大基本組件組成: 運算器 進行算術運算和邏輯運算的主要部件; 控制器 控制器從存儲器中逐條取出指令、分析指令,然后根據指令要求產生一系列命令,控制計算機各部件; 存儲器 分為內存和外存,…

    Linux干貨 2016-12-02
  • 文本處理相關工具

    文本工具       操作系統中,文本的處理這一操作,比如操作一些內容,查看一些內容等等這些東西在linux中都得借助工具來完成對文本的操作。下面來說說對文本處理的工具;  其中:        查看文件內容工具:more、less、cat     &nbsp…

    Linux干貨 2016-08-05
  • N25第六周作業

    vim 是vi編輯的升級版,同樣有三種工作模式:編輯、命令和一般 模式 #:指定行號位置 #,#:指定多少行到多少行 #,+#:指定范圍,多少行開始,加#行 $:最后一行 .:當前行 .,$-1,當前行到倒數第二行 1,$:全文 %:全文 /從上往下,?:從下往上 搜索 /pattern/:從光標所在處起始向文件尾部第一次被模式所匹配到的行 s/要查找的內容…

    Linux干貨 2017-01-11
  • Linux基礎(九)-shell編程練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash declare -i nologin=0 declare -i login=0 while read l…

    Linux干貨 2016-11-20

評論列表(2條)

  • stanley
    stanley 2015-09-14 09:32

    總結的內容到位,只是樣式上的亂了些,很容易看到一半就放棄了

  • 云中鶴
    云中鶴 2015-09-14 09:59

    下次我要注意布局

欧美性久久久久