Keepalived实现LVS的高可用全解析
? ? ? ? ? ? ? ? ? ? Keepalived實(shí)現(xiàn)LVS的高可用
一、概念引入:
keepalived作用:為lvs提供高可用集群
Keepalived的功能:1、將IP地址轉(zhuǎn)移到另一個(gè)節(jié)點(diǎn)上;2、轉(zhuǎn)移lvs規(guī)則;3、健康狀況檢查 即:health-check
Keepalived通過(guò)VRRP協(xié)議實(shí)現(xiàn)health-check,那么,什么叫做VRRP呢?
二、VRRP的定義
VRRP (Virtual Routing Redundent Protocol)是虛擬路由冗余協(xié)議,通過(guò)此協(xié)議我們可以把多個(gè)路由器做成一個(gè)虛擬路由器,從而來(lái)保證其中某個(gè)路由DOWN掉的時(shí)候不會(huì)造成我們內(nèi)部外部網(wǎng)絡(luò)的全部中斷,其主要是實(shí)現(xiàn)地址漂移的
利用keepalive來(lái)實(shí)現(xiàn)lvs的Directory Server的高可用集群,然后在利用keepalive和lvs的高可用來(lái)實(shí)現(xiàn)web服務(wù)的負(fù)載均衡!
三、RS上相關(guān)軟件的安裝和配置
1、安裝配置Web
web1和web2上分別配置相應(yīng)的IP地址:
RIP1:192.16.0.210/16
RIP2:192.16.0.211/16
2、安裝httpd
yum install httpd –y ?
echo "web1.yuanquan.com"> /var/www/html/index.html
3、配置腳本 startrs.sh 如下:
#!/bin/bash
#
# Script to start LVS DR real server.
# description: LVS DR real server
#
. ?/etc/rc.d/init.d/functions
VIP=192.168.0.212
host=`/bin/hostname`
case "$1" in
start)
? ? ? # Start LVS-DR real server on this machine.
? ? ? ?/sbin/ifconfig lo down
? ? ? ?/sbin/ifconfig lo up
? ? ? ?echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
? ? ? ?echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
? ? ? ?echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
? ? ? ?echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
? ? ? ?/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
? ? ? ?/sbin/route add -host $VIP dev lo:0
;;
stop)
? ? ? ?# Stop LVS-DR real server loopback device(s).
? ? ? ?/sbin/ifconfig lo:0 down
? ? ? ?echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
? ? ? ?echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
? ? ? ?echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
? ? ? ?echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
;;
status)
? ? ? ?# Status of LVS-DR real server.
? ? ? ?islothere=`/sbin/ifconfig lo:0 | grep $VIP`
? ? ? ?isrothere=`netstat -rn | grep "lo:0" | grep $VIP`
? ? ? ?if [ ! "$islothere" -o ! "isrothere" ];then
? ? ? ? ? ?# Either the route or the lo:0 device
? ? ? ? ? ?# not found.
? ? ? ? ? ?echo "LVS-DR real server Stopped."
? ? ? ?else
? ? ? ? ? ?echo "LVS-DR real server Running."
? ? ? ?fi
;;
*)
? ? ? ? ? ?# Invalid entry.
? ? ? ? ? ?echo "$0: Usage: $0 {start|status|stop}"
? ? ? ? ? ?exit 1
;;
esac
4、在web1上執(zhí)行此腳本,來(lái)完成vip和arp參數(shù)的設(shè)置
sh startrs.sh
然后查看相關(guān)IP參數(shù)信息
ifconfig
5、將Web1配置復(fù)制到web2
然后查看相關(guān)IP參數(shù)信息
ifconfig
四、DR上相關(guān)軟件的安裝和配置
1、安裝keepalive軟件,這里使用的是已經(jīng)制作好的rpm包進(jìn)行安裝
yum -y --nogpgcheck localinstall keepalived-1.2.7-5.el5.i386.rpm ? #不校驗(yàn)并自動(dòng)安裝
2、ipvsadm軟件安裝,用于后面的ipvs規(guī)則的查看。
yum –y install ipvsadm ?#安裝用戶(hù)空間工具ipvsadm
ipvsadm –L –n ? ? ? ? ? ?#查看系統(tǒng)ipvs規(guī)則
如此般,我們的keepalived就安裝完畢!~
五、keepalive配置文件的詳解
? keepalive的配置文件是/etc/keepalived/keepalived.conf,其文件內(nèi)分為:全局配置、vrrp配置、lvs配置、服務(wù)程序監(jiān)控檢查
(1)全局配置:
! Configuration File for keepalived ? ? ? ? ? ? ?
global_defs { ? ? ? ? ? ? ? ? ? ? ? ? ? ? #全局配置,配置參數(shù)為{}內(nèi)的內(nèi)容 ?
?notification_email { ? ? ? ? ? ? ? #keepalive服務(wù)服務(wù)信息通知郵箱,可以為多個(gè) ? ?
?acassen@firewall.loc
? ? ?failover@firewall.loc
? ? ?sysadmin@firewall.loc
} ? ?
?notification_email_from Alexandre.Cassen@firewall.loc ? ?
?smtp_server 127.0.0.1 ? ? ? ? ? ? ? ? ? #smtp服務(wù)器 ? ?
?smtp_connect_timeout 30 ? ? ? ? ? ? ? ? ? ? ?#連接smtp超時(shí)時(shí)間 ? ?
?router_id LVS_DEVEL ?
(2):虛擬路由組
vrrp_instance VI_1 ?{
state MASTER
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication ?{
auth_type PASS
auth_pass password
?}
virtual_ipaddress {
172.16.10.1
?}
?}
(3):Virtual_server與real_server設(shè)置
virtual_server 172.16.10.1 80 {
delay_loop 6
lb_algo wlc
Lb_kind DR
nat_mask 255.255.0.0
persistence_timeout 50
protocol TCP
real_server 192.168.0.210 ?80 {
weight 1
url {
path /
status_code 200
?}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
?}
?}
virtual_server 172.16.10.1 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.0.0
persistence_timeout 50
protocol TCP
real_server 192.168.0.211 ?80 {
weight 1
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
(4):更改完成后復(fù)制到DS2上相同的一份,并把其中的state改成BACKUP,priority修改為100,其他的保存不變
(5)至此我們的DS高可用已經(jīng)設(shè)置完了,啟動(dòng)keepalive測(cè)試下效果吧
? ?DS1和DS2上分別開(kāi)啟keepalive服務(wù)
? ?service keepalived start
? ?ip addr show
(6)
(7)下面用Vip訪問(wèn)一下我們的web,看是否能成功
? 刷新一下
(8)下面模擬一下DS1 down掉吧~看看其vip能否否自動(dòng)漂移
? ?在DS1上停止keepalive服務(wù)
? ?service keepalived stop
此時(shí)再看DS2的IP
再用vip進(jìn)行web訪問(wèn):
? ?以上就是keepalived所要實(shí)現(xiàn)的基于LVS高可用的一些功能,當(dāng)然它的功能遠(yuǎn)不止這些,這里只講了一小部分(其他以后會(huì)慢慢補(bǔ)充),希望對(duì)讀者有所幫助哦!
轉(zhuǎn)載于:https://blog.51cto.com/mg5211/1202942
總結(jié)
以上是生活随笔為你收集整理的Keepalived实现LVS的高可用全解析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: windows ubuntu Andro
- 下一篇: kaptcha 验证码在spring m