概念
keepalived是linux下的一个轻量级的高可用解决方案,高可用说的是通过专门的设计,从而减少停工时间,保证了系统的高度可用性。keepalived通过VRRP协议(虚拟路由冗余协议)实现系统的高可用,他的配置非常简单。
VRRP协议工作原理
在网络环境中,主机间的通信都是通过静态路由或者网关来完成的,而主机之间的路由器一旦发生故障,通信就会断开,为了解决这个问题,就引入了CRRP协议。
VRRP可以将两台或者多台物理路由器虚拟成一个虚拟路由,这个虚拟路由器通过虚拟ip对外提供服务。在虚拟路由内部多个路由器协同工作,同一时间只有一个路由器对外提供服务。对外提供服务的路由器被称为MASTER,其他路由器是BACKUP,当MASTER发生故障时,通过选举算法选出一个BACKUP成为新的MASTER,继续对外提供服务,整个故障切换对用户来说完全是透明的。
每个虚拟路由器都有一个唯一的标识号VRID,在VRRP协议中,MASTER会通过广播方式发送VRRP数据包,BACKUP都会接受数据包信息,用来监控MASTER的监控状态,当MASTER发生故障时,BACKUP就无法接受到MASTER发过来的信息,于是就认定MASTER出现故障,然后多台BACKUP就会进行选举,优先级高的BACKUP就会成为新的MASTER,继续对外提供服务,保证系统的高可用。
keepalived工作原理
在网络层,keepalived通过ICMP协议(互联网可控制报文协议)向服务器集群中的每个节点发送ICMP数据包(类似ping功能),如果某个节点没有返回响应数据包,那么就认为该节点发生了故障,keepalived就会报告这个节点失效,并且从集群中剔除故障节点。
在传输层,keepalived利用TCP协议端口连接和扫描来判断集群节点是否正常,一旦在传输层发现这些端口没有数据响应,就认为这些端口发生异常,强制将这些端口对应的服务从集群中剔除。
在应用层,用户可以自定义脚本来检测服务是否正常运行,如果keepalived的检测结果和用户设定的不一致时,keepalived将对应的服务从集群中剔除。
keepalived常用配置
全局配置
global_defs { |
VRRPD配置
(1)vrrp_script常用配置
vrrp_script chk_nginx { #脚本名称是chk_nginx |
(2)vrrp_instance常用配置
vrrp_instance VI_1 { |
lvs配置
virtual_server 192.168.186.100 80 { |


