1介绍Keepalived是linux下一个轻量级的高可用解决方案,与HeartBeat,RoseHA实现的功能类似,但是还是有差别。HeartBeat是一个专业的功能完善的高可用软件,它提供了HA软件所需的基本功能,比如心跳检测,资源接管,检测集群系统服务,功能很强大,但是部署和使用比较麻烦。Keepalived主要通过虚拟路由冗余来实现高可用,部署配置比较简单。 2 Keepalived是什么1. Keepalived起初是为lvs设计的,专门用来检测集群系统中各个系统服务节点中的状态。 Keepalived检测节点,当检测到异常节点的时候,将有问题的节点从服务器中剔除,当故障节点恢复后,Keepalived又可以将服务节点重新加入到服务器集群中。 2. Keepalived加入VRRP功能,VRRP(虚拟路由器冗余协议)可以解决静态路由出现的单点故障。可以实现网络不间断运行。 3 VRRP协议与工作原理(keepalived的高可用原理)解决单点瓶颈~~~~~~VRRP他是一种主备模式的协议,它可以在网络发生故障的时候透明的进行设备切换而不会影响主机之间的通信,涉及物理路由器和虚拟路由器的概念。 VRRP可以将两台或者多台物理路由器设备虚拟成一个虚拟路由器,这个虚拟路由器可以通过虚拟一个或者多个ip来对外提供服务,而在虚拟路由器内部是多个物理路由器协调工作, 但同一时间只有一台物理路由器对外服务,这台物理路由器称为主路由,master角色。其他物理路由器不提供对外网络功能,只是仅仅接受master的VRRP状态信息,他们被称为备份路由器,backuo角色。 一般情况master由选举产生,当主路由失败时,备份路由将重新选举,产生一个新的主路由进入master角色来继续对外提供服务,整个过程对用户完全透明。 每个虚拟路由器有一个唯一标识,叫做VRID,一个VRID和一组IP地址构成一个虚拟路由器。处于backup角色的路由器只接收来自master发来的报文信息,来监控master的运行状态,当master不可以时,backup无法接收到master发来的报文信息, 就认定master出现故障,接着就会选举产生master,这样保证服务持续可用。 4 keepalived对服务器运行状态检测和监控的工作原理Keepalived工作在tcp/ip模型的第三第四第五层,也就是,网络层,传输层,应用层。 1网络层中 有4个重要协议,互联网协议IP,控制报文协议icmp,地址转换协议ARP,以及反向地址转换协议RARP.,在网络层,它采用ICMP协议像服务器集群中的每个节点发送一个icmp包,如果某个接地单没有返回响应的包,就认为节点除了故障,,报告节点,并且将节点从集群中剔除。 2传输层: 有两个重要协议,传输控制协议tcp和用户数据协议udp。 tcp提供可靠的数据传输服务,keepalived在传输层就是利用tcp协议的端口连接,和扫描技术来判断集群节点是否正常。比如web的80,ssh的22端口,keepalived一旦在传输层探测到这些端口没有数据包返回,就认为这些端口发生异常,强制将这些端口对应的节点从集群中剔除。 3应用层 可以在应用层运行ftp,telnet,Smtp,DNS等不同类型的高级协议,用户可以自定义Keepalived的工作方式,如:用户通过自定义脚本程序来运行Keepalived,而Keeplived将根据用户的设定来检查各种程序或者服务是否正常,如果检测异常,将对应的节点从集群中剔除。 5Keepalived的体系结构Keepalived体系结构图 Checkers,实现对服务器状态的检测和故障隔离。 VRRP Stack,可以实现HA(高可用)集群中失败的切换功能。通过此功能然后结合LVS可以构建高性能的负载均衡集群系统。 IPVS wrapper,可以将设置好的IPVS规则发送到内核空间并且提交给IPVS模块,最终实现负载均衡的功能。 结构图:
|
|
来自: 昵称25533110 > 《待分类1》