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用不过这东西,因此不多说。

  1. virtual_server IP Port {
  2.     delay_loop <INT>
  3.     lb_algo rr|wrr|lc|wlc|lblc|sh|dh
  4.     lb_kind NAT|DR|TUN
  5.     persistence_timeout <INT>
  6.     persistence_granularity <NETMASK>
  7.     protocol TCP
  8.     ha_suspend
  9.     virtualhost <STRING>
  10.     alpha
  11.     omega
  12.     quorum <INT>
  13.     hysteresis <INT>
  14.     quorum_up <STRING>|<QUOTED-STRING>
  15.     quorum_down <STRING>|<QUOTED-STRING>
  16.     sorry_server <IPADDR> <PORT>
  17.     real_server <IPADDR> <PORT> {
  18.         weight <INT>
  19.         inhibit_on_failure
  20.         notify_up <STRING>|<QUOTED-STRING>
  21.         notify_down <STRING>|<QUOTED-STRING>
  22.         # HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK
  23.         HTTP_GET|SSL_GET {
  24.             url {
  25.                 path <STRING>
  26.                 # Digest computed with genhash
  27.                 digest <STRING>
  28.                 status_code <INT>
  29.             }
  30.             connect_port <PORT>
  31.             connect_timeout <INT>
  32.             nb_get_retry <INT>
  33.             delay_before_retry <INT>
  34.         }
  35.     }
  36. }

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. 图解kubernetes调度器预选设计实现学习

    Scheduler中在进行node选举的时候会首先进行一轮预选流程,即从当前集群中选择一批node节点,本文主要分析k8s在预选流程上一些优秀的筛选设计思想,欢迎大佬们指正 1. 基础设计 1.1 预 ...

  2. 两个关于 Java 面试的 Github 项目

    哈喽,大家好.相信大家都知道金九银十,在人才市场上是指每年的 9 月和 10 月是企业的招聘高峰期.这个时候企业往往有大量招聘需求,求职者在这个时候就找工作无疑是最适合的.需求大,谈工资什么的就更容易 ...

  3. 网络流 - 最大流构图入门 bzoj 1305

    一次舞会有n个男孩和n个女孩.每首曲子开始时,所有男孩和女孩恰好配成n对跳交谊舞.每个男孩都不会和同一个女孩跳两首(或更多)舞曲.有一些男孩女孩相互喜欢,而其他相互不喜欢(不会“单向喜欢”).每个男孩 ...

  4. C# 二分法的解读

    注:一定是有序的数组,才可以使用这种算法,如果数组没有排序则先进行排序后再调用此方法. 1.二分法是做什么的呢? 当然是查找数组中的数据了,开个玩笑,哈哈哈. 2.为啥要用这种方式呢? 二分顾名思义, ...

  5. 如何使用F4的IRAM2内存

    在使用KEIL做F4的项目的时候发现RAM区有片上IRAM2选项,查了datesheet后发现这块是CCM内存区 CCM内存是在地址0x1000000映射的64KB块,只提供CPU通过数据D总线进行访 ...

  6. 软工作业-14组铁大FaceBook网站使用体验

    铁大facebook是面向铁道大学学生的一个空间网站,空间界面十分朴素,灰色的色调.基本可以满足日常的发动态需求,但也存在一些问题: 比如发动态不是很方便,必须要进入到某一个空间才能发动态 .就有一些 ...

  7. windows下RocketMQ安装部署

    一.预备环境 1.系统 Windows 2. 环境 JDK1.8.Maven.Git 二. RocketMQ部署 1.下载 1.1地址:http://rocketmq.apache.org/relea ...

  8. error while loading shared libraries: libevent-2.1.so.6 的解决办法

    执行 memcached 启动命令时,报错,提示:error while loading shared libraries: libevent-2.1.so.6: cannot open shared ...

  9. 夜晚 十点 React-Native 源码 暴力畜 系列

    百度 上 给的 关于 React-Native 的 排名 前三 继续 跟

  10. HDU-6185-Covering(推递推式+矩阵快速幂)

    Covering Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...