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基础功能应用实例【转】的更多相关文章

  1. Linux 高可用(HA)集群之keepalived详解

    http://freeloda.blog.51cto.com/2033581/1280962 大纲 一.前言 二.Keepalived 详解 三.环境准备 四.LVS+Keepalived 实现高可用 ...

  2. Keepalived详解(一):Keepalived介绍【转】

    一.Keepalived介绍:         Keepalived是Linux下一个轻量级的高可用解决方案,它与HeartBeat.RoseHA实现的功能类似,都可以实现服务或者网络的高可用,但是又 ...

  3. Keepalived详解(四):通过vrrp_script实现对集群资源的监控【转】

    一.通过vrrp_script实现对集群资源的监控: Keepalived基础HA功能时用到了vrrp_script这个模块,此模块专门用于对集群中服务资源进行监控.与此模块一起使用的还有track_ ...

  4. Keepalived详解(五):Keepalived集群中MASTER和BACKUP角色选举策略【转】

    一.Keepalived集群中MASTER和BACKUP角色选举策略 在keepalived集群中,其实并没有严格意义上的主.备节点,虽然可以在keepalived配置文件中设置state选项为MAS ...

  5. Android 之窗口小部件详解(三)  部分转载

    原文地址:http://blog.csdn.net/iefreer/article/details/4626274. (一) 应用程序窗口小部件App Widgets 应用程序窗口小部件(Widget ...

  6. JAVASCRIPT事件详解-------原生事件基础....

    javaScirpt事件详解-原生事件基础(一)   事件 JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间,通过监听特定事件的发生,你能 ...

  7. .NET DLL 保护措施详解(三)最终效果

    针对.NET DLL 保护措施详解所述思路完成最终的实现,以下为程序包下载地址 下载 注意: 运行环境为.net4.0,需要安装VS2015 C++可发行组件包vc_redist.x86.exe.然后 ...

  8. logback -- 配置详解 -- 三 -- <encoder>

    附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appen ...

  9. python设计模式之装饰器详解(三)

    python的装饰器使用是python语言一个非常重要的部分,装饰器是程序设计模式中装饰模式的具体化,python提供了特殊的语法糖可以非常方便的实现装饰模式. 系列文章 python设计模式之单例模 ...

随机推荐

  1. 剑指Offer_编程题_7

    题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. n<=39 class Solution { public: int Fibonacci(int n) ...

  2. hadoop 分布式开发环境搭建

    一,安装java环境 添加java环境变量 vi /etc/profile   # add by tank export JAVA_HOME=/data/soft/jdk/jdk1.7.0_71 ex ...

  3. 【JS】js将 /Date(1518943415760+0800)/ 转换为2018-2-18 16:43:35格式

    function formatDate(dt) { var year = dt.getFullYear(); var month = dt.getMonth() + 1; var date = dt. ...

  4. 【.net】The source was not found, but some or all event logs could not be searched

    1.案发现场: 注册服务的时候 2.解决方案: 用管理员身份运行CMD,再注册服务: I had to run Command Prompt with Administrator Rights.

  5. MYSQL ERROR 1045 (28000) Access denied for user (using password YES)问题的解决

    我的Linux是Centos6.7的版本,本机上Mysql突然怎么连接都进不去 报错:MYSQL ERROR 1045 (28000) Access denied for user (using pa ...

  6. luogu P2144 [FJOI2007]轮状病毒

    传送门 随便摸一发题解算了 打表找规律 前五个答案是 1 5 16 45 121 其实是 1^2 3^2-4 4^2 7^2-4 11^2 底数就是类似于斐波那契数列,还有偶数项要减4 #includ ...

  7. Java中常见的锁分类以及对应特点

    对于 Java 锁的分类没有严格意义的规则,我们常说的分类一般都是依据锁的特性.锁的设计.锁的状态等进行归纳整理的,所以常见的分类如下: 公平锁和非公平锁:公平锁是多线程按照锁申请的顺序获取锁,非公平 ...

  8. 帮助类-从tfs获取数据

    using JC.Helper; using Microsoft.TeamFoundation.Client; using Microsoft.TeamFoundation.Framework.Cli ...

  9. python中重要的模块--asyncio 转载

    转载自: https://www.cnblogs.com/zhaof/p/8490045.html 一直对asyncio这个库比较感兴趣,毕竟这是官网也非常推荐的一个实现高并发的一个模块,python ...

  10. zabbix系列~mysql进行监控

    一 简介:zabbix进行数据库监控 二 目的:采用percona进行插件式安装监控 三 安装 环境 zabbix_agent 步骤  yum -y install php php-mysql yum ...