keepalived的配置文件:

keepalived只有一个配置文件keepalived.conf,里面主要包括以下几个配置区域,分别是
global_defs、              全局定义及故障时默认邮件发送 参数
static_ipaddress、    设置本节点的IP              如果你的机器上已经配置了IP和路由,那么这两个区域可以不用配置
static_routes、          设置本节点路由信息       如果你的机器上已经配置了IP和路由,那么这两个区域可以不用配置
vrrp_script、              用来做健康检查,检查失败时会将vrrp_instance的priority减少相应的值。

vrrp_instance             用来定义对外提供服务的VIP区域及其相关属性
virtual_server         

global_defs {
notification_email             发生诸如切换操作时发送email通知邮件地址 可以多个每行一个
{
admin@example.com
}
notification_email_from admin@example.com    发送通知邮件 源地址
smtp_server 127.0.0.1                                            smtp服务器地址
stmp_connect_timeout 30                                      smtp连接超时时间
router_id node1                                                      机器标识 主要用于通知中
}

静态地址和路由配置 (正常不用配置)
static_ipaddress {
     10.210.214.163/24 brd 10.210.214.255 dev eth0                 静态ip配置,这里实际上和系统里面命令配置IP地址和路由一样
...}
static_routes {
     10.0.0.0/8 via 10.210.214.1 dev eth0                                    静态路由配置
...}
以上分别表示启动/关闭keepalived时在本机执行的如下命令:

# /sbin/ip addr add 10.210.214.163/24 brd 10.210.214.255 dev eth0
# /sbin/ip route add 10.0.0.0/8 via 10.210.214.1 dev eth0
# /sbin/ip addr del 10.210.214.163/24 brd 10.210.214.255 dev eth0
# /sbin/ip route del 10.0.0.0/8 via 10.210.214.1 dev eth0
注意: 请忽略这两个区域,一般这个区域不需要配置,机器肯定已经配置了IP和路由。

VRRPD配置:

VRRPD配置包括三个类

VRRP实例(VRRP Instance)

VRRP同步组(synchroization group)

VRRP脚本

1.VRRP实例(instance)

vrrp_instance http {
state MASTER       实例初始状态(还要根据priority值确定)可以是MASTER 或 BACKUP
interface eth0          实例节点固有IP(非VIP)的网卡,用来发VRRP包
dont_track_primary      忽略VRRP网卡错误。(默认未设置)
track_interface {            监控以下网卡,如果任何一个不通就会切换到故障FALT状态。(可选项)
eth0 eth1
}
mcast_src_ip   <IPADDR>        vrrp组播包的源地址,默认源地址为master的IP 这里相当于heartbeat的心跳端口
                                                      如果没有设置那么就用默认的绑定的网卡的IP,也就是interface指定的IP地址
garp_master_delay 10              当切换为Master状态后多久更新ARP缓存
virtual_router_id 51            虚拟路由标识即VRID 相同的VRID为一个组 他将决定多播的MAC地址
priority 100                          定义优先级,数字越大,优先级越高,在同一个vrrp_instance下,MASTER 的优先级必须大于BACKUP。
                                              这个选项的值最好高于其他机器50个点,该项范围是1-255
advert_int 1             检查间隔默认为1秒

authentication {       设置认证
auth_type PASS               认证方式可以是PASS或AH两种认证方式
autp_pass 1234                认证密码
}

virtual_ipaddress {            设置虚拟IP 可以设置多个
#<IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPT> label <LABEL>
192.168.200.17/24 dev eth1
192.168.200.18/24 dev eth2 label eth2:1
}

设置虚拟路由的地方
virtual_routes {
# src <IPADDR> [to] <IPADDR>/<MASK> via|gw <IPADDR> dev <STRING> scope <SCOPE> tab
src 192.168.100.1 to 192.168.109.0/24 via 192.168.200.254 dev eth1
192.168.110.0/24 via 192.168.200.254 dev eth1
192.168.111.0/24 dev eth2
192.168.112.0/24 via 192.168.100.254
}

track_script {
check_running weight 20        vrrp监控脚本名称(脚本定义在后边)  权重
}

nopreempt                设置不抢占,如设置,则state的状态要为backup
                                   而且这个节点的优先级必须别另外的高。当主MASTER恢复后不抢占资源
preemtp_delay 300          抢占延迟 master启动多久之后进行接管资源(VIP/Route信息等)
debug                        debug级别
}

注意事项: 设置state为 双备原理
通常如果master服务死掉后backup会变成master,但是当master服务又好了的时候 master此时会抢占VIP.
这样就会发生两次切换对业务繁忙的网站来说是不好的。 
所以我们要在配置文件加入 nopreempt 非抢占 参数,但是这个参数只能用于state 为backup,
故我们在用HA的时候最好master 和backup的state都设置成backup 让其通过priority来竞争。 
 这样加上nopreempt的时候,即使master又好了,依旧不会切换 。 
    state   nopreempt  priority
 主机  backup  设置  100
 从机  backup  不设置  50

vrrp_script check_running {

script “/usr/local/bin/check_running”       程序位置
interval 10                                                 脚本 执行间隔
weight 10                                   脚本结果导致的优先级变更:10表示优先级+10;-10则表示优先级-10
}

    • 如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加
    • 如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少
    • 其他情况,原本配置的优先级不变,即配置文件中priority对应的值。

VRRP同步组(synchroization group)配置

定义vrrp_intance组,使得这个组内成员动作一致。

例如两个vrrp_instance同属于一个vrrp_rsync_group,
那么其中一个vrrp_instance发生故障切换时,另一个vrrp_instance也会跟着切换(即使这个instance没有发生故障)。

vrrp_sync_group VG_1 {
group { 
  http 
  mysql 

notify_master /path/to/to_master.sh      表示当切换到master状态时要执行的脚本
notify_backup /path_to/to_backup.sh   表示当切换到backup状态时要执行的脚本
notify_fault "/path/fault.sh VG_1"      表示出错状态时要执行的脚本
notify /path/to/notify.sh                       表示任何状态切换时都调用该脚本,该脚本在以上三个脚本执行完成之后进行调用
smtp_alert                                          表示切换时给global defs中定义的邮件地址发送邮件通知
}

virtual_server_group和virtual_server区域

virtual_server_group一般在超大型的LVS中用到,一般LVS用不过这东西,因此不多说。

virtual_server IP Port {
    delay_loop <INT>
    lb_algo rr|wrr|lc|wlc|lblc|sh|dh
    lb_kind NAT|DR|TUN
    persistence_timeout <INT>
    persistence_granularity <NETMASK>
    protocol TCP
    ha_suspend
    virtualhost <STRING>
    alpha
    omega
    quorum <INT>
    hysteresis <INT>
    quorum_up <STRING>|<QUOTED-STRING>
    quorum_down <STRING>|<QUOTED-STRING>
    sorry_server <IPADDR> <PORT>
    real_server <IPADDR> <PORT> {
        weight <INT>
        inhibit_on_failure
        notify_up <STRING>|<QUOTED-STRING>
        notify_down <STRING>|<QUOTED-STRING>
        # HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK
        HTTP_GET|SSL_GET {
            url {
                path <STRING>
                # Digest computed with genhash
                digest <STRING>
                status_code <INT>
            }
            connect_port <PORT>
            connect_timeout <INT>
            nb_get_retry <INT>
            delay_before_retry <INT>
        }
    }
}

Keepalived 配置文件的更多相关文章

  1. keepalived配置文件

    1. 查看进程 ps aux | grep keepalived ,其输出为: [root@lvs-m ~]# ps aux| grep keepalived |grep -v greproot 21 ...

  2. keepalived配置文件详解(2)

    全局配置 global_defs { notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个邮件地址 xuequn@.com } noti ...

  3. Keepalived配置文件详解

    global_defs { router_id LVS_$prio #节点唯一标识,通常为hostname } local_address_group laddr_g1 { ${lvs_node} # ...

  4. keepalived 配置文件参数详解

    global_defs 全局配置vrrpd 1. vrrp_script添加一个周期性执行的脚本.脚本的退出状态码会被调用它的所有的VRRP Instance记录. 2. vrrp_sync_grou ...

  5. keepalived 配置文件解析

    ! Configuration File for keepalived global_defs { #全局定义部分 notification_email { #设置报警邮件地址,可设置多个 acass ...

  6. 高可用之KeepAlived(一):基本概念和配置文件分析

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  7. keepalived原理(主从配置+haproxy)及配置文件详解

    下图描述了使用keepalived+Haproxy主从配置来达到能够针对前段流量进行负载均衡到多台后端web1.web2.web3.img1.img2.但是由于haproxy会存在单点故障问题,因此使 ...

  8. keepalived安装及配置文件详解

    一个执着于技术的公众号 在上一篇文章中,我们对Keepalived进行了简单入门学习: Keepalived入门学习 今天我们继续学习Keepalived服务. 一.安装Keepalived服务 两种 ...

  9. 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

    一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...

随机推荐

  1. kaggle竞赛分享:NFL大数据碗(上篇)

    kaggle竞赛分享:NFL大数据碗 - 上 竞赛简介 一年一度的NFL大数据碗,今年的预测目标是通过两队球员的静态数据,预测该次进攻推进的码数,并转换为该概率分布: 竞赛链接 https://www ...

  2. kubernetes concepts -- Replication Controller

    Edit This Page ReplicationController NOTE: A Deployment that configures a ReplicaSet is now the reco ...

  3. Spring Cloud Contract 微服务契约测试

    简介 使用场景 主要用于在微服务架构下做CDC(消费者驱动契约)测试.下图展示了多个微服务的调用,如果我们更改了一个模块要如何进行测试呢? 传统的两种测试思路 模拟生产环境部署所有的微服务,然后进行测 ...

  4. 【模板】2-SAT问题

    问题简述 有 \(n\) 个变量,每个变量可赋为 \(1\) 或 \(0\) 必须满足一些限制条件,如" \(a\) 为1 或 \(b\) 为0 " " \(a\) 为0 ...

  5. PHP——数组

    数组的定义 数组能够在单个变量中存储多个值. 创建空数组: $arr = array();//表示创建一个空数组,并把创建的空数组赋值给变量$arr 数值数组 自动分配 ID 键(ID 键总是从 0 ...

  6. ubuntu 16.10 shu rufa meiy ou l e geng xi zhi hou

  7. doT 这个模板 是怎么实现的?

    之前做过一个微信有关的站 模板用 doT 嗯 这个 用起来很 不错. 但是 它是怎么实现的,想过没有? ps:https://github.com/olado/doT 源码总共 140行. 第90行里 ...

  8. HTML超全笔记

    HTML概述 概念:是最基础的网页开发语言 Hyper Text Markup Language 超文本标记语言 超文本: 超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本. 标记 ...

  9. C语言寒假大作战02

    2.2.1 寒假大作战 问题 回答 这个作业属于哪个课程 2019软件四班C语言寒假作业大作战 这个作业要求在哪里 作业要求 我在这个课程的目标是 用switch完成一个menu基本框架 这个作业在那 ...

  10. Miniio对象储存服务器安装教程

    #创建minio专用文件目录 mkdir -p /app/minio/data mkdir -p /app/minio/config chmod -R 777 /app/minio/data chmo ...