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