keepalived介绍与使用
Posted ღ᭄小艾ヅ࿐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keepalived介绍与使用相关的知识,希望对你有一定的参考价值。
目录:
一.keepalived介绍:
keepalived软件起初是专为lvs负载均衡软件设计的,用于管理并监控lvs集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,keepalived除了能够管理lvs软件外,还可以作为其他服务(例如:nginx,mysql,Haproxy等等)的高可用解决方案软件
二.keepalived组成和原理:
keepalived软件主要是通过VRRP协议实现高可用功能的
VRRP(虚拟路由冗余协议),它的出现就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断的运行
虚拟路由冗余协议可以认为是实现路由器高可用的协议,即使将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就会认为master宕掉了,这时就需要根据vrrp的优先级来选举一个backup当master.这样的话就保证了路由器的高可用.(基于osi体系结构的前三层,物理层,数据链路层,网络层)
keepalived的功能体系结构,大致分为两层:用户空间和内核空间
- 内核空间:主要包括ipvs(ip虚拟服务器,用于实现网络服务的负载均衡)和netlink(提供高级路由机器相关相关的网络功能)
- 用户空间:
- WatchDog:负责监控
- VRRP Stack:负载均衡服务器之间的失败切换failover,如果只有一个负载均衡服务器,则vrrp不是必须的
- checkers:负责真实服务器的健康检查,是keepalived的最主要的功能
- ipvs warapper:用户发送设定的规则到内核ipvs代码
- netlink reflector:用来设定vrrp的vip地址等等
keepalived主要有三个模块:分别是core、check和vrrp
- core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。
- check负责健康检查,包括常见的各种检查方式。
- vrrp模块是来实现VRRP协议的
三.安装配置启动keepalived:
- 主备服务器都需要安装
yum install keepalived
keepalived需要使用的目录和文件:
/etc/keepalived/keepalived.conf 生效的配置文件 /etc/init.d/keepalived 服务器管理脚本 /var.log/messages 日志信息
只做高可用只配置VRRP部分(此处忘记修改了,主服务器的优先级要高于备服务器)
主服务器:
备服务器
1.检测服务不可用实现vip的切换:
创建一个脚本,用于监控nginx服务器的健康状况
touch nginx_check.sh
然后把它加进定时任务中去,让它定期去检测(此处是每分钟检测一次)
然后就可以实现简易的主备切换了
不过配置定时任务检测nginx服务器的健康状况这样时间太长了,一分钟容易影响业务,可以在keepalived配置文件中进行配置,让它几秒钟就检测一次!
四.keepalived配置补充:
- 脑裂:vip出现在多台机器上.网络不畅通,禁用了数据包,主备服务器没办法通信,造成备服务器认为主服务器不可用,绑定vip,主服务器的vip不会释放
- 解决方案:
1.双备或多备模式,通过priority权重来区分谁的优先级高
2.单播(定向广播)的方式(一些特定情况禁用组播)
3.时间不同步,服务器时间校对
1.非抢占模式:
- 方法一:在主备服务器中添加nopreempt
- 方法二:设置state工作模式为backup
两个keepalived节点都启动后,默认都是backup状态,双方在发送组播信号后,会根据优先级来选举一个master出来,由于都配置了nopreempt,所以master从故障中恢复后,不会抢占vip,可以避免vip切换可能造成的服务延迟
2.抢占模式:
默认为抢占模式
3.单播模式:
主备服务器都设配置
以上是关于keepalived介绍与使用的主要内容,如果未能解决你的问题,请参考以下文章