配置文件简单:配置文件比较简单,可通过简单配置实现高可用功能 稳定性强:keepalived是一个类似于layer3, 4 & 7交换机制的软件,具备我们平时说的第3层、第4层和第7层交换机的功能,常用于前端负载均衡器的高可用服务,当主服务器出现故障时,可快速进行切换,监测机制灵活,成功率高。 成本低廉:开源软件,可直接下载配置使用,没有额外费用。 应用范围广:因为keepalived可应用在多个层面,所以它几乎可以对所有应用做高可用,包括LVS、数据库、http服务、nginx负载均衡等等 支持多种类型:支持主从模式、主主模式高可用,可根据业务场景灵活选择 Keepalived工作流程图
工作流程图详解:
Keepalived的核心模块是VRRP Stack和Cheackers,实现HA集群中失败切换(Failover)功能 Keepalived通过VRRP功能结合LVS负载均衡软件即可部署一个高性能的负载均衡集群系统 Checkers主要功能是可实现对服务器运行状态监测和故障隔离 其中IPVS和Realserver健康状态检查是通过配置文件配置实现 而其它服务(Nginx,HAProxy)的高可用则需要通过自己编写脚本,Keepalived提供调用脚本的接口 Keepalived运行有3个守护进程 父进程 主要负责读取配置文件初始化,监控2个子进程,由WacthDog提供监控 每个子进程打开一个接受Unix域套接字,父进程连接到那些Unix域套接字并向子进程发送周期性(5s)hello包 子进程 VRRP进程 Cheackers进程 上图Keepalived的功能体系结构,分为两层 用户空间 内核空间 IPVS和NETLINK
配置文件详解:
virtual_server 192.168.18.240 80 { #设置一个virtual server: VIP:Vport delay_loop 3 # service polling的delay时间,即服务轮询的时间间隔 lb_algo rr #LVS调度算法:rr|wrr|lc|wlc|lblc|sh|dh lb_kind DR #LVS集群模式:NAT|DR|TUN #persistence_timeout 120 #会话保持时间(持久连接,秒),即以用户在120秒内被分配到同一个后端realserver nat_mask 255.255.255.255 protocol TCP #健康检查用的是TCP还是UDP real_server 192.168.18.251 80 { #后端真实节点主机的权重等设置,主要,后端有几台这里就要设置几个 weight 1 #给每台的权重,rr无效 #inhibit_on_failure #表示在节点失败后,把他权重设置成0,而不是IPVS中删除 url { path / status_code 200 } TCP_CHECK { connect_timeout 2 #连接超时时间 nb_get_retry 3 #重连次数 delay_before_retry 1 #重连间隔 }