新聞中心
監(jiān)控集群系統(tǒng)中各個(gè)服務(wù)工作狀態(tài),可以自動(dòng)剔除壞節(jié)點(diǎn),修復(fù)之后又加回來,工作在3,4,5層,
VRRP虛擬路由器冗余協(xié)議:解決靜態(tài)路由出現(xiàn)的單點(diǎn)故障,是一種主備模式的協(xié)議,可以在網(wǎng)絡(luò)發(fā)生故障時(shí)透明地進(jìn)行設(shè)備切換而不影響主機(jī)間的數(shù)據(jù)通信
VRRP可以將兩臺(tái)或多臺(tái)物理路由器設(shè)備虛擬成一個(gè)虛擬路由器,通過一個(gè)虛擬ip對(duì)外提供服務(wù),由選舉算法選出一個(gè)master,當(dāng)master失效則從backup中重新選取
一個(gè)VRIP與一組IP地址構(gòu)成一個(gè)虛擬路由器,協(xié)議中所有報(bào)文都通過多播形式發(fā)送,而在虛擬路由器中只有master會(huì)一直發(fā)送VRRP數(shù)據(jù)包,當(dāng)沒有收到數(shù)據(jù)包就會(huì)重新選舉
運(yùn)行機(jī)制:網(wǎng)絡(luò)層通過發(fā)送icmp包探測(cè),如果無返回就剔除;傳輸層通過掃描端口,沒有響應(yīng)數(shù)據(jù)就剔除,應(yīng)用層根據(jù)用戶自定義的設(shè)定來判斷是否正常
結(jié)構(gòu)上整體分兩層,內(nèi)核空間層(kernel space):處于最底層,包括IPVS和NETLINK兩個(gè)模塊,ipvs是第三方模塊,可以實(shí)現(xiàn)基于IP的負(fù)載均衡集群;NETLINK主要用于實(shí)現(xiàn)一些高級(jí)路由框架和一些相關(guān)的網(wǎng)絡(luò)功能,完成用戶空間Netlink Reflector發(fā)來的網(wǎng)絡(luò)請(qǐng)求。
用戶空間層(user space):分為四個(gè)部分,
Schedule I/O Multiplexer:I/O復(fù)用分發(fā)調(diào)度器,安排內(nèi)部的任務(wù)請(qǐng)求
Memory Manage:內(nèi)存管理機(jī)制,提供了訪問內(nèi)存的一些通用方法
control plane:控制面板,實(shí)現(xiàn)對(duì)配置文件進(jìn)行編譯和解析(只有用到某模塊才解析)
core component:包含一系列模塊
·watchDog:針對(duì)被監(jiān)視的目標(biāo)設(shè)置一個(gè)計(jì)數(shù)器和一個(gè)閾值,自己增加計(jì)數(shù),等待被監(jiān)視目標(biāo)周期性地重置該計(jì)數(shù),如果目標(biāo)發(fā)生錯(cuò)誤便無法重置,通過Watchdog監(jiān)控Checkers和VRRP
checkers:最基礎(chǔ)的功能,實(shí)現(xiàn)對(duì)服務(wù)器運(yùn)行狀態(tài)監(jiān)測(cè)和故障隔離
VRRP Stack:可以實(shí)現(xiàn)HA集群中失敗切換(failover)功能,通過VRRP功能再結(jié)合LVS負(fù)載均衡軟件就可部署一個(gè)高性能的負(fù)載均衡集群系統(tǒng)
IPVS wrapper:將設(shè)置好的ipvs規(guī)則發(fā)送給內(nèi)核空間并提交給LPVS模塊,便可實(shí)現(xiàn)負(fù)載均衡
Netlink Reflector:實(shí)現(xiàn)高可用集群中failover時(shí)虛擬IP的設(shè)置和切換,發(fā)送給NETLINK模塊完成
安裝:./configure --sysconf=/etc指定配置文件 --with-kernel-dir=/usr/src/kernels/2.6.32-431.5.1.e16.x86_64指定要使用的內(nèi)核源碼的頭文件
如果只是啟動(dòng)高可用,不需要IPVS模塊--disable-lvs關(guān)閉 --disable-lvs-syncd關(guān)閉ipvs同步
IPVS use libnl使用新版libnl,需要libnl和libnl-devel包
Use VRRP Framework表示使用VRRP框架,必須的模塊;VMAC使用基礎(chǔ)vmac接口的xmit包
ln -s /usr/local/sbin/keepalived /sbin/ chkconfig --add keepalived --level 35 on
全局配置:
global_defs{
notification_email{
453341@qq.com #需要開啟Sendmail服務(wù)
ixdba@163.com
}
notification_email_fromkeepalived@localhost
smtp_server192.168.200.1 設(shè)置郵件的smtp server地址
smtp_connect_timeout30 超時(shí)時(shí)間
router_idLVS_DEVEL 標(biāo)示,顯示在郵件主題中
}
VRRPD配置:
同步組配置:vrrp_sync_groupG1{
group{
VI_1 #實(shí)例名
VI_2
VI_3}
notify_backup"/usr/local/bin/vrrp.backarg1arg2"進(jìn)入backup執(zhí)行的腳本,可以是狀態(tài)報(bào)警或服務(wù)管理
notify_fault"/usr/local/bin/vrrp.faultarg1arg2"進(jìn)入fault執(zhí)行的腳本,可以是狀態(tài)報(bào)警或服務(wù)管理
notify_stop"/usr/local/bin/vrrp.stoparg1arg2"終止時(shí)需要執(zhí)行的腳本
notify_master"/usr/local/bin/vrrp.mastarg1arg2"指定當(dāng)keepalived進(jìn)入MASTER狀態(tài)時(shí)要執(zhí)行的腳本,允許傳人參數(shù)}
vrrp_instance VI_1{
.....
advert_int 1間隔時(shí)間
mcast_src_ip 發(fā)送多播包的地址,可不設(shè)
track_interface 設(shè)置一些額外的監(jiān)控接口
virtual_ipaddress {}虛擬ip主節(jié)點(diǎn)時(shí)自動(dòng)添加
virtual_routers {}
nopreempt不自動(dòng)切回
preemtp_delay 300切回去延時(shí)
}
virtual_server 192.168.12.200 80{
delay_loop 6 健康檢查時(shí)間間隔
lb_algo rr wrr lc wlc lblc sh dh
lb_kind NAT/TUN/DR
persistent_timeout 50無響應(yīng)保持時(shí)間
persistence_granularity 255.255.255.0
protocol TCP、UDP
ha_suspend 切換時(shí)不檢查realserver
virtualhost http_get/ssl_get健康檢測(cè)時(shí)指定web服務(wù)器的虛擬主機(jī)地址(bindto)
sorry_server realserver全部爆炸后使用此地址}
real_server 192.168.12.132 80{
weight 3
inhibit_on_failure 不刪除節(jié)點(diǎn)weight值設(shè)為0
notify_up XXX.sh notify_down yyy.sh
TCP_CHECK{connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before 3}
HTTP_GET|SSL_GET {
url{path /index.html digest (genhash -s 192.168.12.80 -p 80 -u /index.html) status_code 200}
bindto 192.168.12.80
connect_port 80connect_timeout 3 nb_get_retry 3 delay_before 3}}
基礎(chǔ)功能vrrp_script check_httpd{
script "kilall -0 httpd"
interval 2 fall 2 rise 1 }
track_script{check_httpd}
script "if[-f /var/run/httpd/httpd.pid];then exit 0; else exit 1;fi"
script "
script “/xxxx/mysql.sh" 用腳本檢測(cè)
網(wǎng)站欄目:keepalived學(xué)習(xí)筆記
文章起源:http://www.ef60e0e.cn/article/cgjhes.html