一、使用背景

项目须要实现主备双热自己主动切换的功能,保证系统7*24小时不间断执行。现已有两台双网卡的IBM的server,为了不再添加成本採购独立外部存储设备和双机热备软件。採用了linux下开源的HA软件进行部署,即heartbeat+monit方式。

1、使用heartbeat来进行心跳监測和资源接管。心跳监測能够通过网络链路和串口进行,此处使用网络链路,并且支持 冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,假设在指定的时间内未收到对方发送的报文。那么就觉得对方失效。这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。

2、使用monit相应用服务进程监控、重新启动。Monit是一款功能很丰富的进程、文件、文件夹和设备的监測软件,用于Unix平台。 它能够自己主动修复那些已经停止运作的程序,特使适合处理那些因为多种原因导致的软件错误。

3、改进点:因为没有共享存储设备来存储数据和应用服务,须要採用DRBD的方式进行两台server间的数据同步。也就是数据镜像。因时间紧迫没有时间研究DRBD这样的镜像技术,兴许考虑加进来。

4、项目的应用程序分三个独立的进程:数据採集进程、数据处理进程、数据通信服务进程,将这三个进程做成linux的服务方式进行管理。即:servicemyprocess start这样的方式

3、系统拓扑图及表述(如上图)

两个server中的eth0网卡用来外部通信,eth1网卡用来心跳检測。

OS:ubunt12.04

VIP 虚拟IP:192.168.134

主节点:

Eth0:IP(外网):192.168.1.132

Eth1:IP(内网):192.168.2.2

备节点:

Eth0:IP(外网):192.168.1.133

Eth1:IP(内网):192.168.2.3

二、安装monit

1、由于heartbeat仅仅负责心跳和两台server通信的功能。可是在自己的服务进程挂掉时,不能实现自己主动重新启动。由于对monit比較熟悉。便採用了monit来监控服务进程,和heartbeat结合使用。

事实上也能够採用其它方式。如mon等。

Sudo apt-getinstall monit

2、编辑monit启动脚本,位置:/etc/init.d/monit,加入自己的进程(红色字体部分)其作用是在heartbeat在进行切换的时候,能够停止当前server上的应用服务,待切换完毕后启动备用server上的应用服务程序(由于没有做软镜像也没有共享存储,应用服务和数据在两台server上各有一份。在我的使用场景中能够这样做)

………

stop)

log_daemon_msg "Stopping $DESC""$NAME"

if start-stop-daemon --retry TERM/5/KILL/5--oknodo --stop --quiet \

--pidfile $PID --exec$DAEMON

then

log_end_msg 0

else

log_end_msg 1

fi

#################################

#此处加入要监控的服务进程

service DataCollection stop

service DataProcss stop

service RsServer stop

################################

;;

reload)

…………….

3、编辑/etc/monit/monitrc配置文件,网上这方面的资料比較多能够參考,在当中增加自己须要监控的进程,最后将编辑好的monitrc文件权限改动为700

………………

#须要监控的进程配置

#########Start checkDataCollection##########################

check process DataCollection with pidfile/tmp/kd_data_collection_filename.pid

start program ="/etc/init.d/DataCollection start"

stop program ="/etc/init.d/DataCollection stop"

#########End checkDataCollection##########################

#########Start checkDataProcss##########################

check process DataProcss with pidfile/tmp/kd_data_process_filename.pid

start program ="/etc/init.d/DataProcss start"

stop program ="/etc/init.d/DataProcss stop"

#########End checkDataProcss##########################

#########Start checkRsServer##########################

check process RsServer with pidfile/tmp/kd_data_server_filename.pid

start program = "/etc/init.d/RsServerstart"

stop program = "/etc/init.d/RsServerstop"

#########End checkRsServer##########################

################Startcheck heartbeat######################

check process heartbeat with pidfile/var/run/heartbeat.pid

start program ="/etc/init.d/heartbeat start"

stop program = "/etc/init.d/heartbeatstop"

################Endcheck heartbeat##############################

###############################################################################

## Includes

###############################################################################

##

## It is possibleto include additional configuration parts from other files or

## directories.

#

include /etc/monit/conf.d/*

#.

………………

安装好的monit通过web方法管理进程截图:

三、安装heartbeat

Sudo apt-get install heartbeat

编辑以下三个文件:

ha.cf                         基本的配置文件,大部分配置信息在该文件里

haresources     资源配置文件

authkeys        权限配置】

1、  ha.cf配置

logfile       /var/log/ha-log

logfacility local0

keepalive 2

deadtime 30

warntime 10

initdead 120

udpport     694

bcast         eth1           #Linux

auto_failback on

node        ubuntuA

node        ubuntuB

ping 192.168.1.1

2、  haresources

…………

ubuntuA192.168.1.134 monit

#node-nameresource1 resource2 ... resourceN

…………

3、  authkeys

auth 1

1 crc

#2 sha1 HI!

#3 md5 Hello!

将上面的三个配置文件分别复制到主、备server上的/etc/ha.d文件夹下,并将authkeys权限改为600

在主、备服server上分别启动heartbeat。能够在通过tail  -f /var/log/ha-log查看日志,进行測试

使用heartbeat+monit实现主备双热备份系统的更多相关文章

  1. Ubuntu14.04双网卡主备配置

    近日有个需求,交换机有两台,做了堆叠,服务器双网卡,每个分别连到一台交换机上.这样就需要将服务器的网卡做成主备模式,以增加安全性,使得当其中一个交换机不通的时候网卡能够自动切换. 整体配置不难,网上也 ...

  2. Ubuntu16.04双网卡主备配置

    前几日写了一篇Ubuntu14.04双网卡主备配置,没成想变化总是这么快,今日安装某软件,提示最匹配的ubuntu版本是16.04,作为一个码农能有什么办法,只能不断去适应变化.拥抱变化. 首先16. ...

  3. haproxy+keepalived主备与双主模式配置

    Haproxy+Keepalived主备模式 主备节点设置 主备节点上各安装配置haproxy,配置内容且要相同 global log 127.0.0.1 local2 chroot /var/lib ...

  4. centos7 搭建双网卡bond1(主备模式)实例

    前景须知: 在redhat6 中网卡叫bond,在redhat7及centos7中改名team,此处只记录centos7中双网卡主备搭建过程. 应用情景:实现网络的高可用,防止一条网线或交换机故障影响 ...

  5. nginx+keepalived 简单实现主备和双主模式

    准备nginx和keepalived 安装nginx(自行安装) yum install nginx 安装keepalived(安装包安装总报错,yum安装能好一点) yum install keep ...

  6. 使用keepalived使用主备热备份功能

    图: 配置文件: 主服务器的配置如下: global_defs { router_id NodeA}vrrp_instance VI_1 { state MASTER #设置为主服务器 interfa ...

  7. 实践:配置keepalived实现主备热备份功能

    图: 配置文件: 主服务器的配置如下: global_defs { router_id NodeA}vrrp_instance VI_1 { state MASTER #设置为主服务器 interfa ...

  8. keepAlived主备及双主

    nginx用默认配置即可 1.主备配置 1.主keepAlived配置 vrrp_instance VI_1 { state MASTER #主备区分 interface eth0 virtual_r ...

  9. HUAWEI防火墙双出口根据链路优先级主备备份

    组网图形 组网需求 通过配置根据链路优先级主备备份,FW可以在主接口链路故障时,使用备份接口链路转发流量,提高传输的可靠性. 如图1所示,企业从ISP1租用2条链路,带宽均为50M,从ISP2租用1条 ...

随机推荐

  1. 6-Java-C(打印大X)

    题目描述: 小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度. 为了便于比对空格,所有的空白位置都以句点符来代替. 要求输入两个整数m n,表示笔的宽度,X的高度.用空格分开 ...

  2. 使用GetLogicalDriveStrings获取卷标

    #include <windows.h> #include <stdio.h> #define BUFSIZE 512 int main() { TCHAR szTemp[BU ...

  3. python 双冒号

    Python序列切片地址可以写为[开始:结束:步长],其中的开始和结束可以省略 1.range(n)生成[0,n)区间整数 range(10) [0,1,2,3,4,5,6,7,8,9] 2.开始st ...

  4. vue 添加 fastclick的支持

    fastclick:处理移动端click事件300毫秒延迟 1.兼容性iOS 3及更高版本的移动SafariiOS 5及更高版本的ChromeAndroid上的Chrome(ICS)Opera Mob ...

  5. 第1节 MapReduce入门:11、mapreduce程序的入门

    1.1.理解MapReduce思想 MapReduce思想在生活中处处可见.或多或少都曾接触过这种思想.MapReduce的思想核心是“分而治之”,适用于大量复杂的任务处理场景(大规模数据处理场景). ...

  6. “完美”解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来。

    最近做,微信点餐小程序,遇到添加商品时出现抛物动画,参考借鉴了这位大神的方法 https://www.cnblogs.com/greengage/p/7815842.html 但出现了一个问题,连续点 ...

  7. windows mac配置host方法

    配置host方法如下: 1.windows 系统配置host (1)打开电脑的系统盘(一般默认为C盘):C盘 -> Windows -> System32 -> drives -&g ...

  8. BZOJ3545 Peaks 离线处理+线段树合并

    题意: 在Bytemountains有N座山峰,每座山峰有他的高度h_i.有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走,现在有Q组询问,每组询问询问从点v开始只经 ...

  9. 零基础入门学习Python(5)--闲聊之Python的数据类型

    前言 本次主要闲聊一下python的一些数值类型,整型(int),浮点型(float),布尔类型(bool),还有e记法(科学计数法),也是属于浮点型. 数值类型介绍 整型 整型就是我们平时所说的整数 ...

  10. VM搭建hadoop分布式集群

    1.  安装VMware Workstation Pro 2.安装Ubuntu-16.04 3.以下全程使用sudo –s 切换root权限 4.更新deb软件包列表:apt-get update 5 ...