简单写一写keepalive

  

一、keepalive简介:

1,什么是keepalive ?

keepalive起初是为lv设计的而保证集群高可用的一个服务软件,用来检测服务器的状态以及loadbbalance主机和备份主机之间的故障转移(故障切换)防止单点故障。在集群当中如果有一台服务器宕机或工作出现故障,keepalive将检测到并将有故障的服务器踢出集群,同时让其他服务器来代替该服务器的工作,当服务器恢复正常后keepalive自动将该服务器加入到集群中,完全不需要人工干涉,只需要做好相关配置,并修复有故障的服务器即可。

2, keepalive的工作状态:

keepalive是以vrrp协议)(虚拟路由器冗余协议,即虚拟路由冗余协议实现的.vrrp是实现路由器高可用的协议,将多台提供相同服务的路由器组成一个路由组,组内有一个主路由和多个备份路由组成部分使用组内的贵宾(虚拟IP)对外提供服务,使主人用组播地址224.0.0.18向备份发送vrrp通告。当备份收不到主发送的vrrp通告时,就认为大师宕机了。通过vrrp的优先级在备份中重启选举一个优先级高的当做主人对外提供服务。这样就保证了路由的高可用。

keepalive是一个类似于layer3, 4,7交换机制的软件,即TCP/IP协议栈的IP、TCP及应用层。

layer3工作原理:此时keepalive工作在TCP/IP协议栈的中IP层。以服务器的IP地址作为服务器工作正常与否的标准,主通过组播定期发送ICMP数据包,如果发现有返回异常的IP, keepalive将认为这台服务器失效,并提出服务器群

layer4工作原理:此时keepalive工作在TCP/IP协议栈的中TCP层。以服务提供的TCP端口的状态来决定服务器的工作是否正常,如果检测到端口监听异常,则keepalive将把这台服务器从服务器群中踢出。

layer7工作原理:此时keepalive工作在TCP/IP协议栈的中应用层。相比较来说比layer3, layer4要负责,网络占用带宽也要大一些,使用也相对较少.keepalived将根据用户自己的设定配置检查服务程序是否正常,如果跟用户设定不相符,则将视为服务器存在异常并将踢出服务器群。

5, keepalive的配置文件

一个功能比较完整的keepalive的配置文件,其配置文件keepalive。配置可以包含三个文本块:全局定义块(global_defs) VRRP实例定义块(vrrp_instance)及虚拟服务器定义块(virtual_server)。全局定义块和虚拟服务器定义块是必须的,如果在只有一个负载均衡器的场合,就不须VRRP实例定义块。

二部署keepalive服务

1,在编译安装keepalive之前,首先安装keepalive所需要依赖的库文件:

[root@node1  ~] #, yum  -y  install  popt-devel , kernel-devel , openssl-devel  gcc-c + +, libnl-devel  libnl3-devel , libnfnetlink-devel

简单写一写keepalive

2,下载keepalive源码压缩包。

下载地址:,http://www.keepalived.org/software/keepalived-1.3.5.tar.gz

[root@node1  ~] #, wget , http://www.keepalived.org/software/keepalived-1.3.5.tar.gz

3,安装keepalive:

在编译的时候使用指定的内核库并指定安装目录为/目录可以省去很多麻烦的链接。这样就可以在安装完成之后直接使用keepalive服务了

[root@node1  ~] #, tar  zxf  keepalived-1.3.5.tar.gz   (root@node1  ~) #, cd  keepalived-1.3.5   [root@node1  keepalived-1.3.5] #,。/configure ——prefix=/,——with-kernel-dir=/usr/src/内核/3.10.0-514.21.1.el7.x86_64/include/[root@node1  keepalived-1.3.5] #,   [root@node1  keepalived-1.3.5] #, make 安装

简单写一写keepalive

4。安装完成。

keepalive配置文件位置:/etc/keepalive下的keepalive。参看目录下有子样本目录为各种模板文件。执行程序位置:/usr/sbin/keepalive,。启动脚本已经自动添加系统了。可以直接使用systemctl命令执行启动。


简单写一写keepalive