keepalived高可用调度器配置详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keepalived高可用调度器配置详解相关的知识,希望对你有一定的参考价值。




一、VRRP概述

 1.VRRP协议

        虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及及时在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。

 

  2.vrrp术语

参考:H3C VRRP技术白皮书


虚拟路由器

由一个Master路由器和多个Backup路由器组成。主机将虚拟路由器当作默认网关。

VRID

虚拟路由器的标识。有相同VRID的一组路由器构成一个虚拟路由器

Master路由器

虚拟路由器中承担报文转发任务的路由器,主节点(仅能有一个)

Backup路由器

Master路由器出现故障时,能够代替Master路由器工作的路由器,备用节点(可以有多个)

虚拟IP地址(VIP)

虚拟路由器的IP地址。已改为虚拟路由器可以拥有一个或多个IP地址

IP地址拥有者

接口IP地址与虚拟IP地址相同的路由器被称为IP地址拥有者

虚拟MAC地址(VMAC)

一个虚拟路由器拥有一个虚拟MAC地址。虚拟路由器回应APR请求使用的是细腻MAC地址,只有虚拟路由器做特护配置的时候,才会回应接口的真实MAC地址

优先级

VRRP根据优先级来确定虚拟路由器中每台路由器的地位

非抢占方式

Backup路由器工作在非抢占方式下,只要Master路由器每出现故障,Backup即使随后被配置更高的优先级也不会成为Master路由器

抢占方式

Backup路由器工作在抢占方式下,当收到VRRP报文后,会将自己的优先级与通告报文中的优先级进行比较。若当前的Master路由器的优先级高,就会主动抢占成为Master路由器;否则保持Backup状态

       

  3.工作过程

      (1) 虚拟路由器中的路由器根据优先级选举出MasterMaster路由器通过发送ARP报文,将自己的虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务。

      (2) Master路由器周期性发送VRRP报文,以公布其配置信息(优先级等)和工作状况

      (3) Master路由器出现故障,虚拟路由器中的Backup路由器将根据优先级重新选举新的Master

      (4) 虚拟路由器状态切换时,Master路由器由一台设备切换为另一台设备,新的Master路由器知识简单地发送一个携带虚拟路由器的MAC地址和虚拟IP地址信息的ARP此昂管信息。网络中的主机感知不到Master路由器已经切换为另外一台设备

      (5) Backup路由器的优先级高于Master路由器时,由Backup路由器的工作方式(抢占和非抢占)决定是否重新选举Master

 

 4.VRRP功能

      (1)Master路由器选举

      (2)Master路由器状态通告

      (3)VRRP认证功能

 

 5.VRRP高可用工作模型

    (1)主备备份

              业务仅由Master路由器承担。当Master路由器出现故障时,才会由选举出来的Backup路由器接替它工作

技术分享

    (2)主主备份

            在路由器的一个接口上可创建多个虚拟路与其,使得该路由器可以在一个虚拟路由器中作为Master路与其,同时在其他的虚拟路由器中做为Backup路由器。主主备份方式能实现负载分担的功能

技术分享

 

 

 

二、keepalived高可用调度器

 1.keepalived功能

         keepalived程序是vrrp协议在Linux主机上以守护进程方式的实现能够根据配置文件生成ipvs规则,并对各Real Server的健康做检测,以及LoadBalance主机和BackUP主机之间failover的实现

         keepalivedCentOS 6.4+收录到发行版光盘内,佛在需要编译安装或者第三方RPM    

                                                                                                                                                                                                                                                                                                                                                                                               

  2.程序组件

          核心程序、IO复用器内存管理配置文件分析器

技术分享

核心组件具体如下:


Watch  dog

高可用监视器

checkers

健康状态检测器(TCPHTTPSSLMISC…  ...)

smtp

支持发送邮件通告机制

System  call

支持系统调用机制,作出管理操作

vrrp stack

VRRP栈的实现,实现VRRP协议调用

Netlink  Reflectior

VRRP借助于Netlink监控网络,实现网络功能配置

ipvs wrapper

ipvs控制

 

 3.keepalived高可用集群配置前提  

         (1)各节点时间要同步;必须不能超过一秒,一般使用网络偶时间服务器(ntp server)

         (2)确保iptables及selinux不会成为障碍;

         (3)各节点之间可通过主机名互相通信;节点的名称设定与hosts文件中解析的主机名都要保持一致;

     #uname -n 获得的主机,与解析的主机名要相同;

         (4)各节点之间基于密钥认证的方式通过ssh互信通信;

   说明:第三条和第四条非必须

 

 

 

三、keepalived程序环境配置

  1.主配置文件:/etc/keepalived/keepalived.conf

     (1)GLOBALCONFIGURATION全局配置

global_defs          # Block id

{

...

}

    常用配置:

notification_email  {  …  }

收件人邮箱地址

notification_email_from

发件人邮箱地址

smtp_server

邮件发送服务器IP;

smtp_connect_timeout

邮件服务器建立连接的超时时长;默认30

router_id  LVS_DEVEL

物理节点的标识符;建立使用主机名;

vrrp_mcast_group4

IPV4多播地址,默认224.0.0.18;

     (2)VRRPDCONFIGURATION配置vrrp实例

vrrp instance:虚拟路由器

vrrp_instance NAME {

...

}

vrrp synchronization group

vrrp_sync_group NAME  {

...

}

     1)常用配置:

state    MASTER|BACKUP

在当前VRRP实例中此节点的初始状态;

interface   IFACE_NAME

vrrp用于绑定vip的接口;

virtual_router_id  #

当前VRRP实例的VRID,可用范围为0-255,默认为51;

priority #

当前节点的优先级,可用范围0-255;

advert_int 1

通告时间间隔;默认1

    2)认证方式配置:

authentication{     # Authentication block

#PASS||AH

#PASS - Simple Passwd (suggested)

#AH - IPSEC (not recommended))

auth_typePASS

#Password for accessing vrrpd.

#should be the same for all machines.

#Only the first eight (8) characters are used.

auth_pass1234

}

    3)虚拟IP配置:

virtual_ipaddress{

<IPADDR>/<MASK>brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>

}

       (3)LVSCONFIGURATIONipvs的相关配置集群服务,服务内的RS;

 

  2.双主备份VRRP配置实例

          第一步:node1节点配置

vrrp_instanceVI_1 {

stateMASTER

interfaceeno16777736

virtual_router_id101

priority100

advert_int1

authentication{

auth_typePASS

auth_passZPNnTQ6F

}

virtual_ipaddress{

172.16.100.9/16

}

}

vrrp_instanceVI_2 {

stateBACKUP

interfaceeno16777736

virtual_router_id102

priority99

advert_int1

authentication{

auth_typePASS

auth_passIWyijM5Q

}

virtual_ipaddress{

172.16.100.10/16

}

}                                

          第二步:node2节点配置

vrrp_instanceVI_1 {

stateBACKUP

interfaceeno16777736

virtual_router_id101

priority99

advert_int1

authentication{

auth_typePASS

auth_passZPNnTQ6F

}

virtual_ipaddress{

172.16.100.9/16

}

}

vrrp_instanceVI_2 {

stateMASTER

interfaceeno16777736

virtual_router_id102

priority100

advert_int1

authentication{

auth_typePASS

auth_passIWyijM5Q

}

virtual_ipaddress{

172.16.100.10/16

}

}                              

本文出自 “许鼎的博客” 博客,转载请与作者联系!

以上是关于keepalived高可用调度器配置详解的主要内容,如果未能解决你的问题,请参考以下文章

keepalived 详解

Keepalived + LVS 高可用负载均衡集群部署

Keepalived现实Web双机热备(高可用)

Keepalived现实Web双机热备(高可用)

Keepalived配置文件详解(以Haproxy作为负载均衡器)

利用keepalived实现nginx调度器高可用