Keepalived详解:
提供HA的底层工具。严重依赖于脚本实现其扩展功能的HA服务。
早期是为ipvs提供ha功能的
HA -->>Ipvs(规则)提供VIP在集群之间的流转作用(这个依赖的基础是vrrp)
Keepalived有三个模块:core,check,vrrp
Core模块:是keepalived模块的核心模块,负责出进程的启动,维护以及全局配置文件的加载和解析。
Check:负责健康检查,包括常见的各种检查方式。
Vrrp:用来实现vrrp协议的
Vrrp:虚拟路由冗余协议(能将多个物理设备虚拟成一个物理设备,对外的静态虚拟VIP在各个设备之间协调运转,如果宕掉了就通过选举等来实现一主多备)
通过外部脚本一直检测服务状态,一旦服务出现问题就降低此节点的优先级。
工作机制:主节点不停的向从节点通告自己还处于活动状态。
双主模型:M的漂移随着节点优先级,服务问题优先级降低,节点漂移,一个节点上有两个m,出故障的节点重启服务,优先级恢复,节点漂移回来。(此过程依赖于外部脚本:1)check不停的检测服务是否正常,不正常就漂移节点。与此同时还有其他服务检测脚本,通知。2)在节点漂移之后,服务不允许节点继续宕下去,通过脚本来重启服务)
1,所有realserver都宕掉怎么处理?
Fall_back:在所有的realserver出现故障的时候,在master上启动http返回一个信息状态码,用户访问时能返回信息而不是什么信息都没有。
2,写检测脚本,完成维护模式切换。
Vrrp-script chk_name:
Script “命令/路径”
Interval 2 ##多长时间进行一次这个脚本的检测
Weight -2 ##master优先级减2
Faill 2 ##检测两次失败就认为是失败的
Rise 1 只要检测到成功1次就立即认为是成功
M-->>B服务重启而不是停掉服务
3,如何在vrrp事物发生时(主备节点切换时或者两个vip节点都出现了故障),发送警告邮件给指定的管理员?(如何告诉管理员vip是如何漂移的?)
Notify_master ##节点从备变成主
Notify_backup ##节点从主变成备
Notify_fault ##两个节点都出现了故障
Nginx 和keepalived都是轻量级的web反向代理,不需要提供任何共享存储。
Ipvsadm -L -t
Keepalived提供ipvs的高可用:
Ipvs
Health check
HTTP_GET|SSL_GET
{
Url {
Path ##http/ssl检查的url可以是多个。
Digest <STRING> ##检查后的摘要信息用genhash生成
Status_code 200 ##检查返回的状态码
}
Connect_port 80##连接端口
Bindto <IPADDR>
Connect_timeout 3 #连接超时时间
Nb_get_retry 3 #重连次数
Delay_before_retry 2#连接间隔时间
}
前端VIP端口到后端RIP进行通信用的是mac地址,ARP协议,gratuitous,自问自答
本文转自 Taxing祥 51CTO博客,原文链接:http://blog.51cto.com/12118369/1933277