Keepalived 配置文件
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级别
}
这样就会发生两次切换对业务繁忙的网站来说是不好的。
所以我们要在配置文件加入 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 配置文件的更多相关文章
- keepalived配置文件
1. 查看进程 ps aux | grep keepalived ,其输出为: [root@lvs-m ~]# ps aux| grep keepalived |grep -v greproot 21 ...
- keepalived配置文件详解(2)
全局配置 global_defs { notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个邮件地址 xuequn@.com } noti ...
- Keepalived配置文件详解
global_defs { router_id LVS_$prio #节点唯一标识,通常为hostname } local_address_group laddr_g1 { ${lvs_node} # ...
- keepalived 配置文件参数详解
global_defs 全局配置vrrpd 1. vrrp_script添加一个周期性执行的脚本.脚本的退出状态码会被调用它的所有的VRRP Instance记录. 2. vrrp_sync_grou ...
- keepalived 配置文件解析
! Configuration File for keepalived global_defs { #全局定义部分 notification_email { #设置报警邮件地址,可设置多个 acass ...
- 高可用之KeepAlived(一):基本概念和配置文件分析
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- keepalived原理(主从配置+haproxy)及配置文件详解
下图描述了使用keepalived+Haproxy主从配置来达到能够针对前段流量进行负载均衡到多台后端web1.web2.web3.img1.img2.但是由于haproxy会存在单点故障问题,因此使 ...
- keepalived安装及配置文件详解
一个执着于技术的公众号 在上一篇文章中,我们对Keepalived进行了简单入门学习: Keepalived入门学习 今天我们继续学习Keepalived服务. 一.安装Keepalived服务 两种 ...
- 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡
一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...
随机推荐
- Spring 框架学习(1)--Spring、Spring MVC扫盲
纸上得来终觉浅,绝知此事要躬行 文章大纲 什么是spring 传统Java web应用架构 更强的Java Web应用架构--MVC框架 Spring--粘合式框架 spring的内涵 spring核 ...
- APICloud开发者进阶之路 |纯手工编写日程表功能
本文出自APICloud官方论坛, 感谢论坛版主 赵永亮 的分享. 最近看论坛内关于极光推送的问题有很多, 本想写一个关于极光的详细教程的,无奈已经有很多大牛分享过了,所以只得纯手工写了一个日程表,可 ...
- C#中的委托是什么
1.什么是委托?(方法作另一个方法的参数)delegate void MyDel(int value); //声明委托类型和类一样,委托是用户自定义的类型,但是类是数据和方法的集合,而委托是持有 ...
- stormzhangB站直播之总结
此文转自个人微信公众号,原链接为:https://mp.weixin.qq.com/s?__biz=MzUxODk0ODQ3Ng==&mid=2247484313&idx=1& ...
- 神秘常量0x077CB531,德布莱英序列的恩赐
本文发布于游戏程序员刘宇的个人博客, 转载请注明来源https://www.cnblogs.com/xiaohutu/p/10950011.html 某天我在优化游戏的算法,在将一个个关键数据结构优化 ...
- n-tier waf 41 project 层真够多
ps: http://waf.codeplex.com/releases/view/618696
- Mayor's posters (线段树+离散化)
Mayor's posters Description The citizens of Bytetown, AB, could not stand that the candidates in the ...
- CSS-04-层叠选择器
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- UML类图的情话诉说
你知道吗这个世界是个繁杂而又简单的世界 你我在冥冥中都有联系 有时候,你像我的妈妈一样,对你依赖满满, 没有你我不知道何去何从(依赖) 有时候,看你,真如我亲爱孩子般,想一直拥你入我怀抱,但我知道终究 ...
- Sea.js 手册与文档
Sea.js 手册与文档 首页 | 索引 目录 何为 CommonJS 何为 CommonJS 模块 为何封装模块 何为 CommonJS? CommonJS 是一个有志于构建 JavaScript ...