lvs和keeplived的工作原理詳解

一、lvs的工作原理


  使用集羣的技術和liunx的操作系統實現一個高性能、高可用的服務器。可伸縮性、可靠性、很好的管理性。


 特點:可伸縮網絡服務的幾種結構,它們都需要一個前端的負載調度器(或者多個進行主從備份)。我們先分析實現虛擬網絡服務的主要技術,指出IP負載均衡技術是在負載調度器的實現技術中效率最高的。在已有的IP負載均衡技術中,主要有通過網絡地址轉換(Network Address Translation)將一組服務器構成一個高性能的、高可用的虛擬服務器,我們稱之爲VS/NAT技術(Virtual Server via Network Address Translation)。在分析VS/NAT的缺點和網絡服務的非對稱性的基礎上,我們提出了通過IP隧道實現虛擬服務器的方法VS/TUN (Virtual Server via IP Tunneling),和通過直接路由實現虛擬服務器的方法VS/DR(Virtual Server via Direct Routing),它們可以極大地提高系統的伸縮性。VS/NAT、VS/TUN和VS/DR技術是LVS集羣中實現的三種IP負載均衡技術


  技術:LVS集羣採用ip負載均衡技術減輕服務器的壓力,將請求均衡轉移到不同的服務器上執行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的,高可用的虛擬服務器,整個服務器集羣的結構對客戶端是透明的,而且無需修改客戶端和服務器的程序,爲此在設計的時候考慮到了系統的透明性,可伸縮性,高可用性和易管理性。


   LVS:主要採用三種結構主要部分是

    服務器池,是一組正執行客戶端請求的服務器,執行的服務有WEB,MAL,FTP和DNS等。

   負載調度器:它是整個集羣對外面前端機,負責將客戶的請求發送到一組服務器上執行,而客戶確認爲服務器是一個來自一個ip上的(虛擬機ip地址。

 共享存儲,它爲服務器提供一個共享的存儲區,這樣很容易使得服務器池擁有相同的內容,提供相同的服務。

   

   優點

 開源,免費

 具有軟件負載均衡的一些優點。

 在網上能找到一些相關技術資源。

  

   缺點

  沒有可靠的支持服務,沒有人對其結果負責。

   功能比較簡單,支持複雜的應用的負載均衡能力較差,算法較少等。

   開啓隧道方式需要編譯內核

   配置複雜;

   主要應用於LINUX系統,目前沒有專用於windows系統版本的,不過可以通過配置使windows稱爲lvs集羣中的real server (win2003、win2008)。

 

   

    wKiom1lL6kmBct8ZAABEOEsbv9I380.png-wh_50


         1. DS:Director Server。指的是前端負載均衡器節點。

       2. RS:Real Server。後端真實的工作服務器。

       3. VIP:向外部直接面向用戶請求,作爲用戶請求的目標的IP地址。

       4. DIP:Director Server IP,主要用於和內部主機通訊的IP地址。

       5. RIP:Real Server IP,後端服務器的IP地址。

        6. CIP:Client IP,訪問客戶端的IP地址。


keeplived原理

  keeplvied也是模塊化設計,不同模塊的不同功能


core:是keeplived的核心,複雜主進程的啓動和維護,全局配置的加載解析等


check:負責是healthchecker(健康檢查),包括了各種健康檢查的方式,以及對應的配置的解析包括LVS的配置解析


vrrp:VRRPD子進程,VRRPD子進程是來是來實現VRRP協議的

libipfwc:iptables(ipchains)庫,配置LVS會用到

libipvs*:配置LVS會用到



wKioL1lL68bRk1c4AAJ9-ohqITI454.png-wh_50

keepalived啓動會有三個進程

父進程:內存管理,子進程管理

子進程:VRRP子進程

子進程:healthchecker子進程

如圖可知,兩個子進程都被watchDog看管,兩個子進程各自複雜自己的事,healthcheck子進程複雜檢查自己服務器的健康程度,比如HTTP,lvs等如果healthchecker子進程檢查到MASTER服務不可用了,就會通知本機上的vrrp的子進程,讓他刪除通告並且去掉虛擬機ip,轉爲BACKUP狀態


 keeplived配置詳解

 keeplived有三類配置區域,是一個配置文件裏三種不同的區域。

 全局配置

 VRRPD配置

 LVS配置

 全局配置分爲兩個子進程:全局定義(global definition)

                        靜態路由配置(static ipaddres/routes)


總結:lvs和keeplived就是一個心跳檢測,怎麼說呢比如我是keeplived手一直摸着lvs的心臟來監聽lvs的系統狀況等,如果lvs當機keeplived作爲一個熱備份隨時頂替lvs來進行負載均衡,不過lvs和keeplived是完全不同的兩個東西。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章