keepalived+lvs(HA+LB)
生活随笔
收集整理的這篇文章主要介紹了
keepalived+lvs(HA+LB)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
??????????????? ? Keepalived+lvs (HA+LB)主機環(huán)境:RHEL6 系列 selinux and iptables disabled
實驗主機:
LVS‐ACTIVE:
192.168.2.15
LVS‐BACKUP:
192.168.2.117
LVS‐VIP:
192.168.2.27
Realsever:
192.168.2.243 192.168.2.111
主備機上的軟件包安裝
yum install gcc -y
yum install openssl-devel -y
yum install libnl-devel
tar zxf keepalived-1.2.12.tar.gz
cd keepalived-1.2.12
./configure --prefix=/usr/local/keepalived
make && make install
cd /usr/local/keepalived/? keepalived所有的文件目錄都在這,可以做軟鏈接放到規(guī)定路徑
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
lncd keepalived/ -s /usr/local/keepalived/sbin/keepalived /sbin/
cd /etc/keepalived/ 修改配置文件
ls
vim keepalived.conf (格式嚴格)
! Configuration File for keepalived
? global_defs {
?? notification_email {
???? root@localhost #接收警報的 email 地址,可以添加多個
?? }
?? notification_email_from keepalived@joan2.example.com #設置郵件的發(fā)送地址
?? smtp_server 127.0.0.1 #設置郵件的發(fā)送地址
?? smtp_connect_timeout 30 #設置連接 smtp 服務器超時時間
?? router_id LVS_DEVEL #load balancer 的標識 ID,用于 email 警報
}
vrrp_instance VI_1 {
??? state MASTER #備機改為 BACKUP,此狀態(tài)是由 priority 的值來決定的,當前
priority 的值小于備機的值,那么將會失去 MASTER 狀態(tài)
??? interface eth0 #HA 監(jiān)測網(wǎng)絡接口
??? virtual_router_id 45 #主、備機的 virtual_router_id 必須相同,取值 0-255
??? priority 78? #主機的優(yōu)先級,主機優(yōu)先級一定要大于備機
??? advert_int 1 #主備之間的通告間隔秒數(shù)
??? authentication {#主備切換時的驗證
??????? auth_type PASS #設置驗證類型,主要有 PASS 和 AH 兩種
??????? auth_pass 1111 #設置驗證密碼,在一個 vrrp_instance 下,MASTER 與 BACKUP 必
須使用相同的密碼才能正常通信
??? }
??? virtual_ipaddress {
??????? 192.168.2.27#設置虛擬 IP 地址,可以設置多個虛擬 IP 地址,每行一個
??? }
virtual_server 192.168.2.27 80 {#定義虛擬服務器
???? delay_loop 6? #每隔 6 秒查詢 realserver 狀態(tài)
???? lb_algo rr? #lvs 調(diào)度算法,這里使用輪叫
???? lb_kind DR? #LVS 是用 DR 模式
???? #persistence_timeout 50 #會話保持時間,單位是秒,這個選項對于動態(tài)網(wǎng)頁是非常有
用的,為集群系統(tǒng)中 session 共享提供了一個很好的解決方案。有了這個會話保持功能,用戶的
請求會被一直分發(fā)到某個服務節(jié)點,直到超過這個會話保持時間。需要注意的是,這個會話保
持時間,是最大無響應超時時間,也就是說用戶在操作動態(tài)頁面時,如果在 50 秒內(nèi)沒有執(zhí)行任
何操作,那么接下來的操作會被分發(fā)到另外節(jié)點,但是如果一直在操作動態(tài)頁面,則不受 50 秒
的時間限制。
???? protocol TCP #指定轉(zhuǎn)發(fā)協(xié)議類型,有 tcp 和 udp 兩種
???? real_server 192.168.2.243 80 { #配置服務節(jié)點
????? weight 1? #配置服務節(jié)點的權值,權值大小用數(shù)字表示,數(shù)字越大,權
值越高,設置權值的大小可以為不同性能的服務器分配不同的負載,可以對性能高的服務器設
置較高的權值,而對性能較低的服務器設置相對較低的權值,這樣就合理的利用和分配了系統(tǒng)
資源
????? TCP_CHECK { #realserve 的狀態(tài)檢測設置部分,單位是秒
????? connect_timeout 3 #10 秒無響應超時
????? nb_get_retry 3 #重試次數(shù)
????? delay_before_retry 3 #重試間隔
????? }
??? }
??? real_server 192.168.2.111 80 {
????? weight 1
????? TCP_CHECK {
????? connect_timeout 3
????? nb_get_retry 3
???? delay_before_retry 3
???? }
??? }
}可以照這樣添加虛擬服務器
/etc/init.d/keepalived restart 啟動keepalived
分別在 realserver 上執(zhí)行以下命令
192.168.2.243
ifconfig eth0:0 192.168.2.27 netmask 255.255.255.255 up 添加虛擬ip
arptables -A IN -d 192.168.2.27 -j DROP
arptables -A OUT -s 192.168.2.27 -j mangle --mangle-ip-s 192.168.2.243
/etc/init.d/arptables_jf save
/etc/init.d/arptables_jf start
192.168.2.111
ifconfig eth0:0 192.168.2.27 netmask 255.255.255.255 up
arptables -A IN -d 192.168.2.27 -j DROP
arptables -A OUT -s 192.168.2.27 -j mangle --mangle-ip-s 192.168.2.111
/etc/init.d/arptables_jf save
/etc/init.d/arptables_jf start
檢測:
1.高可用測試:停止 master 上的 keepalived 服務,看 backup 是否接管。
2. 負載均衡測試:訪問 http://192.168.2.27,看到頁面在兩個 realserver 上切換表示成功!
你也可以通過 ipvsadm -Lnc 查看詳細連接情況!
3. 故障切換測試:任意關閉 realserver 上的 httpd 服務,Keepalived 監(jiān)控模塊是否能及時發(fā)現(xiàn),
然后屏蔽故障節(jié)點,同時將服務轉(zhuǎn)移到正常節(jié)點來執(zhí)行。
西
轉(zhuǎn)載于:https://my.oschina.net/u/1772820/blog/271694
總結(jié)
以上是生活随笔為你收集整理的keepalived+lvs(HA+LB)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈Java虚拟机
- 下一篇: 自定义拦截器用于用户登录的