LVS原理與使用(1)

    負載均衡,不管是否真正瞭解過,但我相信全部跟編程打交道的讀者都有據說。同時,它(負載均衡)也是被認爲一個大型網站的標識性技術之一(但負載均衡的做用確定不止這點用途)。雖然網上也有很多關於LVS配置實用的教程或帖子,但總的來講幾乎都是以快餐式文化爲主,內容良莠不齊,很多教程自己也存在很多錯誤,對讀者不只沒有幫助,反而形成了視線干擾。所以,本系列,咱們將使用較大的篇幅(60%左右)來說對LVS的前提知識的進行補充以及其原理進行講解,而後用較少的篇幅(30%左右)來說解具體操做,最用用剩餘的篇幅(10%左右)來說解須要注意的地方。但願藉此讓各位讀者可以從真正意義上了解LVS。web

    好的,做爲本系列的開篇,本章內容中,咱們將講述:編程

      (1)、LVS的簡介安全

      (2)、LVS的優點服務器


    1、LVS簡介網絡

    負載均衡是什麼我就懶得解析了,目前市面上的負載均衡設備主要分爲兩個方面,其一就是基於硬件的負載均衡設備,譬如Cisco(思科)的交換機、華爲的硬件機器、F五、梭子魚等。這些設備一般以整套產品(軟+硬+服務)的方式進行出售,用戶按照自身需求購買,通常均能達到良好的預期結果,此外這些設備的設備商也提供了一站式服務,讓您的後期的維護省下很多的煩惱。不過因爲這些設備通常售價較高,後期的維護也可能須要支付一筆不菲的費用,這也使得很多的中小企業因沒法承擔這筆開支而選擇放棄。負載均衡

    而另一種則是軟件型的負載均衡,這一類的負載均衡都是基於操做系統內核或者是以運行於操做系統中的軟件服務的形式提供負載均衡服務。比較經典的是LVS、NLB以及某些提供輪詢或代理功能的軟件等。這種方式最大的好處就是可以以相對低廉的價格得到一樣的服務,但這種方式一般沒有任何的機構提供任何的支持服務(給維護費除外),也難以得到任何所謂的一站式服務,對使用者自己的技術掌握能力要求也較高。性能

    咱們再用一句話來歸納LVS:LVS,全稱是「Linux Virtual Server」,它是我國(中國)國內最先出現的自由軟件項目之一,在1998年5月由章文嵩先生立項成立,經過基於內容的分發的形式讓多臺真實服務器同時處理來自外部的多個請求,從而提高總體服務的吞吐性能,其核心爲ipvsadm,目前LVS的使用已經遍及互聯網的每一個角落,幾乎全部有使用Linux做爲服務器的大型企業都有使用。學習

 

    2、LVS的優點網站

    LVS的初次配置使用並算不上特別的容易,然後期的維護就更加考驗經驗,與之同時,也有很多用戶在使用一些其餘軟件來提供負載均衡功能,比較經典的例子就是PHPer們號稱的最強webserver服務器Nigix,用它來作代理(咳咳,Linux中沒有比Jexus更強的WebServer)。這些後者的方式相對來講操做更加簡單,所以有不少的負載均衡均是使用一臺裝有Nginx之類的服務器來充當。不過即使如此,LVS仍然均有它們所的沒法比擬的好處。操作系統

    爲了說清楚它的優點,咱們須要先回顧一下OSI七層網絡模型的知識。

    上圖爲你們所熟知的OSI七層模型,數據從應用程序發出經由應用層、表示層、會話層(目前上面三層能夠合併爲一層)……通過層層封裝到達鏈路層,而後再化爲0101二進制,再以比特流的形式在物理線路上進行傳輸。數據流到達目的計算機後,也按照相反的步驟從下往上的層層解包,最後到達應用層並把數據傳遞給應用程序。

    普通的負載均衡軟件,主要都是工做在三層到頂層之間,從理論上來說越是工做在上層的服務就意味着數據包的傳輸須要進行越多的打包和拆包工做,性能的消耗也越是厲害(固然,單個數據包的消耗極小,幾乎能夠忽略,這裏指海量數據包),代理軟件通常工做在三層/四層之中,WebServer工做在五到七層之中,而LVS則能夠工做在二層之中(數據鏈路層),我想剩餘的不用我多說,讀者們也應該立刻意識到它的將會有多高效。

    此外,因爲OSI網絡具備透明性(上層對下層說:數據給你,剩下的我無論了【無論你怎麼傳輸,也不論是否可達】),全部上層協議都是創建在透明的下層的基礎上,咱們只要把下層搞定了,上層協議也天然「被」兼容,所以LVS能夠無需擔憂任何Http協議、Telnet協議、Https協議等高層協議的問題,具備極強的兼容能力。

    最後,通常的高層網絡負載均衡設備主要使用NAT技術來實現負載均衡,全部的數據請求與應答的流量都須要通過負載均衡服務器,這不只至關容易給負載均衡服務器形成巨大的壓力、形成性能上的瓶頸,並且因爲數據通過NAT的轉換,數據包中源IP將發生改變,這也很容易形成「後方」服務器上的安全監控設備產生誤判,形成誤殺。而LVS不只可使用NAT的方式進行負載均衡,使用非NAT的方式,利用三角網絡的形式進行負載均衡,應答的數據再也不經由負載均衡服務器(通常狀況,應答纔是流量的大頭),而且LVS此時不改變數據包的源IP,僅僅經過改變MAC的方式,以廣播的方式直接向「後方」服務器發送數據,避免了監控的誤殺。


    好的,關於LVS的介紹,咱們就暫且告一段落,下一篇,咱們將開始進入到LVS的學習使用當中,咱們下篇見。

    原文地址:http://jhonge.net/Home/Single2/1972

相關文章
相關標籤/搜索