1. 程式人生 > >lvs和keeplived的工作原理詳解

lvs和keeplived的工作原理詳解

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)。

技術分享



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會用到



技術分享

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是完全不同的兩個東西。

本文出自 “淩宇的技術博客” 博客,請務必保留此出處http://lampit.blog.51cto.com/12958178/1941136

lvs和keeplived的工作原理詳解