官網地址:http://www.keepalived.org/
官網文檔:http://www.keepalived.org/documentation.html html
Keepalived的做用是檢測web服務器的狀態,若是有一臺web服務器死機或工做出現故障
Keepalived將檢測到,並將有故障的web服務器從系統中剔除,當web服務器工做正常後
Keepalived自動將web服務器加入到服務器羣中,這些工做所有自動完成,不須要人工干涉
須要人工作的只是修復故障的web服務器。 c++
Layer3,4,5工做在IP/TCP協議棧的IP層,TCP層,及應用層,原理分別以下: web
Layer3:Keepalived使用Layer3的方式工做式時,Keepalived會按期向服務器羣中的服務器
發送一個ICMP的數據包(既咱們平時用的Ping程序),若是發現某臺服務的IP地址沒有激活
Keepalived便報告這臺服務器失效,並將它從服務器羣中剔除,這種狀況的典型例子是某臺
服務器被非法關機。 服務器
Layer3的方式是以服務器的IP地址是否有效做爲服務器工做正常與否的標準。 網絡
Layer4:若是您理解了Layer3的方式,Layer4就容易了。Layer4主要以TCP端口的狀態來
定服務器工做正常與否。如web server的服務端口通常是80,若是Keepalived檢測到80端
口沒有啓動,則Keepalived將把這臺服務器從服務器羣中剔除。 測試
Layer5:Layer5就是工做在具體的應用層了,比Layer3,Layer4要複雜一點,在網絡上佔用
的帶寬也要大一些。Keepalived將根據用戶的設定檢查服務器程序的運行是否正常,若是與
用戶的設定不相符,則Keepalived將把服務器從服務器羣中剔除。 spa
系統環境:
[root@rhel ~]# uname -a
Linux rhel 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux .net
目前keepalived最新版本下載:
[root@rhel ~]#wget -c http://www.keepalived.org/software/keepalived-1.2.12.tar.gz
[root@rhel ~]# tar zxvf keepalived-1.2.12.tar.gz
[root@rhel ~]# cd keepalived-1.2.12
安裝編譯環境:
[root@rhel ~]# yum install -y gcc gcc-c++ openssl openssl-devel rest
1 server |
[root@rhel keepalived-1.2.12]# ./configure --prefix=/usr/local/keepalived //指定安裝路徑 |
[root@rhel keepalived-1.2.12]# make && make install //安裝
將keepalived命令軟鏈接到/usr/bin下
[root@rhel keepalived-1.2.12]# ln -s /usr/local/keepalived/sbin/keepalived /usr/bin/keepalived
添加啓動腳本且方便用service keepalived start/stop/restart管理
[root@rhel keepalived-1.2.12]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
[root@rhel keepalived-1.2.12]# chmod 755 /etc/init.d/keepalived //添加執行權限
[root@rhel keepalived-1.2.12]# chkconfig keepalived on //開機啓動
修改/etc/init.d/keepalived中的程序路徑
# Source configuration file (we set KEEPALIVED_OPTIONS there)
. /etc/sysconfig/keepalived
改成:
# Source configuration file (we set KEEPALIVED_OPTIONS there)
. /usr/local/keepalived/etc/sysconfig/keepalived
默認狀況下,keepalived 會讀取 /etc/keepalived 下keepalived.conf 文件
若是沒有創建這個文件,keepalived也不會報錯,可是會發現,所建立的關於keepalived的相關參數根本就沒有生效。
[root@rhel keepalived-1.2.12]# mkdir /etc/keepalived
[root@rhel keepalived-1.2.12]# ln -s /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
啓動測試:
[root@rhel keepalived-1.2.12]# service keepalived restart
中止 keepalived: [肯定]
啓動 keepalived: [肯定]
安裝完成