Chinaunix首页 | 论坛 | 博客
  • 博客访问: 433919
  • 博文数量: 62
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 740
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-10 21:59
个人简介

付出,终有回报!

文章分类

全部博文(62)

文章存档

2018年(6)

2017年(24)

2016年(6)

2015年(26)

分类: 系统运维

2015-08-09 12:04:21

Keepalived的功能

轻量级的高可用解决方案。与Heartbeat相比,主要通过虚拟路由冗余来实现高可用功能。Keepalived 运行在LVS之上,主要功能是实现真实主机的故障隔离及负载均衡器间的失败切换。根据TCP/IP参考模型的第345层交换机制检测每个服务节点的状态,如果某个节点出现故障,Keepalived 将检测到,并将出现故障的服务器节点从集群中剔除,而在节点恢复正常后,Keepalived 又自动将此节点重新加到集群中。这些工作全部自动完成。

Keepalived的工作原理:

在网络层(3):Keepalived通过ICMP协议向集群中的每个节点发送ICMP数据包。如果某个节点没有返回响应数据包,那么就会认为此节点发生了故障。

在传输层(4):Keepalived利用TCP协议的端口连接和扫描技术来判断集群节点是否正常。若某个端口没有响应数据返回,就会认为此端口对应的节点有故障。

在应用层(7):用户自定义Keepalived的工作方式,而Keepalived将根据用户的设定检测各种程序或服务是否正常,当与用户设定不一致时,则认为有故障。

 

VRRP(虚拟路由器冗余协议)

主备模式的协议。

主路由器(MASTERVRRP可以将多台物理路由器设备虚拟成一个虚拟路由器,这个虚拟路由器通过虚拟IP对外提供服务,而在虚拟路由器内部同一时间只有一台物理路由器对外提供服务,这台提供服务的物理路由器被称为主路由器。

备份路由器(BACKUP 虚拟路由器中的其他物理路由器不拥有对外的虚拟IP,也不对外提供网络功能,仅接受MASTERVRRP状态通告信息,这些路由器被称为备份路由器。

工作原理:

MASTER由选举算法产生,它拥有对外服务的虚拟IP,提供各种网络功能,它会一直发送VRRP数据包。而处于BACKUP角色的路由器只接收MASTER发来的报文信息,用来监控MASTER的运行状态。因而当主路由器失效时,处于BACKUP的路由器进行选举,优先级高的BACKUP将成为新的MASTER

一、实验环境

172.25.18.11 server1.ling.com

172.25.18.12 server2.ling.com

 

172.25.18.15 server5.ling.com

172.25.18.16 server6.ling.com

Selinux、防火墙关闭,个主机间进行解析

实验中用的是keepalived.x86_641.2.7-3.el6版本。

 

二、keepalived的安装与配置

两个主机同时安装keepalived

[root@server5 ~]# yum install -y keepalived

[root@server5 ~]# cd /etc/keepalived/

[root@server5 keepalived]# vim keepalived.conf


keepalived的所有配置均在/etc/keepalived/keepalived.conf文件中完成。由于此文件可配置的选项比较多,根据配置文件所实现的功能,一般将keepalived配置分为三类:全局配置、VRPPD配置和LVS配置。
全局配置
:以global_defs作为标识,在global_defs区域内的都是全局配置选项。notification_email,用于设置报警邮件地址,开启此功能,需要开启本机的sendmail服务;

notification_email_from,设置邮件的发送地址;

router_id,表示运行keepalived服务器的一个标识,是发邮件时显示在邮件主题中的信息。

VRRPD配置keepalived所有配置的核心,主要用来实现keepalived的高可用功能。从结构上来说,VRRPD配置又可分为VRRP同步组配置和VRRP实例配置。本次实验中没有涉及到同步组的配置,在此,就不做讲述。

  vrrp_instance,是VRRP实例开始的标识,后跟VRRP实例名;

  state,用于指定keepalived的角色,MASTER表示是主服务器,BACKUP是备用服务器;

  interface,用于指定HA监测网络的接口;

  virtual_router_id,虚拟路由标识,同一个VRRP实例使用唯一的标识;

  priority,用于定义节点优先级,数字越大表示节点的优先级越高;

  advert_int,定义主备节点间同步检查的时间间隔,单位为秒;

  authentication,定义节点间通信验证类型和密码;

  virtual_ipaddress,用于设置虚拟IP地址,即浮动IP。当keepalived由主节点切换到备份节点时,IP也跟着切换到备份节点。

LVS配置keepalivedLVS的扩展项目,因而,两者很容易进行整合。LVS的配置以virtual_server作为开始标识,此段由real_server和健康检测两部分组成。

  virtual_server,设置虚拟服务器开始的标识,后跟IP和端口,之间用空格隔开;

  delay_loop,设置健康检查的时间间隔,单位为秒;

  lb_algo,设置负载调度算法,可用的有rr,wrr,lc,wlc,lblc,sh,dh

  Lb_kind,设置LVS实现负载均衡的机制,有DRNATTULFULLNAT

  protocol,转发协议类型,有TCPUDP两种;

  real_server,用来指定real_server节点,后跟真是的IP和端口;

  weight,设置节点的权重,数字越大,权值越高,可为性能较高的服务器设置较高的权值;

  TCP_CHECK,定义健康检查的类型。常见的有TCP_CHECKHTTP_GETSSL_GETSMTP_CHECK

 

[root@server5 keepalived]# scp keepalived.conf 172.25.18.16:/etc/keepalived/


由于keepalived主备节点的配置文件差别不大,可直接拷贝主节点文件到备份节点,再稍作修改。主要做两处修改,如上图所示,将备份节点的状态改为BACKUP,并将priority的值调小。在一个一主多备的keepalived集群中,priority值最大的将称为集群中的MASTER节点,而其他节点都是备份节点。当MASTER发生故障时,BACKUP节点之间将进行民主选举,通过priorityweight的计算,选出新的MASTER节点接管集群服务。

 

三、测试

1、启动过程分析

开启两个节点上的keepalived服务

[root@server5 ha.d]# /etc/init.d/keepalived start

[root@server6 ha.d]# /etc/init.d/keepalived start

 

在主节点上查看


keepalived正常启动后共启动了三个进程,其中一个父进程,负责监控两个子进程(vrrp子进程和heartcheckers子进程)。并且进入MASTER角色,将虚拟IP也添加到了主节点上。



2、故障切换

[root@server5 ha.d]# /etc/init.d/keepalived stop

关闭主节点的keepalived服务,在备份节点上进行查看


从日志信息可以看出,在MASTER节点出现故障后,备用节点将立刻检测到,然后由BACKUP状态变为MASTER,并且接管了之前MASTER主机的虚拟IP资源。

  keepalived在故障发生时进行切换的速度是非常快的,只有几秒时间,几乎没有延时等待时间。

 

3、故障恢复切换

  当出现故障的主节点恢复正常后,会自动从备份节点夺取资源。

[root@server5 ~]# /etc/init.d/keepalived start




从日志可知,主节点恢复正常后,会自动切换到MASTER状态,并夺回集群资源与虚拟IP

 




阅读(1561) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~