keepalived 安装
软件介绍
什么是负载均衡高可用
nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。
为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供负载均衡服务;
当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主服务器就开始再次提供负载均衡服务。
什么是keepalived
keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。
Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
keepalived工作原理
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。 虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(VIP = Virtual IP Address,虚拟IP地址,该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到VRRP包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。 keepalived主要有三个模块,分别是core、check和VRRP。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。VRRP模块是来实现VRRP协议的。
注意
keepalived需要一个虚拟IP(vip),这个虚拟ip是需要服务器提供商支持的,在安装前要确保服务器是支持该项服务的。
(lsmod|grep ip_vs)查看这个是否存在;不存在则需要先加载到内核然。
安装
第一种安装方式:可以查看saltstack 的文章进行查看。
第二种方式:(编译安装)
环境准备:
yum install kernel-devel* openssl openssl-devel popt-devel libnl libnl-devel popt gcc gcc-c++ glibc make autoconf
安装:
tar xf keepalived-1.3.5.tar.gz && cd keepalived-1.3.5 &&./configure --prefix=/usr/local/keepalived --disable-fwmark && make && make install
配置文件以及启动文件:
启动脚本: cp ../keepalived-1.3.5/keepalived/etc/init.d/keepalived /etc/init.d/keepalived #要修改脚本中 keepalive的安装路径 chmod +x /etc/init.d/keepalived 将keepalived文件拷贝到etc下,加入网卡配置 cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ 创建keepalived文件夹 mkdir -p /etc/keepalived 将keepalived配置文件拷贝到etc下 cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf chkconfig --add keepalived 配置日志文件: 1.将keepalived日志输出到local0: vi /etc/sysconfig/keepalived KEEPALIVED_OPTIONS="-D -d -S 0" 2.在/etc/rsyslog.conf里添加: local0.* /var/log/keepalived.log 启动keepalived和rsyslog日志服务 keepalived 启动:service keepalived start 停止:service keepalived stop 重启:service keepalived restart rsyslog service rsyslog start service rsyslog restart
主备conf文件的配置
主服务器:
IP:192.168.20.212
[root@js-212 sbin]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { 11066986@qq.com } notification_email_from Alexandre.Cassen@firewall.loc #smtp_server 192.168.20.212 #smtp_connect_timeout 30 router_id LVS_212 #keepalive的机器标识(唯一) } vrrp_instance VI_1 { state MASTER #主MASTER 备 BACKUP interface eth0 virtual_router_id 55 #主备必须相同,同一实例下面的IP号 priority 150 #权重,MASTER要大于BACKUP的权重 advert_int 1 #MASTER与BACKUP负载均衡之间同步检查的时间间隔,单位是秒 authentication { auth_type PASS #主服务器验证方式 auth_pass 1111 } virtual_ipaddress { 192.168.20.12/24 #可以对个虚拟IP,换行即可 } }
备份服务器:
IP:192.168.20.172
[root@openfire2 /]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { 11066986@qq.com } notification_email_from Alexandre.Cassen@firewall.loc #smtp_server 192.168.20.212 #smtp_connect_timeout 30 router_id LVS_172 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 55 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.20.12/24 } }
查看配置的VIP信息,以及验证
查看主的eth0的信息:
[root@js-212 sbin]# /sbin/ip add show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 10:bf:48:4f:63:2a brd ff:ff:ff:ff:ff:ff inet 192.168.20.212/21 brd 192.168.23.255 scope global eth0 inet 192.168.20.12/24 scope global eth0 inet6 fe80::12bf:48ff:fe4f:632a/64 scope link valid_lft forever preferred_lft forever
此时,VIP在MASTER上面,BACKUP上面没有VIP信息:
[root@openfire2 /]# /sbin/ip add show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:ed:a9:14 brd ff:ff:ff:ff:ff:ff inet 192.168.20.172/21 brd 192.168.23.255 scope global eth0 inet6 fe80::20c:29ff:feed:a914/64 scope link valid_lft forever preferred_lft forever
模拟服务器宕机:(把主的keepalived服务停掉)
[root@openfire2 /]# /sbin/ip add show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:ed:a9:14 brd ff:ff:ff:ff:ff:ff inet 192.168.20.172/21 brd 192.168.23.255 scope global eth0 inet 192.168.20.12/24 scope global eth0 inet6 fe80::20c:29ff:feed:a914/64 scope link valid_lft forever preferred_lft forever
停掉MASTER的keepalived以后,VIP自动漂移到BACKUP服务器
当重新启动MASTER的keepalived以后,VIP又漂移带MASTER。
from:http://blog.csdn.net/kingboyworld/article/details/52299689
KeepAlived双主模式高可用集群
http://www.tiejiang.org/12922.html
浙公网安备 33010602011771号