网站优化,系统门户网站建设详细功能,中国核工业建设集团公司,洛阳信息港洛阳城事概述
Keepalived 介绍 Keepalived 是 Linux 下一个轻量级别的高可用解决方案#xff0c;通过 **VRRP 协议#xff08;虚拟路由冗余协议#xff09;**来实现服务或者网络的高可用#xff0c;可以利用其来解决单点故障。 起初是为 LVS 设计的#xff0c;一个 LVS 服务会有 …概述
Keepalived 介绍 Keepalived 是 Linux 下一个轻量级别的高可用解决方案通过 **VRRP 协议虚拟路由冗余协议**来实现服务或者网络的高可用可以利用其来解决单点故障。 起初是为 LVS 设计的一个 LVS 服务会有 2 台服务器运行 Keepalived一台为主服务器MASTER一台为备份服务器BACKUP但是对外表现为一个虚拟 IP主服务器会发送特定的消息给备份服务器当备份服务器收不到这个消息的时候即主服务器宕机的时候 备份服务器就会接管虚拟 IP继续提供服务从而保证了高可用性。 Keepalived 的作用 Keepalived 提供了很好的高可用性保障服务它可以检查服务器的状态如果有服务器出现问题Keepalived 会将其从系统中移除并且同时使用备份服务器代替该服务器的工作当这台服务器可以正常工作后Keepalived 再将其放入服务器群中这个过程是 Keepalived 自动完成的不需要人工干涉只需要修复出现问题的服务器即可。 Keepalived 的特点 部署简单只需要配置一个配置文件即可加入了虚拟路由冗余协议可以保证业务或网络不间断稳定运行 Keepalived 的核心功能 健康检查 采用 tcp 三次握手icmp 请求http 请求udp 、echo 请求等方式对负载均衡器后面的实际的服务器通常是承载真实业务的服务器进行保活 故障切换 主要应用在配置了主备的服务器上使用虚拟路由冗余协议维持主备之间的心跳 当主服务器出现问题时由备服务器承载对应的业务从而在最大限度上减少损失并提供服务的稳定性 Keepalived 原理
Keepalived 从 3 个层次来检测服务器的状态Layer3 、Layer4 以及 Layer7 工作在 IP/TCP 协议栈的IP层TCP层及应用层原理分别如下 Layer3 工作在网络层 Keepalived 使用 Layer3 的方式工作时Keepalived 会定期向服务器群中的服务器发送一个 ICMP 的数据包既平时用的 Ping 程序如果发现某台服务的 IP 地址没有激活Keepalived 便报告这台服务器失效并将它从服务器群中剔除这种情况的典型例子是某台服务器被非法关机。 Layer3 的方式是以服务器的 IP 地址是否有效作为服务器工作正常与否的标准。 Layer4 工作在传输层 Layer4 主要以 TCP 端口的状态来决定服务器工作正常与否。keepalived 一旦在传输层探测到这些端口没有响应数据返回就认为这些端口所对应的节点发生故障从集群中剔除故障节点。 例如 web server 的服务端口一般是 80如果 Keepalived 检测到 80 端口没有启动则 Keepalived 将把这台服务器从服务器群中剔除。 Layer7 工作在应用层 Layer7 工作在具体的应用层比 Layer3Layer4 要复杂一点在网络上占用的带宽也要大一些。Keepalived 将根据用户编写的脚本来检测各种程序或者服务是否正常如果与用户的设定不相符则将对应的把服务器从服务器群中剔除。 Keepalived 组件架构
keepalived 主要有三个模块分别是 core、check 和 vrrp
core 模块为 keepalived 的核心负责主进程的启动、维护以及全局配置文件的加载和解析check 负责健康检查包括常见的各种检查方式vrrp 模块是来实现 VRRP 协议的 体系结构 整个体系结构分层用户层和内核层 Scheduler I/O Multiplexer I/O 复用分发调用器负责安排 Keepalived 所有的内部的任务请求 Memory Management 内存管理机制提供了访问内存的一下通用方法 Keepalived Control Plane 控制面板实现对配置文件的编译和解析Keepalived 的配置文件解析比较特殊它并不是一次解析所有模块的配置而是只有在用到某模块时才解析相应的配置 Core components Keepalived 的核心组件包含了一系列功能模块主要有 watch dog、Checkers、VRRP Stack、IPVS wrapper、Netlink Reflector watch dog 一个极为简单又非常有效的检测工具针对被监视目标设置一个计数器和阈值watch dog 会自己增加此计数值然后等待被监视目标周期性的重置该数值一旦被监控目标发生错误就无法重置该数值watch dog 就会检测到。 Keepalived 是通过它来监控 Checkers 和 VRRP 进程 Checkers实现对服务器运行状态检测和故障隔离 VRRP Stack实现 HA 集群中失败切换功能通过 VRRP 功能再结合 LVS 负载均衡软件即可部署一个高性能的负载均衡集群 IPVS wrapper实现 IPVS 功能该模块可以将设置好的IPVS规则发送到内核空间并提交给 IPVS 模块最终实现负载均衡功能 Netlink Reflector实现 VIP 的设置和切换 VRRP 协议虚拟路由冗余协议 在现实的网络环境中主机之间的通信都是通过配置静态路由默认网关来完成的 而主机之间的路由器一旦出现故障就会通信失败 因此在这种通信模式下路由器就会有单点瓶颈问题为了解决这个问题引入了 VRRP 协议Virtual Router Redundancy Protocol 虚拟路由冗余协议 通过 VRRP 可以在网络发生故障时透明的进行设备切换而不影响主机之间的数据通信 虚拟路由冗余协议可以认为是实现路由器高可用的协议即将两台或多台提供相同功能的路由器组成一个虚拟路由器组这个组里面有一个master 和多个 backupmaster 上面有一个对外提供服务的 VIPVirtual IP Address 即虚拟 IP 地址可以一个或多个该路由器所在局域网内其他机器的默认路由为该 vipmaster 会发组播当 backup 收不到 vrrp 包时就认为 master 宕掉了这时就需要根据 VRRP 的优先级来选举一个 backup 当 master。这样的话就可以保证路由器的高可用了。 VRRP 角色 虚拟路由器VRRP 组中所有的路由器拥有虚拟的 IPMAC00-00-5e-00-01-VRID地址主路由器master虚拟路由器内部通常只有一台物理路由器对外提供服务主路由器是由选举算法产生对外提供各种网络功能备份路由器backupVRRP 组中除主路由器之外的所有路由器不对外提供任何服务只接受主路由的通告当主路由器挂掉之后重新进行选举算法接替 master 路由器 master 路由器由选举算法产生它拥有对外服务的 VIP提供各种网络服务如 ARP 请求、数据转发、ICMP 等等而backup 路由器不拥有 VIP也不对外提供网络服务 当 master 发生故障时backup 将重新进行选举产生一个新的 master 继续对外提供服务 VRRP 工作模式 VRRP 有三种工作状态分别是 Initialize 状态Master 状态Backup 状态 VRRP 选举机制 优先级抢占模式下一旦有优先级高的路由器加入立即成为 Master非抢占模式下只要 Master 不挂掉优先级高的路由器只能等待 常用命令
# 查看 keepalived 系统日志。-f持续输出
tail -f /var/log/messages# 查看 keepalived 配置文件
vi /etc/keepalived/keepalived.conf# 启动 keepalived 服务
systemctl start keepalived
# 查看 keepalived 服务状态
systemctl status keepalived
# 停止 keepalived 服务
systemctl stop keepalived# keepalived 启动成功后有 3 个keepalived 的进程# 一个是父进程负责监控其子进程。一个是 vrrp 子进程另外一个是 checkers 子进程。
ps -ef | grep keepalived