keepalived安装流程.docx
《keepalived安装流程.docx》由会员分享,可在线阅读,更多相关《keepalived安装流程.docx(10页珍藏版)》请在冰豆网上搜索。
keepalived安装流程
CentOS6.5和CentOS7配置keepalived
1.检查依赖包
rpm-qa|grepopenssl
rpm-qa|greppopt
rpm-qa|grepkernel
如果没有需要用yum进行安装
2.安装keepalived软件包
提示:
安装前请确认路径–whit-kernel-dir=/usr/src/kernels/3.10.0-327.el7.x86_64或/usr/src/kernels/2.6.32-431.el6.x86_64如果没有此路径,请看下面的补充安装说明:
法一:
ln-s/usr/src/kernels/3.10.0-327.el7.x86_64/usr/src/linux(CentOS7不需要这个连接)
ln-s/usr/src/kernels/2.6.32-431.el6.x86_64/usr/src/linux做连接只是为了配合LVS如果只是切换,不需要做这个。
提示:
安装时有可能会没有/usr/src/kernels/3.10.0-327.el7.x86_64,这是因为缺少kernel-devel-3.10.0-327.el7.el5软件包,此时需要提前通过yuminstallkernel-devel命令安装
tarzxfkeepalived-1.2.20.tar.gz
cdkeepalived-1.2.20
./configure
make
makeinstall
错误1:
一般6.4有这个错误
checkingforopenssl/ssl.h..no
configure:
error:
!
!
!
OpemSSLisnotproperlyinstalledonyoursystem。
!
!
!
!
!
!
CannotincludeOpenSSLheadersfiles.!
!
!
yuminstallopenssl*-y
错误2:
checkingforpopGetContextin–lpopt…no
configure:
error:
Poptlibrariesisrerequired
CentOS6.5安装效果图:
CentOS7
下面是keepalivedconfigure低版本的正确结果:
Keepalivedversion
Keepalivedversion:
版本号
Compiler:
gcc
Compilerflags:
-g–02
ExtraLib:
-lpopot–lssl–lcrypto
UseIPVSFramwork:
YES#LVS功能
IPVSsyncdaemonsupport:
YES#LVS功能
UseVRRPFramework:
YES#VRRP功能
UseLineWatch:
no
UseDebugflags:
no
编译参数说明:
./configure–help
--with-kernel-dir这是个很重要的参数,但这个参数不是要把keepalived编译进内核,而是指定使用内核源码里面的头文件,就是include目录,如果使用LVS时才需要用到此参数,否则不需要。
--disable-lvs-syncddonotuseLVSsynchronizationdaemon
--disable-lvsdonotusetheLVSframework
提示:
如果只想做keepalived其他服务(http,db,nginx,haproxy)高可用而不做LVS的高可用,可以使用--disable-lvs-syncd和--disable-lvs禁止LVS功能,本文只演示keepalived的高可用服务,因此不加这个参数。
3.配置规范启动
/bin/cp/usr/local/etc/rc.d/init.d/keepalived/etc/init.d/#==>生成启动脚本命令
/bin/cp/usr/local/etc/sysconfig/keepalived/etc/sysconfig/#==>配置启动脚本的参数
mkdir/etc/keepalived#==>创建默认的keepalived的配置文件路径
/bin/cp/usr/local/etc/keepalived/keepalived.conf/etc/keepalived/#==>把keepalived.conf模板拷贝到/etc/keepalived/下
/bin/cp/usr/local/sbin/keepalived/usr/sbin/
/etc/init.d/keepalivedstart或/etc/init.d/keepalivedstop
ps–ef|grepkeep
/etc/init.d/keepalivedstop
操作命令:
/bin/cp/usr/local/etc/rc.d/init.d/keepalived/etc/init.d/
/bin/cp/usr/local/etc/sysconfig/keepalived/etc/sysconfig/
mkdir/etc/keepalived-p
/bin/cp/usr/local/etc/keepalived/keepalived.conf/etc/keepalived/
/bin/cp/usr/local/sbin/keepalived/usr/sbin/
/etc/init.d/keepalivedstart
ps-ef|grepkeep
/etc/init.d/keepalivedstop
操作过程:
4.keepalive.conf实现IP接管部分参数说明
[root@nginx-testkeepalived]#morekeepalived.conf
1!
ConfigurationFileforkeepalived==>注释
2
3global_defs{
4notification_email{
5acassen@firewall.loc
6failover@firewall.loc
7sysadmin@firewall.loc
8}
9notification_email_fromAlexandre.Cassen@firewall.loc
10smtp_server192.168.200.1
11smtp_connect_timeout30
12router_idLVS_DEVEL
13vrrp_skip_check_adv_addr
14vrrp_strict
15}
#全局定义模块:
主要设置keepalived的通知机制和标识
1.第4~11行是email通知参数。
作用:
当LVS发生切换或RS等有故障时,会发邮件报警。
这是可选配置,notification_email指定在keepalived发生事件时,需要发给的email地址,可以有多个。
每行一个。
2.smtp_server指定发送邮件的smtp服务器,如果本机开启了sendmail,就可以使用上面默认配置实现邮件发送。
3.第12行是lvs负载均衡表示器(router_id)。
在一个局域网内它应该是唯一的。
4.大括号{}。
用来分隔定义块,因此必须成对出现。
如果漏写了,keepalived运行时不会得到预期的结果。
由于定义块内存在嵌套关系,因此很容易遗漏结尾处的大括号,这点要特表注意。
17vrrp_instanceVI_1{
18stateMASTER
19interfaceeth0
20virtual_router_id51
21priority100
22advert_int1
23authentication{
24auth_typePASS
25auth_pass1111
26}
27virtual_ipaddress{
28192.168.200.16
29192.168.200.17
30192.168.200.18
31}
32}
VRRP定义块
1.第17行为vrrp实例vrrp_instance,每个vrrp实例可以认为是一个keepalived实例,在配置中VRRP实例可以有多个。
(1)第18行实例状态statem只有MASTER和BACKUP两种状态,并且需要大写这些单词。
其中MASTER为工作状态,BACKUP为备用状态。
当MASTER所在的服务器失效时,BACKUP所在的系统会自动把它的状态由BACKUP切换到MASTER;当失效的MASTER所造的系统恢复时,BACKUP从MASTER恢复到BACKUP状态。
(2)通信接口interface.对外提供网络服务的接口。
如eth0,eth1.当前主流的服务器都有两个或以上的网路接口,选择服务接口时一定要搞清楚。
(3)lvs_sync_daemon_interface.负载均衡器之间的监控接口,类似于HAHeartBeat的心跳线
(4)虚拟路由标识virtual_router_id.这个标识是一个数字,并且同一个VRRP实例使用唯一的标识。
即同一个vrrp_instanceMASTER和BACKUP的virtual_router_id是一致的,同时在整个keepalived内是唯一的。
(5)优先级priority.这是一个数字,数值越高优先级越高。
在同一个vrrp_instance里,MASTER的优先级高于BACKUP,比如:
若MASTER的prority为150,那么BACKUP的prority只能是149或更小的值。
(6)同步通知间隔advert_int,MASTER与BAKUP负载均衡器之间同步检查的时间间隔,单位为s
(7)验证authentication.包含验证类型和验证密码。
类型只要有PASS和AH两种。
通常使用的类型为PASS,据说AH使用时有问题,验证密码为明文,同一vrrp实例MASTER与BACKUP使用相同的密码才能正常通信,这里官方给推荐使用明文即可。
(8)虚拟IP地址virtual_ipaddress.可以配置多个IP地址,每个地址占一行,不需要指定子网掩码。
注意:
这个IP必须与我们的LVS客户端设定的VIP相一致!
5.keepalived实现双机切换
183配置为主服务器:
vi/etc/keepalived/keepalived.conf
!
ConfigurationFileforkeepalived
global_defs{
notification_email{
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_fromAlexandre.Cassen@firewall.loc
smtp_server192.168.200.1
smtp_connect_timeout30
router_idLVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
}
vrrp_instanceVI_1{
stateMASTER
interfaceeth0
virtual_router_id51
priority150
advert_int1
authentication{
auth_typePASS
auth_pass1111
}
virtual_ipaddress{
192.168.88.190
}
}
185配置为备服务器:
vi/etc/keepalived/keepalived.conf
!
ConfigurationFileforkeepalived
global_defs{
notification_email{
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_fromAlexandre.Cassen@firewall.loc
smtp_server192.168.200.1
smtp_connect_timeout30
router_idLVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
}
vrrp_instanceVI_1{
stateBACKUP
interfaceens160
virtual_router_id51
priority100
advert_int1
authentication{
auth_typePASS
auth_pass1111
}
virtual_ipaddress{
192.168.88.190
}
}
启动:
/etc/init.d/keepalivedstart
ps-ef|grepkeep
停止:
/etc/init.d/keepalivedstop
keepalived只能保证服务器宕机情况下实现VIP的切换,但是当某台NGINX服务停止后并不能实现切换,因此需要写脚本进行监控:
cat>check_nginx.sh
#!
/bin/sh
whiletrue
do
PNUM=`ps-ef|grepnginx|wc-l`
if[$PNUM-lt2];then
/etc/init.d/keepalivedstop>/dev/null2>&1
killall-9keepalived>/dev/null2>&1
killall-9keepalived>/dev/null2>&1
fi
echo`date+'%D%X'`
sleep5
done
5.测试
主备模式
183为主备,185作为备份
1.183宕机情况下,会切换到185
2.183 的nginx停掉后,通过脚本可以切换到185
主主模式:
这个模式需要在两台服务器都配置MASTER和BACKUP,总共有两个IP可以访问互为主备
任何一台宕机,两个IP都可以使用