host1 主調度器,host4輔調度器,host2,host3是服務器
基本配置:服務器host2和host3,不需要vip,start keepalived時會自動生成vip,[root@host1 ~]# ipvsadm -A -t 172.25.254.10:80 -s rr
[root@host1 ~]# ipvsadm -a -t 172.25.254.10:80 -r 172.25.254.2:80 -g
[root@host1 ~]# ipvsadm -a -t 172.25.254.10:80 -r 172.25.254.3:80 -g
[root@host1 ~]# /etc/init.d/ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ]
調度器vip不用自己手動添加,
host2,host3服務器需要
arptables -A IN -d 172.25.254.10 -j DROP
arptables -A OUT -s 172.25.254.10 -j mangle --mangle-ip-s 172.25.254.2 #host3最後ip爲172.25.254.3
1:安裝源碼包編譯需要的工具。並下載keepalived的源碼包。 (兩個節點都需要做)
gcc 和 openssl-devel
2:解壓並且編譯keepalived的源碼包
tar zxf keepalived-1.4.1.tar.gz ##解壓
./configure --prefix=/usr/local/keepalived --with-init=SYSV ##進入解壓後的目錄中編譯
make
make install
3:連接或者複製配置文件到正常目錄
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ ##往掠配置文件
cp -r /usr/local/keepalived/etc/keepalived/ /etc ##配置主目錄
cd /usr/local/keepalived/etc/rc.d/init.d
chmod +x keepalived
cp -r /usr/local/keepalived/sbin/keepalived /usr/sbin/ ##keepalived命令
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ ##服務啓動命令
MASTER主機
安裝yum install openssh-clients.x86_64
scp -r /usr/local/keepalived/ 備機:/usr/local/
BACKUP輔機
yum -y install ipvsadm*
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
/etc/init.d/keepalived start
/etc/init.d/keepalived stop
4主調度器文件配置:
[root@host1 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost ###接受報警的郵箱
}
notification_email_from keepalived@localhost ##郵件發送者
smtp_server 127.0.0.1 ##
smtp_connect_timeout 30 ##連接smtp的超時時間
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER #備機需要改爲BACKUP
interface eth1 #高可用的檢測網絡接口
virtual_router_id 51 #主和備機的id必須一樣,且在0~255
priority 100 #主機的優先級,備機應該此值小點
advert_int 1 #主備之間的通告時間間隔秒數
authentication {
auth_type PASS #設置驗證類型
auth_pass 1111 #設置驗證密碼
}
virtual_ipaddress {
172.25.254.10 #VIP
}
}
virtual_server 172.25.254.10 80 {
delay_loop 6 #每隔4秒查詢realserver的狀態
lb_algo rr #rr論叫算法
lb_kind DR #LVS的DR模式
#persistence_timeout 50 #保持會話使用的時常ftp服務類型
protocol TCP ##tcp協議
real_server 172.25.254.2 80 { ##RS
weight 1 #權重
TCP_CHECK { #realserver的狀態檢測設置部分
connect_timeout 3 #3秒無響應超時
retry 3 #重試次數
delay_before_retry 3 #重試間隔
}
}
real_server 172.25.254.3 80 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
###5輔調度器文件配置
[root@host4 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
interface eth1
virtual_router_id 51
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.254.10
}
}
virtual_server 172.25.254.10 80 {
delay_loop 6
lb_algo rr
lb_kind DR
#persistence_timeout 50
protocol TCP
real_server 172.25.254.2 80 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 172.25.254.3 80 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
6完成測試:
@高可用的解決方案:
主調度器在使用中,輔調度器開啓,
當主調度器host1 down掉,備用調度器會接替工作
@健康檢查機制,host2關閉http服務
日誌和郵件查看相關信息