Keepalivedhtml
Lvs Active 172.25.23.1 server1.example.comlinux
Lvs Backup 172.25.23.2 server2.example.comvim
Lvs VIP 172.25.23.100 服務器
Real Server 172.25.23.3server3.example.com負載均衡
172.25.23.4server4.example.comide
Iptables selinux 關掉,加解析及時間同步oop
一.安裝軟件測試
Server1 spa
下載安裝包 keepalived-1.2.20.tar.gz router
編譯時須要的軟件有ipvsadm(須要修改yum源,在yum源中添加高可用,負載均衡等) kernel-devel(基於內核轉發的) openssl-devel popt-devel gcc
[root@server1 ~]# tar zxf keepalived-1.2.20.tar.gz
[root@server1 ~]# cd keepalived-1.2.20
[root@server1 keepalived-1.2.20]# ./configure --prefix=/usr/local/keepalived
[root@server1 keepalived-1.2.20]# make && make install
[root@server1 keepalived-1.2.20]# cd /usr/local/keepalived
[root@server1 keepalived]# scp -r /usr/local/keepalived/ root@172.25.23.2:/usr/local
Server1 Server2中 文件會保存/usr/local/keepalived/etc/rc.d/init.d,文件存放的路徑不對,創建連接,操做會比較方便
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 status
二.Keepalived + lvs + http
1.編寫配置文件並啓動服務
[root@server1 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost#配置管理員郵箱
}
notification_email_from keepalived@redhat1.example.com#配置發件人
smtp_server 127.0.0.1#配置郵件服務器
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER #配置模式
interface eth0
virtual_router_id 51 # 兩臺機器的虛擬路由ID同樣,同一個廣播域不一樣
priority 100 # 配置優先級 MASTER的優先級高於BACKUP
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.23.100#配置虛擬IP地址
}
}
virtual_server 172.25.23.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
# persistence_timeout 50
protocol TCP
real_server 172.25.23.3 80 {#配置realaserver
weight 1
TCP_CHECK {#監控配置
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 172.25.23.4 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
[root@server1 ~]# /etc/init.d/keepalived start
[root@server1 ~]# scp /etc/keepalived/keepalived.conf root@172.25.23.2:/etc/keepalived
# 將配置文件同步到slave
[root@server2 ~]# vim /etc/keepalived/keepalived.conf
# 簡單修改一下slave配置文件 修改server1的綠色部分,state BACKUP priority 50
[root@server2 ~]# /etc/init.d/keepalived start
注意:Server3 server4 (real server)上須要添加DR模式,keepalived只負責lvs,而real server上的DR模式仍然須要本身配置
[root@server4 ~]# /etc/init.d/httpd start
2.測試
[root@server3 ~]# echo server3 > /var/www/html/index.html
[root@server4 ~]# echo server4 > /var/www/html/index.html
(1) 高可用測試:中止 master 上的 keepalived 服務,看 backup 是否接管。
(2) 負載均衡測試:訪問 http://172.25.23.100,看到頁面在兩個 real server 上切換表示成功!也能夠經過查看一下LVS狀態 ipvsadm -Lnc 查看詳細鏈接狀況!
(3)故障切換測試(健康監測):任意關閉 realserver 上的 httpd 服務,Keepalived 監控模塊是否能及時發現,而後屏蔽故障節點,同時將服務轉移到正常節點來執行。
三.Keppalived + lvs + ftp
將httpd 服務換成ftp服務便可,即將80 --> 21。
注意:
ftp 的端口號爲21,另外添加persistence_timeout 50,保持一個會話50S。由於ftp服務的數據流是21 -> 20的,若不保存一個會話,則會顯示一直在進行ftp鏈接。
四.當全部的real server都宕機時
在集羣中若是全部real server所有宕機了,客戶端訪問時就會出現錯誤頁面,這樣是很不友好的,咱們得提供一個維護頁面來提醒用戶,服務器正在維護,什麼時間能夠訪問等,下面咱們就來解決一下這個問題。解決方案有兩種,一種是提供一臺備用的real server當全部的服務器宕機時,提供維護頁面,但這樣作有點浪費服務器。另外一種就是在負載均衡器上提供維護頁面,這樣是比較靠譜的,也比較經常使用。下面咱們就來具體操做一下。
(1)在master和slave端安裝httpd及編寫測試頁
yum install -y httpd
echo 「系統正在維護,請稍後訪問「 > /var/www/html/index.html
/etc/init.d/httpd start
(2) 修改配置文件 master slave
Vim /etc/keepalived/keepalived.conf
---->
......
sorry_server 127.0.0.1 80 #增長一行sorry_server
}
#必定要將語句加在{}內部