Keepalived 是專門針對LVS設計的一款強大的輔助工具,主要用來提供故障切換和健康檢查功能。在非LVS集羣環境中使用時,keepalived也能夠做爲熱備軟件使用。keepalivedlinux
採用vrrp熱備份協議,以軟件的方式實現linux服務器的多機熱備功能。熱備組內的每一臺服務器都有可能成爲都有可能成爲主服務器,虛擬ip地址(vip)能夠在熱備組內的路由器之間進行轉移,因此稱之位漂移IP地址。web
1、keepalived安裝算法
1、安裝支持軟件服務器
在編譯安裝以前,必須安裝內核開發包,以及支持庫less
yum -y install popt-devel kernel-devel openssl-develdom
2、編譯安裝Keepalivedide
tar zxf keepalived-1.2.2.tar.gz工具
cd zxf keepalived-1.2.2oop
./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-220.el6.i686/測試
make && make install
chkconfig --add keepalived
chkconfig keepalived on//會自動開戶2345的級別
2、使用keepalived實現雙機熱備
基於vrrp 協議的熱備方案,keepalived能夠用作服務器的故障倒換,每一個熱備組能夠有多臺服務器,故障切換主要是針對虛擬ip地址的漂移來實現,可使用於各類應用服務器。
Keepalived雙機熱備示意圖
主、從服務器都須要安裝keepalived,具體步驟參考第一節。能夠在keepalived官網下載 http://www.keepalived.org
一、主服務器的配置
Keepalived服務的配置目錄位於/etc/keepalived,其中keepalived.conf 是主配置文件
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost.localdomain//主調度器的名稱
}
notification_email_from benet root@localhost.localdomain
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_01
}
vrrp_instance VI_1 {
state MASTER//主調度器的熱備狀態
interface eth0
virtual_router_id 10//編號主與從的兩邊要同樣的
priority 100//主調度器的優先級
advert_int 1
authentication {//主、從熱備認證信息
auth_type PASS
auth_pass abc123
}
virtual_ipaddress {//指定羣集VIP地址(虛擬服務器地址),能夠指定多個的
192.168.0.30
}
}
virtual_server 192.168.0.30 80 {//虛擬服務器地址(VIP)、端口
delay_loop 6//健康檢查的間隔時間(秒)
lb_algo rr//輪詢(rr)調度算法
lb_kind DR//直接路由(DR)羣集工做模式
persistence_timeout 60//鏈接保持時間(秒),若註釋掉加個"!"
protocol TCP//應用服務採用的是TCP協議
real_server 192.168.0.10 80 { //第一個web節點的地址、端口
weight 1//節點的權重
TCP_CHECK {//健康檢查方式
connect_port 80//檢查的目標端口
connect_timeout 3//鏈接去超時(秒)
nb_get_retry 3//重試次數
delay_before_retry 3//重試間隔(秒)
}
}
real_server 192.168.0.20 80 { //第二個web節點的地址、端口
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
確認上述配置無誤,而後啓動keepalived服務,實際狀態爲MASTER的主服務器將爲eth0接口自動添加VIP地址,經過 ip addr show dev eth0 命令查看
service keepalived start
二、備用服務器的配置
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost.localdomain//從調度器的名稱
}
notification_email_from benet root@localhost.localdomain
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_01
}
vrrp_instance VI_1 {
state SLAVE//從調度器的熱備狀態
interface eth0
virtual_router_id 10//編號主與從的兩邊要同樣的
priority 95//從調度器的優先級
advert_int 1
authentication {//主、從熱備認證信息
auth_type PASS
auth_pass abc123
}
virtual_ipaddress {//指定羣集VIP地址(虛擬服務器地址),能夠指定多個的
192.168.0.30
}
}
virtual_server 192.168.0.30 80 {//虛擬服務器地址(VIP)、端口
delay_loop 6//健康檢查的間隔時間(秒)
lb_algo rr//輪詢(rr)調度算法
lb_kind DR//直接路由(DR)羣集工做模式
persistence_timeout 60//鏈接保持時間(秒),若註釋掉加個"!"
protocol TCP//應用服務採用的是TCP協議
real_server 192.168.0.10 80 { //第一個web節點的地址、端口
weight 1//節點的權重
TCP_CHECK {//健康檢查方式
connect_port 80//檢查的目標端口
connect_timeout 3//鏈接去超時(秒)
nb_get_retry 3//重試次數
delay_before_retry 3//重試間隔(秒)
}
}
real_server 192.168.0.20 80 { //第二個web節點的地址、端口
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
確認上述配置無誤,一樣啓動keepalived服務,此時主服務器仍然在線,漂移地址由主服務器控制,其餘服務器爲備用狀態,所以備用服務器將不會爲eth0接口添加虛擬ip地址
service keepalived start
ip addr show dev eth0
三、雙機熱備倒換測試
Keepalived的日子消息保存在/var/log/messages 文件中,在主從測試倒換時,能夠跟蹤此文件來觀察熱備狀態的變壞。
less /var/log/messages