Keepalived实现LVS的高可用全解析
? ? ? ? ? ? ? ? ? ? Keepalived實現LVS的高可用
一、概念引入:
keepalived作用:為lvs提供高可用集群
Keepalived的功能:1、將IP地址轉移到另一個節點上;2、轉移lvs規則;3、健康狀況檢查 即:health-check
Keepalived通過VRRP協議實現health-check,那么,什么叫做VRRP呢?
二、VRRP的定義
VRRP (Virtual Routing Redundent Protocol)是虛擬路由冗余協議,通過此協議我們可以把多個路由器做成一個虛擬路由器,從而來保證其中某個路由DOWN掉的時候不會造成我們內部外部網絡的全部中斷,其主要是實現地址漂移的
利用keepalive來實現lvs的Directory Server的高可用集群,然后在利用keepalive和lvs的高可用來實現web服務的負載均衡!
三、RS上相關軟件的安裝和配置
1、安裝配置Web
web1和web2上分別配置相應的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上執行此腳本,來完成vip和arp參數的設置
sh startrs.sh
然后查看相關IP參數信息
ifconfig
5、將Web1配置復制到web2
然后查看相關IP參數信息
ifconfig
四、DR上相關軟件的安裝和配置
1、安裝keepalive軟件,這里使用的是已經制作好的rpm包進行安裝
yum -y --nogpgcheck localinstall keepalived-1.2.7-5.el5.i386.rpm ? #不校驗并自動安裝
2、ipvsadm軟件安裝,用于后面的ipvs規則的查看。
yum –y install ipvsadm ?#安裝用戶空間工具ipvsadm
ipvsadm –L –n ? ? ? ? ? ?#查看系統ipvs規則
如此般,我們的keepalived就安裝完畢!~
五、keepalive配置文件的詳解
? keepalive的配置文件是/etc/keepalived/keepalived.conf,其文件內分為:全局配置、vrrp配置、lvs配置、服務程序監控檢查
(1)全局配置:
! Configuration File for keepalived ? ? ? ? ? ? ?
global_defs { ? ? ? ? ? ? ? ? ? ? ? ? ? ? #全局配置,配置參數為{}內的內容 ?
?notification_email { ? ? ? ? ? ? ? #keepalive服務服務信息通知郵箱,可以為多個 ? ?
?acassen@firewall.loc
? ? ?failover@firewall.loc
? ? ?sysadmin@firewall.loc
} ? ?
?notification_email_from Alexandre.Cassen@firewall.loc ? ?
?smtp_server 127.0.0.1 ? ? ? ? ? ? ? ? ? #smtp服務器 ? ?
?smtp_connect_timeout 30 ? ? ? ? ? ? ? ? ? ? ?#連接smtp超時時間 ? ?
?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設置
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):更改完成后復制到DS2上相同的一份,并把其中的state改成BACKUP,priority修改為100,其他的保存不變
(5)至此我們的DS高可用已經設置完了,啟動keepalive測試下效果吧
? ?DS1和DS2上分別開啟keepalive服務
? ?service keepalived start
? ?ip addr show
(6)
(7)下面用Vip訪問一下我們的web,看是否能成功
? 刷新一下
(8)下面模擬一下DS1 down掉吧~看看其vip能否否自動漂移
? ?在DS1上停止keepalive服務
? ?service keepalived stop
此時再看DS2的IP
再用vip進行web訪問:
? ?以上就是keepalived所要實現的基于LVS高可用的一些功能,當然它的功能遠不止這些,這里只講了一小部分(其他以后會慢慢補充),希望對讀者有所幫助哦!
轉載于:https://blog.51cto.com/mg5211/1202942
總結
以上是生活随笔為你收集整理的Keepalived实现LVS的高可用全解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows ubuntu Andro
- 下一篇: kaptcha 验证码在spring m