Keepalived详解(三):Keepalived基础功能应用实例【转】
Keepalived基础功能应用实例:
1.Keepalived基础HA功能演示:
在默认情况下,Keepalived可以实现对系统死机、网络异常及Keepalived本身进行监控,也就是说当系统出现死机、网络出现故障或Keepalived进程异常时,Keepalived会进行主备节点的切换。但这些还是不够的,因为集群中运行的服务也随时可能出现问题,因此,还需要对集群中运行服务的状态进行监控,当服务出现问题时也进行主备切换。Keepalived作为一个优秀的高可用集群软件,也考虑到了这一点,它提供了一个vrrp_script模块专门用来对集群中服务资源进行监控。
1. 配置Keepalived:
操作系统:CentOS release 6.7 版本:keepalived-1.2.12
主机名主机IP地址集群角色集群服务虚拟IP地址
keepalived-master 10.0.0.35 MASTER(主节点) HTTPD 10.0.0.40
keepalived-backup10.0.0.36 BACKUP(备用节点) HTTPD
keepalived-master节点的keepalived.conf文件的内容:
! Configuration File for keepalived
global_defs {
notification_email {
*********@qq.com
}
notification_email_from *********@163.com
smtp_server smtp.163.com
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script check_httpd {
script "killall -0 httpd"
interval 2
}
vrrp_instance HA_1 {
state MASTER
interface eth0
virtual_router_id 80
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass qwaszx
}
notify_master "/etc/keepalived/master.sh"
notify_backup "/etc/keepalived/backup.sh"
notify_fault "/etc/keepalived/fault.sh"
track_script {
check_httpd
}
virtual_ipaddress {
10.0.0.40/24 dev eth0
}
}
master.sh文件内容为:
#!/bin/bash
LOGFILE=/var/log/keepalived-mysql-state.log
echo "[Master]" >> $LOGFILE
date >> $LOGFILE
backup.sh文件内容为:
#!/bin/bash
LOGFILE=/var/log/keepalived-mysql-state.log
echo "[Backup]" >> $LOGFILE
date >> $LOGFILE
fault.sh文件内容为:
#!/bin/bash
LOGFILE=/var/log/keepalived-mysql-state.log
echo "[Fault]" >> $LOGFILE
date >> $LOGFILE
keepalived-backup节点上的keepalived.conf配置文件内容与keepalived-master节点上的基本相同,需要修改的地方有两个:
□ 将“state MASTER” 更改为 “state BACKUP”。
■ 将priority 100 更改为一个较小的值,这里改为“priority 80”
2.Keepalived启动过程分析:
keepalived-master节点启动keepalived服务,操作如下:
[root@keepalived-master ~]# /etc/init.d/httpd start
[root@keepalived-master ~]# /etc/init.d/keepalived start
keepalived-backup节点启动keepalived服务,操作如下:
[root@keepalived-backup ~]# /etc/init.d/httpd start
[root@keepalived-backup ~]# /etc/init.d/keepalived start
3.keepalived的故障切换过程分析:
在keepalived-master节点出现故障后,备用节点keepalived-backup立刻检测到,此时备用机变成MASTER角色,并且接管了keepalived-master主机的虚拟IP资源,最后将虚拟IP绑定在eth0设备上。
4.故障恢复切换分析:
keepalived-master节点通过vrrp_script模块检测到httpd服务已经恢复正常,然后自动切换到MASTER状态,同时也夺回了集群资源,将虚拟IP地址再次绑定在eth0设备上。
纵观Keepalived的整个运行过程和切换过程,看似合理,事实上并非如此:在一个高负载、高并发、追求稳定的业务系统中,执行一次主、备切换对业务系统影响很大,因此,不到万不得已,尽量不要进行主、备角色的切换,也就是说,在主节点发生故障后,必须切换到备用节点,而在主节点故障恢复后,不希望再次切回主节点,直到备用节点发生故障时才进行切换,这就是前面介绍的不抢占功能,可以通过Keepalived的nopreempt选项来实现。
配置:
master:
! Configuration File for keepalived
global_defs {
notification_email {
**********@qq.com
}
notification_email_from *******@163.com
smtp_server smtp.163.com
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script check_httpd {
script "killall -0 httpd"
interval 2
}
vrrp_instance HA_1 {
state BACKUP
interface eth0
virtual_router_id 80
priority 100
nopreempt
advert_int 2
authentication {
auth_type PASS
auth_pass qwaszx
}
notify_master "/etc/keepalived/master.sh"
notify_backup "/etc/keepalived/backup.sh"
notify_fault "/etc/keepalived/fault.sh"
track_script {
check_httpd
}
virtual_ipaddress {
10.0.0.40/24 dev eth0
}
}
backup:
! Configuration File for keepalived
global_defs {
notification_email {
********@qq.com
}
notification_email_from *******@163.com
smtp_server smtp.163.com
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script check_httpd {
script "killall -0 httpd"
interval 2
}
vrrp_instance HA_1 {
state BACKUP
interface eth0
virtual_router_id 80
priority 80
#nopreempt
advert_int 2
authentication {
auth_type PASS
auth_pass qwaszx
}
notify_master "/etc/keepalived/master.sh"
notify_backup "/etc/keepalived/backup.sh"
notify_fault "/etc/keepalived/fault.sh"
track_script {
check_httpd
}
virtual_ipaddress {
10.0.0.40/24 dev eth0
}
}
转自
Keepalived详解(三)-闫利朋的博客-51CTO博客
http://blog.51cto.com/6284444/2135196
Keepalived详解(三):Keepalived基础功能应用实例【转】的更多相关文章
- Linux 高可用(HA)集群之keepalived详解
http://freeloda.blog.51cto.com/2033581/1280962 大纲 一.前言 二.Keepalived 详解 三.环境准备 四.LVS+Keepalived 实现高可用 ...
- Keepalived详解(一):Keepalived介绍【转】
一.Keepalived介绍: Keepalived是Linux下一个轻量级的高可用解决方案,它与HeartBeat.RoseHA实现的功能类似,都可以实现服务或者网络的高可用,但是又 ...
- Keepalived详解(四):通过vrrp_script实现对集群资源的监控【转】
一.通过vrrp_script实现对集群资源的监控: Keepalived基础HA功能时用到了vrrp_script这个模块,此模块专门用于对集群中服务资源进行监控.与此模块一起使用的还有track_ ...
- Keepalived详解(五):Keepalived集群中MASTER和BACKUP角色选举策略【转】
一.Keepalived集群中MASTER和BACKUP角色选举策略 在keepalived集群中,其实并没有严格意义上的主.备节点,虽然可以在keepalived配置文件中设置state选项为MAS ...
- Android 之窗口小部件详解(三) 部分转载
原文地址:http://blog.csdn.net/iefreer/article/details/4626274. (一) 应用程序窗口小部件App Widgets 应用程序窗口小部件(Widget ...
- JAVASCRIPT事件详解-------原生事件基础....
javaScirpt事件详解-原生事件基础(一) 事件 JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间,通过监听特定事件的发生,你能 ...
- .NET DLL 保护措施详解(三)最终效果
针对.NET DLL 保护措施详解所述思路完成最终的实现,以下为程序包下载地址 下载 注意: 运行环境为.net4.0,需要安装VS2015 C++可发行组件包vc_redist.x86.exe.然后 ...
- logback -- 配置详解 -- 三 -- <encoder>
附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appen ...
- python设计模式之装饰器详解(三)
python的装饰器使用是python语言一个非常重要的部分,装饰器是程序设计模式中装饰模式的具体化,python提供了特殊的语法糖可以非常方便的实现装饰模式. 系列文章 python设计模式之单例模 ...
随机推荐
- 修复./mysql/proc
mysql数据库只能建不能删的错误提示及处理方法: mysql> drop database zabbixaa; ERROR 145 (HY000): Table ‘./mysql/proc‘ ...
- ruby select 方法,可用于先查询结果后,再次用条件限制
1. 用于条件过滤 @works=DworkPro.all.order(:work_type) @work_pro=@works.select{ |x| x.job_type == 7} 2. sel ...
- CentOS 6.8升级OpenSSH7.7p
近期因centos 6.x 默认openssh扫描存在大量漏洞,基于安全考虑,需要将openssh_5.3p1升级为最新版,网上查了很多教程,发现openssh存在大量依赖,不解决依赖问题很难保证其他 ...
- HDU 1030(三角数阵 数学)
题意是问在给定的三角形数阵中从一个数到另一个数所要跨过的边数. 最初的时候很迷,除了发现每层的数字个数与层数间的关系和每层数最后一个数与层数的关系外什么也没看出来,打算先求出数字所在的层数,然后计算到 ...
- python --github 刷题
第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? import r ...
- npm与yarn命令对比
Yarn是由Facebook.Google.Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 Yarn 是为了弥补 npm 的一些缺陷而出现的(比如,npm install时候会 ...
- 搭建 consul 集群
=============================consul 命令行工具=============================consul 支持 Windows/Linux 等多种平台, ...
- Vertica系列: 表的分段和分区
Vertica 有两个数据分布的概念, segmentation 和 partition, 至少有下面几个区别: 1.目的方面:segmentation 解决各节点数据倾斜问题, 适用于木桶原理, 数 ...
- luogu 2480 古代猪文 数论合集(CRT+Lucas+qpow+逆元)
一句话题意:G 的 sigma d|n C(n d) 次幂 mod 999911659 (我好辣鸡呀还是不会mathjax) 分析: 1.利用欧拉定理简化模运算 ,将上方幂设为x,则x=原式mod ...
- 多态(upcast)减少分支判断 以及 多态继承设计、具体类型判断。
Influenced by <java 八荣八耻>,翻了下<java编程思想> 印象中多态产生的条件:1.子类继承父类 2.父类[指针]指向子类 3.父类引用调用重写(@Ove ...