LVS+Keepalived實現負載平衡,lvskeepalived

來源:互聯網
上載者:User

LVS+Keepalived實現負載平衡,lvskeepalived

       

             Lvs是由國防大學章文嵩博士發起的一個開源項目,用來實現伺服器之間的負載平衡。全名為linux virtual server

             軟體包圍ipvsadm.tar.gz  隨著企業的規模擴大,伺服器的訪問越來越大。這時候只有兩個方案解決伺服器的負載能力。

            1: 向上擴充伺服器的硬體設定。購買昂貴的機器來承擔日益繁重的效能要求。

            2: 增加伺服器的數量,以叢集的方式來提高伺服器的效能。

            第二種方式最好的辦法就是使用lvs來進行負載平衡。

           lvs負載平衡的三種模式: NAT(network add translation),  DR(Direct Route) 和TUN模式

             第一種模式NAT:這種模式使用地址轉換來進行負載平衡,工作在網路層。所有的請求都經過lvs來進行地址轉換,realserver的網關指向lvs伺服器,所有的應答由lvs來回送。這樣導致lvs的壓力非常大,在realserver達到十台時會出現網路瓶頸。 所有的realserver和lvs在一個內網中。

             第二種模式DR:  這種模式工作在資料連結層,在進行ARP時,只有lvs伺服器對其相應,然後網關將請求送達至lvs伺服器,lvs伺服器再通過調度演算法發送至realserver,在響應請求時,不需要經過Lvs伺服器直接響應用戶端,這樣大大提高了速率和減輕了Lvs伺服器的壓力。


              keepalived是工作在lvs之上的,所謂的工作在之上,是keepalived通過自身的模組通過設定檔調用ipvsadm命令對LVS進行配置,實現負載平衡。keepalived和LVS是完全不是同一個概念,它們是獨立互不影響的完成自己的工作的,lvs通過負載平衡實現對伺服器的高擴充性,keepalived通過自身的子進程對lvs進行健全狀態檢查實現LVS的高可用性(即防止LVS崩潰和,發送主從伺服器的健康狀態和通知切換主從lvs)。

              keepalived有三個進程,VRRP協議子進程,healthcheck子進程和WatchDog父進程。

             VRRP協議子進程負責實現VRRP協議及主從之間的通訊,healthcheck負責檢查LVS和HTTP的健康狀態,

             WatchDog進程管理兩個子進程。Keepalived的模組都相對獨立,可以實現不同複雜的功能,其中就有對LVS

             進行配置的模組。



            keepalived.conf設定檔詳解:

                  global_defs{

                 router_id   50   用來標示主從的地區

           }               進行全域配置。           

         vrrp_instance   vrrp_name {

                     state  MASTER   表示主伺服器

                     interface  eth0  在eth0監控

                    virtual_router_id     50  地區標示號

                    priority     50       主從優先順序 ,主大於從

                    advert_int   2    主從互相探測是否工作時間的間隔

                     authentication{}  主從互相驗證配置

                   virtual_server{

                               10.0.0.113  配置lvs的VIP(虛擬IP)

                                }

            }用來對lvs主從伺服器進行配置的地區,使用vrrp組播方式   

      virtual_server 10.0.0.114 3 80 {

                          lb_algo rr  使用的調度演算法是rr

                          lb_kind DR  使用的負載平衡模式為DR模式

                         persistence_timeout  3  測試realserver存活逾時時間間隔為3秒

                         protocol  TCP  lvs與realserver之間的通訊使用的協議為TCP協議

                   real_server  10.0.0.2  80{

                                      weight 1   真實伺服器調度所佔權重

                                     TCP_CHECK{

                                                    connect_timeout  3  連線逾時時間

                                                    connect_port 80

                                                    nb_get_retry 3

                                        }

                                 }  配置realserver

                     } 配置對應的虛擬IP伺服器

    

                查看Linux系統的服務和連接埠對應的設定檔為  /etc/servers檔案

                設定系統的umask 使用命令umask 或者在設定檔 /etc/profile中設定。

                












對於linux叢集,nginx,lvs,keepalived這三個軟體都可以實現負載平衡,怎選擇?

汗,你先看看nginx ,lvs,keepalived都幹嘛的。
叢集不是把機器連一塊就算叢集了..
 
lvs 與 keepalived的有什不同

呵呵,這個問題也困擾我一陣子,今天上午查了很多資料才搞清楚:1. ipvsadm(LVS)有負載平衡機制,目前支援8中均衡演算法。2. keepalived除了健全狀態檢查以外,也具備負載平衡功能。現在他的健全狀態檢查功能用的比較多,其負載平衡能力被大部分人忽略了。3. lvs+keepalived這種架構下,完全可以使用keepalived來均衡負載(ipvsadm這個組件也需要裝上,只是為了便於管理叢集)。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.