keepalived

简介

keepalived是HA Cluster(High Availability Cluster,高可用集群卡塔 尔(阿拉伯语:قطر‎的八个劳动软件,用来防御单点故障。

keepalived选用VSportageRP(virtual router redundancy protocol,虚构路由冗余磋商卡塔 尔(英语:State of Qatar),以软件的花样达成服务器热备作用。平日情形下是将两台linux服务器组成叁个热备组(master-backup卡塔 尔(英语:State of Qatar),同期热备组内只有风度翩翩台主服务器(master卡塔 尔(英语:State of Qatar)提供服务,同临时候master会虚构出二个共用IP地址(VIP卡塔尔国,那个VIP只存在master上并对外提供劳动;若是keepalived检查实验到master宕机或劳动故障,备用服务器(backup卡塔 尔(英语:State of Qatar)会活动接管VIP成为master,keepalived并将master从热备组移除,当master苏醒后,会自行步向到热备组,暗中同意再抢占成为master,起到故障转移效果。

高可用集群首要有二种完结情势:主备方式和主主格局:
主备情势:三个或多个VIP,风流罗曼蒂克台主机对外提供劳动,其它意气风发台做备用机,当主服务器出现难题,备用服务器接管IP继续提供劳务;
主主方式:多个或多少个VIP,两台主机都对外提供劳务,能够是同三个劳务,也足以是不相同的劳动,这种方式进步了硬件的投入,也对负荷均衡起到一定的功效。

keepalived重要有多个模块,分别是ipvs wrapper、checkers、vrrp stack。ipvs wrapper模块为keepalived的主干,肩负主进度的开发银行、维护以至全局配置文件的加载和解析;checkers肩负健检,富含相近的各个检查措施;vrrp stack模块是来得以达成V本田CR-VRP合同的。

1  概述

布置文件

keepalived的暗中认可配置文件为/etc/keepalived/keepalived.conf,其主程序文件为/usr/sbin/keepalived。keepalived的配备文件的咬合主要分为三有个别,而各样部分下面又含有着各自的子段,其构成及布局如下:

本文重要介绍keepalive 的相干配置

1、GLOBAL CONFIGURATION:全局配置段,蕴涵 Global definitions、Static routes/address/rules

2  keepalived安装配置

Global definitions:用于定义全局设置,常用的参数及示范如下:

global_defs {
    notification_email {  #指定报警邮件发往的邮箱地址
        root@localhost
    }
    notification_email_from keepalived@localhost  #指定报警邮件的发件人
    smtp_server 127.0.0.1  #指定邮件服务器的地址
    smtp_connect_timeout 30  #指定邮件服务器的连接超时时长
    router_id node1  #设置路由器的标识
    vrrp_mcast_group4 224.0.100.19  #设置vrrp的广播地址,在同一个HA Cluster中要确保其广播地址一致,才能接收到对应的vrrp报文
    vrrp_strict  #执行严格的vrrp协议检查,下列情况将会阻止启动Keepalived:1. 没有VIP地址。2. 单播邻居。3. 在VRRP版本2中有IPv6地址。
}

CentOS 6.4以上的版本都归拢在Base源里

Static routes/address/rules:用于配置keepalived中不会被vrrp移除的静态地址、路由只怕准则,基本不用。

.程序意况:

2、VLX570RPD CONFIGURATION:vrrp相关配置段

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

VRRP instance(s):定义vrrp同步组。

vrrp_instance VIP_1 {    #定义vrrp实例,VIP_1为自定义实例名
    state MASTER|BACKUP    #指定此虚拟路由器在vrrp组的角色
    interface eno16777736    #绑定物理接口
    virtual_router_id 14    #唯一标识id,用于区分vrrp实例,范围为0-255
    priority 100    #设定优先级,范围为1-254
    advert_int 1    #发送vrrp通告的时间间隔
    nopreempt|preempt    #设定工作模式为非抢占或抢占模式
    preempt_delay 300    #在抢占式模式下,节点上线后触发新选举的延迟时长
    authentication {    #设置vrrp实例协商的方式及密码
        auth_type PASS    #定义认证类型为简单密码认证
        auth_pass 571f97b2    #定义密码串,最长不超过8个字符
    }
    virtual_ipaddress {    #在绑定的物理接口上添加虚拟ip地址
        #<IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
        10.1.0.91/16 dev eno16777736
    }
    track_interface {    #配置需要监控的网络接口,一旦接口出现故障该vrrp实例转为FAULT状态
      eth0
      eth1
      ...
     }
    track_script {    #调用在vrrp_script中定义的脚本,根据脚本进行监控调整
       <SCRIPT_NAME>
       <SCRIPT_NAME> weight <-254..254>
    }
    notify_master <STRING>|<QUOTED-STRING>    #当前节点成为主节点时触发的通知脚本
    notify_backup <STRING>|<QUOTED-STRING>    #当前节点转为备节点时触发的通知脚本
    notify_fault <STRING>|<QUOTED-STRING>    #当前节点转为fault状态时触发的通知脚本
    notify_stop <STRING>|<QUOTED-STRING>     #当前节点停止时所触发的通知脚本
}

.主程序文件:/usr/sbin/keepalived

VWranglerRP script(s):定义周期性实践的台本,用于检查相应的劳动或ip状态。

vrrp_script <SCRIPT_NAME> {    #定义周期执行的脚本,vrrp instances会根据脚本的退出码来调整优先级
    script <STRING>|<QUOTED-STRING>    #定义执行脚本的存放路径
    interval INT     #定义调用执行脚本的周期,默认为1s
    timeout <INTEGER>    #脚本执行超时时间,脚本执行超时后,则被认为失败
    rise <INTEGER>        #定义脚本检查成功多少次,才认可当前的状态为正常
    fall <INTEGER>        #定义检查失败多少次,才认为当前状态为失败
}

.Unit File:/usr/lib/systemd/system/keepalived.service

3、LVS CONFIGURATION:LVS配置段

.Unit File的景况安顿文件:/etc/sysconfig/keepalived

Virtual server(s):用于定义虚构服务器的装置,虚构服务器能够用ip port、fwmark、virtual server group(s)来定义。

virtual_server IP port | virtual_server fwmark <int>  |virtual_server group string
{
    delay_loop <INT>    #健康检查的时间间隔
    lb_algo rr|wrr|lc|wlc|lblc|sh|dh    #lvs调度方法
    lb_kind NAT|DR|TUN    #集群类型
    persistence_timeout <INT>    #持久连接时长
    protocol TCP|UDP|SCTP    #服务协议
    sorry_server <IPADDR> <PORT>    #备用服务器
    real_server <IPADDR> <PORT>{
        weight <INT>    #指定权重,默认是1
        notify_up <STRING>|<QUOTED-STRING>    #服务器健康检查成功时执行的脚本
        notify_down <STRING>|<QUOTED-STRING>    #服务器健康检查失败时执行的脚本
        HTTP_GET|SSL_GET {    #应用层检测
            url {
                path <URL_PATH>    #定义要监控的URL
                status_code <INT>    #健康状态的响应码
                digest <STRING>    #健康状态的响应的内容的校验码
            }
            nb_get_retry <INT>    #重试次数
            delay_before_retry <INT>    #重试之前的延迟时长
            connect_ip <IP ADDRESS>    #向哪个IP地址发起健康状态检测请求,默认是real server的ip地址
            connect_port <PORT>    #向哪个PORT发起健康状态检测请求,默认是real server的端口
            bindto <IP ADDRESS>    #发起连接的接口的ip地址
            bind_port <PORT>    #发起连接的接口的地址端口
            connect_timeout <INTEGER>    #连接请求的超时时长
        }
        TCP_CHECK {
            connect_ip <IP ADDRESS>    #向哪个IP地址发起健康状态检测请求,默认是real server的ip地址
            connect_port <PORT>    #向哪个PORT发起健康状态检测请求,默认是real server的端口
            bindto <IP ADDRESS>    #发起连接的接口的ip地址
            bind_port <PORT>    #发起连接的接口的地址端口
            connect_timeout <INTEGER>    #连接请求的超时时长
        }
    }
}

3布局文件组件部分

 配置实例:主主格局

#一台主机配置VIP_1、VIP_2互为主备
global_defs {
    notification_email {
        root@localhost
    }
    notification_email_from keepalived@localhost
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id node1
    vrrp_mcast_group4 224.0.100.19
}

vrrp_instance VIP_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 14
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 571f97b2
    }
    virtual_ipaddress {
        10.1.0.91/16 dev eno16777736
    }
}

vrrp_instance VIP_2 {
    state BACKUP
    interface eno16777736
    virtual_router_id 15
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 578f07b2
    }
    virtual_ipaddress {
        10.1.0.92/16 dev eno16777736
    }
}
#一台主机配置VIP_1、VIP_2互为主备
global_defs {
    notification_email {
        root@localhost
    }
    notification_email_from keepalived@localhost
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id node2
    vrrp_mcast_group4 224.0.100.19
}

vrrp_instance VIP_1 {
    state BACKUP
    interface eno16777736
    virtual_router_id 16
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 571f97b2
    }
    virtual_ipaddress {
        10.1.0.91/16 dev eno16777736
    }
}

vrrp_instance VIP_2 {
    state MASTER
    interface eno16777736
    virtual_router_id 17
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 578f07b2
    }
    virtual_ipaddress {
        10.1.0.92/16 dev eno16777736
    }
}

 

2.1  组配置文件

有三段配置

GLOBAL CONFIGURATION

Global definitions

Static routes/addresses

VRRPD CONFIGURATION

VRRP synchronization group(s):vrrp同步组

V酷路泽RP instance(s):即一个vrrp设想路由器

LVS CONFIGURATION

Virtual server group(s)

Virtual server(s):ipvs集群的vs和rs

2.2  配置语法

.配置虚构路由器:

vrrp_instance    {

....

}

.专项使用参数:

state MASTE奥迪Q5|BACKUP:当前节点在那虚构路由器上的发端状态;只好有叁个是MASTEPRADO,余下的都应当为BACKUP

2020欧洲杯官方投注-2020欧洲杯官方投注网址,interface  IFACE_NAME:绑定为目前设想路由器使用的大要接口

virtual_router_id  VPRADOID:当前设想路由器惟大器晚成标记,范围是0-255

priority 100:当前概略节点在那设想路由器中的优先级;范围1-254

本文由2020欧洲杯官方投注-2020欧洲杯官方投注网址发布于win7,转载请注明出处:keepalived

相关阅读