• 青蛙学Linux—Keepalived配置文件详解


    上一篇中在安装时指定了Keepalived的配置文件目录,所以这里Keepalived的配置文件为/etc/keepalived/keepalived.conf,Keepalived所有的配置都在这个文件中。由于Keepalived配置文件中的配置项比较多,所以这里按照功能将Keepalived的配置文件分为以下三部分:

    • 全局配置(Global Configuration)
    • VRRP配置
    • LVS配置

    Keepalived的配置文件是以块(block)的形式组织的,每个块的内容都包含在{}中,以#开头的行均为注释。

    注意:{}前面必须有一个空格;另外,Keepalived没有配置文件检测机制,就算是配置文件错误Keepalived也可以正常启动,但无法正常工作。

    这里首先使用Keepalived的HA功能,所以之介绍Keepalived配置文件中的全局和VRRP部分的配置。

    1、全局配置

    简单的全局配置如下:

    global_defs {
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 192.168.200.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL
    }
    • notification_email:定义接收报警邮件的地址,可以设置多个,每行一个。注意,如果要开启邮件报警,需要本机开启sendmail服务
    • notification_email_from:定义邮件的发送地址
    • smtp_server:定义发送邮件的SMTP服务器地址
    • smtp_connect_timeout:定义连接SMTP服务器的超时时间
    • router_id:定义Keepalived服务器的表示,发送邮件时显示在邮件主题中

    2、VRRP部分配置

    VRRP部分配置是Keepalived所有配置的核心,主要用来实现Keepalived的高可用功能。VRRP部分主要用来配置节点角色(主或从)、实例绑定的网络接口、节点间的验证机制、虚拟IP等。以下为常用的一些配置项:

    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 51
        priority 100
        advert_int 1
        track_interface {
    	eth0 
    	eth1
        }
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.200.16
            192.168.200.17
            192.168.200.18
        }
        nopreempt 
        preemtp_delay  300
        notify_master "xxx.sh "
        notify_backup "xxx.sh"
        notify_fault "xxx.sh"
        notify_stop "xxx.sh"
    }

    VRRP部分以vrrp_instance做为标识,在这个实例中包含若干配置项:

    • vrrp_instance:一个VRRP实例的开始,后跟自定义的实例名称
    • state:定义此台Keepalived的角色,MASTER表示主服务器,BACKUP表示备用服务器
    • interface:定义Keepalived监测的网络接口
    • virtual_router_id:定义虚拟路由标识,一个数字。同一个HA集群中的Master和Backup的虚拟路由标识必须一致
    • priority:定义节点优先级,数字越大表示优先级越高。在一个HA集群中,Master的优先级最高,而优先级高的Backup更有可能被选举为下一个Master
    • advert_int:定义Master和Backup之间检测的时间间隔,单位秒
    • track_interface:定义额外监控的网络接口,其中任何一个接口故障Keepalived都会进入FAULT状态
    • authentication:定义节点间的通信验证类型和密码。auth_type用于定义验证类型,有PASS和AH两种;auth_pass用于定义密码,各个节点间的密码必须相同才可以正常通信
    • virtual_ipaddress:定义虚拟IP地址(VIP),可设置多个虚拟IP,每行一个。Keepalived会将虚拟IP使用系统命令ip address add添加到Master的操作系统中,所以可以通过ip addr命令查看添加的虚拟IP;添加IP的方式多种多样,可以直接使用IP地址,也可以使用如xxx.xxx.xxx.xxx dev eth0的方式将虚拟IP绑定到具体的网络接口,也可以使用掩码,如xxx.xxx.xxx.xxx/24的形式
    • nopreempt:定义节点的不抢占功能。不抢占功能是在集群进行了一次主备切换后,当原先的Master恢复正常之后,不会再次成为Master,而是等待当前运行的Master故障之后才会再次成为Master。这样可以避免主备来回切换带来的风险。注意,只有stateBACKUP的节点才可以设置不抢占模式,且只需要在优先级高的节点上设置
    • preemtp_delay:定义切换的延时时间,单位秒,在定义的时间内不会发生主备切换。用于重启网络或服务而不希望发生主备切换的场景
    • notify_master:定义当Keepalived进入Master状态时要执行的脚本,可以是报警脚本,也可以是服务管理脚本,同时脚本允许传入参数
    • notify_backup:定义当Keepalived进入Backup状态时执行的脚本
    • notify_fault:定义当Keepalived进入Fault状态时执行的脚本
    • notify_stop:定义当Keepalived停止后需要执行的脚本
  • 相关阅读:
    zeromq学习记录(五)vc下多线程
    zeromq学习记录(七)订阅发布消息封装
    Mozilla研究—从输入URL到显示内容的基本过程
    Mozilla研究—深入理解mozilla所需的背景知识
    Mozilla研究—组件加载机制
    Mozilla研究—传输协议
    Mozilla研究—mozilla中的设计亮点
    GTK+主循环(main loop)的工作原理
    Mozilla研究—mozilla能为我们做什么
    Mozilla研究—组件的创建过程
  • 原文地址:https://www.cnblogs.com/yu2006070-01/p/10381244.html
Copyright © 2020-2023  润新知