下面是keepalived詳細配置文件解析:
[root@localhost kernels]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
# notification_email {
# [email protected]
# [email protected]
# [email protected]
# }
# notification_email_from [email protected]
# smtp_server 192.168.200.1
# smtp_connect_timeout 30
router_id LVS_DEVEL //負載均衡器標識,同一網段內,可以相同
}
vrrp_sync_group VGM { //定義一個vrrp組
group {
VI_1
}
}
vrrp_instance VI_1 { //定義vrrp實例
state MASTER //主LVS是MASTER,從的BACKUP
interface eth0 //LVS監控的網絡接口
virtual_router_id 51 //同一實例下virtual_router_id必須相同
priority 100 //定義優先級,數字越大,優先級越高
advert_int 5 //MASTER與BACKUP負載均衡器之間同步檢查的時間間隔,單位是秒
authentication { //驗證類型和密碼
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { //虛擬IP
192.168.1.8
# 192.168.1.9 //如果有多個,往下加就行了
# 192.168.1.7
}
}
virtual_server 192.168.1.8 80 { //定義虛擬服務器
delay_loop 6 //健康檢查時間,單位是秒
lb_algo rr //負載調度算法,這裏設置爲rr,即輪詢算法
lb_kind DR //LVS實現負載均衡的機制,可以有NAT、TUN和DR三個模式可選
persistence_timeout 50 //會話保持時間,單位是秒(可以適當延長時間以保持session)
protocol TCP //轉發協議類型,有tcp和udp兩種
sorry_server 127.0.0.1 80 //web服務器全部失敗,vip指向本機80端口
real_server 192.168.1.16 80 { //定義WEB服務器
weight 1 //權重
TCP_CHECK { //通過tcpcheck判斷RealServer的健康狀態
connect_timeout 5 //連接超時時間
nb_get_retry 3 //重連次數
delay_before_retry 3 //重連間隔時間
connect_port 80 //檢測端口
}
}
real_server 192.168.1.17 80 {
weight 1
TCP_CHECK {
connect_timeout 5
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
實例:
vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER # 備用用 BACKUP
interface eth2 #用的是哪個網卡
virtual_router_id 51 #虛擬路由地址必須一樣,才能配置成一個組
priority 100 # 備用用 90
advert_int 1 #MASTER與BACKUP負載均衡器之間同步檢查的時間間隔,單位是秒
authentication {
auth_type PASS #(密碼形式)
auth_pass 1111
}
virtual_ipaddress {
192.168.32.100
}
}
virtual_server 192.168.32.100 80 {
delay_loop 6 #每隔6s 查詢 realserver 狀態
lb_algo rr #lvs 算法
lb_kind NAT #Direct Route
persistence_timeout 60 #會話保持時間,單位是秒(可以適當延長時間以保持session)
protocol TCP # 用 TCP協議檢查 realserver 狀態
real_server 192.168.32.85 80 {
weight 1
TCP_CHECK {
connect_timeout 10 #10s 無響應超時
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
# real_server 192.168.32.86 80 {
weight 2
TCP_CHECK {
connect_timeout 10 #10s 無響應超時
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
#
}
使用源碼先安裝keepalived 1.2.6:
cd /usr/src
wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz
tar zxf keepalived-1.2.13.tar.gz
cd keepalived-1.2.13
./configure --prefix=/usr/local/keepalived
make
make install
1. 建立服務啓動腳本,以便使用service命令控制之
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
chmod +x /etc/init.d/keepalived
因爲我們使用非默認路徑(/usr/local)安裝keepalived, 故需要修改幾處路徑,以保證keepalived能正常啓動, 需要修改的文件如下:
2. 修改/etc/init.d/keepalived, 尋找大約15行左右的. /etc/sysconfig/keepalived, 修改爲:
sed -i "15d;14a . /usr/local/keepalived/etc/sysconfig/keepalived" /etc/init.d/keepalived
同時在上述行下添加以下內容(將keepavlied主程序所在路徑導入到環境變量PATH中):
sed -i '15a PATH="$PATH:/usr/local/keepalived/sbin"' /etc/init.d/keepalived
sed -i '16a export PATH' /etc/init.d/keepalived
3. 修改/usr/local/keepalived/etc/sysconfig/keepalived文件,設置正確的服務啓動參數
sed -i '14d;13a KEEPALIVED_OPTIONS="-D -f /etc/keepalived/keepalived.conf"' /usr/local/keepalived/etc/sysconfig/keepalived
mkdir /etc/keepalived/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
4. 經過以上修改,keepalived基本安裝即可完成,啓動測試之:
service keepalived start
5. 切勿忘記將此服務設置爲開機啓動
chkconfig keepalived on