编译安装

1、安装环境

CentOS release 6.4 Based on Linux 2.6.32,安装1.2.9,没问题

在Red Hat Enterprise Linux Server release 5.3 (Tikanga) Based on 2.6.18 安装1.2.9,有问题,1.2.8没问题

2、获取源码

http://www.keepalived.org/software/keepalived-1.2.9.tar.gz

http://www.keepalived.org/software/keepalived-1.2.8.tar.gz

3、编译

tar -xvf keepalived-1.2.x.tar.gz

mkdir /opt/keepalived

cd keepalived-1.2.x

./configure --prefix=/opt/keepalived

make

make install

4、配置

假设有两台机器A,B

A的keepalived.conf配置:

global_defs {
router_id LVS_DEVEL_TEST
}
vrrp_script Monitor_Haroxy {
# script "/home/plat/ott_release/script/haproxy_keepalived.sh"
script "killall -0 haproxy"
interval
weight -
}
vrrp_instance VI_HA {
state BACKUP
interface em1 #网卡接口
virtual_router_id
priority
advert_int
nopreempt
authentication {
auth_type PASS
auth_pass
}
#notify_master /home/plat/ ott_release/script/redis_master.sh
#notify_backup/home/plat/ott_release/script/redis_backup.sh
track_script {
Monitor_Haproxy
}
virtual_ipaddress {
10.0.63.237
}
}

B的keepalived.conf配置:

global_defs {
router_id LVS_DEVEL_TEST
}
vrrp_script Monitor_Haroxy {
script "/home/plat/ott_release/script/haproxy_keepalived.sh"
#script "killall -0 haproxy"
interval
weight -
}
vrrp_instance VI_HA {
state BACKUP
interface br-ex
virtual_router_id
priority
advert_int
nopreempt
authentication {
auth_type PASS
auth_pass
}
notify_master /home/plat/ ott_release/script/redis_master.sh
notify_backup/home/plat/ott_release/script/redis_backup.sh
track_script {
Monitor_Haproxy
}
virtual_ipaddress {
10.0.63.237
}
}

以下配置,A、B是相同的

/home/plat/ott_release/script/haproxy_keepalived.sh示例如下:

#!/bin/bash

count = `ps aux | grep -v grep | grep haproxy | wc -l`

if [ $count > 0 ]; then

exit 0

else

exit 1

fi

注:

keepalived会定时执行脚本并对脚本执行的结果进行分析,动态调整vrrp_instance的优先级。

  • 如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加

  • 如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少

  • 其他情况,维持原本配置的优先级,即配置文件中priority对应的值。

说明几点:

1)优先级不会不断的提高或者降低

2)可以编写多个检测脚本并为每个检测脚本设置不同的weight

3)不管提高优先级还是降低优先级,最终优先级的范围是在[1,254],不会出现优先级小于等于0或者优先级大于等于255的情况

说明一种情况,以上配置的两台机器,启动后A
weight高,所以变成Master,如果Master检测到进程出问题,将自身weight减少20即60,小于备机,所以备机切换为Master;当原Master即A恢复,由于其weight为80,会抢占B成为Master。

启动时,在安装目录下运行:./sbin/keepalived
-f conf/keepalived.conf -c run/checker.pid -r run/vrrp.pid -p
run/pid.pid

运行两个keepalived进程时,例如:./sbin/keepalived
-f conf/keepalived1.conf -c run/checker1.pid -r run/vrrp1.pid -p
run/pid1.pid

Keepalived使用小结的更多相关文章

  1. Keepalived基础知识-运维小结

    keepalived介绍keepalived观察其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,它集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防 ...

  2. keepalived.conf 配置文件小结

    vrrp_script vs_mysql_82 {     script "/etc/keepalived/checkMySQL.py -h 192.168.11.82 -P 3306&qu ...

  3. keepalived小结

    keepalived 启动流程: 启动三个进程(主进程.healthcheck 进程.vrrp进程)之后,先进入backup状态,运行一次vrrp_script成功后发现没有主,这时候会进入maste ...

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

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

  5. docker nginx1.7.6+keepalived实现双机热备

    0.前提条件 环境两台ubuntu版本14.04 64位系统(并获取root权限) 假设两台服务器ip为:172.16.34.214(master),172.16.34.215(backup),kee ...

  6. Keepalived高可用集群搭建(转载linuxIDC)

    1.Keepalived简介 Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障.使用多台节点安装keepalived.其 他的节点用来提供真实的服务,同 ...

  7. 借助LVS+Keepalived实现负载均衡(转)

    原文:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务 ...

  8. 架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层

    1.概述 前两遍文章中,我们一直在说后文要介绍Nginx + Keepalived的搭建方式.这篇文章开始,我们就来兑现前文的承诺,后续的两篇文章我们将介绍Nginx + Keepalived和 LV ...

  9. LVS + keepalived + tomcat负载均衡及高可用实现(初级)

    1.首先检测Linux服务器是否支持ipvs 执行如下命令:modprobe -l|grep ipvs 输出: kernel/net/netfilter/ipvs/ip_vs.ko kernel/ne ...

随机推荐

  1. BoyerMoore(BM)算法--C#

    因项目需要使用字符串查询算法,在网上搜搜了半天,没有找到C#版的. 索性根据BM机制,用C#实现了一遍.现在贴出了,以备忘记. /// <summary> /// BM算法 /// < ...

  2. position值详情

    1.absolute属性: 英文直译成汉语的解释有:绝对,独立的.显然在做为css中position属性的值时“绝对”这个意思更恰当一些.他的作用是:生成绝对定位的元素,相对于static 定位以外的 ...

  3. 假如数组接收到一个null,那么应该怎么循环输出。百度结果,都需要提前判断。否则出现空指针异常。。我还是想在数组中实现保存和输出null。

    假如数组接收到一个null,那么应该怎么循环输出.因为foreach与obj.length都会报错.null不是对象,foreach中不能赋值? sp页面forEach一个存放对象的集合,怎么判断其中 ...

  4. Siemens

    Sr.EE-Complete the electronics and mechanical designs from design concepts to mass production for RU ...

  5. 记录一个因sqlmap导致的错误

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMap PUBLIC "- ...

  6. Skynet服务器框架(八) 任务和消息调度机制

    引言: 在我看来,消息和任务调度应该是skynet的核心,整个skynet框架的核心其实就是一个消息管理系统.在skynet中可以把每个功能都当做一个服务,整个skynet工程在执行过程中会创建很多个 ...

  7. Arcgis for Js实现graphiclayer的空间查询(续)

    上文中,实现了简单的针对graphiclayer的空间查询工作,在本节,将更加详细的介绍针对graphiclayer的空间查询.首先,空间查询的方式:提供多种类型的空间查询,包括点周边.线周边.面内等 ...

  8. PhotoShop脚本指南

    Photoshop脚本语言 Photoshop支持三种脚本语言:AppleScript,VBScript,JavaScript.其中AppleScript为苹果系统,VBScript为Windows操 ...

  9. 使用 nvm 管理多版本 node

    首先,使用下面的命令来安装 nvm $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | b ...

  10. c++11新特性之宽窄字符转换

    C++11增加了unicode字面量的支持,可以通过L来定义宽字符:str::wstring str = L"中国人": 将宽字符转换为窄字符串需要用到codecvt库中的std: ...