使用Heartbeat构建Linux双机热备系统

本文档版本号: V1.0

版 本 历 史

版本号

更新时间

说 明

创建者

V1.0

2013-3-23

修改版

金桥

1 部署环境

OS: Red Hat Enterprise Linux release 6.0 Beta (Santiago)

kernel:  2.6.32-19.el6.x86_64

Software:

Heartbeat ver3.0.5

Libnet ver1.1.6

2 Heartbeat简介

Heartbeat是Linux-HA的一个开源的Linux High-Availability群集项目, 支持如下应用群集:

  • Web servers
  • LVS director servers
  • Mail servers
  • Database servers
  • Firewalls
  • File servers
  • DNS servers
  • DHCP servers
  • Proxy Caching servers
  • etc.

3 安装Heartbeat

3.1 添加用户和组

# groupadd -g 800 haclient

# useradd -u 800 -g haclient hacluster

# yum install -y cluster-glue wget net-snmp-devel net-snmp OpenIPMI glib2-devel libxml2-devel bzip2-devel libuuid-devel docbook-utils docbook-dtds libtool-ltdl libxslt perl-TimeDate openssl-devel docbook-style-xsl e2fsprogs-devel mailx glib2-devel libtool-ltdl-devel net-snmp-devel bzip2-devel ncurses-devel openssl-devel libtool libxml2-devel gettext bison flex zlib-devel mailx which docbook-style-xsl PyXML shadow-utils opensp autoconf automake libxslt libxslt-devel libgcrypt-devel pkgconfig libgpg-error-devel sgml-common opensp openjade xml-common docbook-style*

# rpm –ivh libtool-ltdl-devel

# yum install -y intltool

# yum install -y pacemaker

3.2 编译和安装libnet库

# su - root

# cp libnet.tar.gz /usr/local

# cd /usr/local

# tar xzvf libnet.tar.gz

# cd libnet

# ./configure

# make

# make install

# cd libnet-1.1.6/src/.libs/

# cp libnet.so.1 /usr/lib64/

3.3编译和安装Reusable-Cluster-Components-glue--glue

# bunzip2 Reusable-Cluster-Components-glue--glue-1.0.9.tar.bz2

# tar xvf Reusable-Cluster-Components-glue--glue-1.0.9.tar

# cd Reusable-Cluster-Components-glue--glue-1.0.9

# ./autogen.sh

# ./configure && make && make install

3.4编译和安装ClusterLabs-resource-agents

# tar xzvf ClusterLabs-resource-agents-v3.9.2-0-ge261943.tar.gz

# cd ClusterLabs-resource-agents-b735277/

# ./autogen.sh

# ./configure && make && make install

metadata-IPv6addr.xml:1: parser error : Document is empty

metadata-IPv6addr.xml:1: parser error : Start tag expected, '<' not found

unable to parse metadata-IPv6addr.xml

gmake[2]: *** [ocf_heartbeat_IPv6addr.xml] Error 6

gmake[2]: Leaving directory `/home/soft/ClusterLabs-resource-agents-b735277/doc'

gmake[1]: *** [all-recursive] Error 1

gmake[1]: Leaving directory `/home/soft/ClusterLabs-resource-agents-b735277'

make: *** [all] Error 2

遇到此错误,将此安装包删除,重新解压,再次执行,

3.4 编译和安装heartbeat HA

# su - root

# bunzip2 Heartbeat-3-0-7e3a82377fa8.tar.bz2

# tar xvf Heartbeat-3-0-7e3a82377fa8.tar

# cd Heartbeat-3-0-7e3a82377fa8

#./bootstrap

# cp /usr/include/heartbeat/*.h /usr/include/

# cp /root/Reusable-Cluster-Components-glue--glue-1.0.9/include/clplumbing/*.h /usr/include/

# cp /root/Reusable-Cluster-Components-glue--glue-1.0.9/include/*.h /usr/include/

#./ConfigureMe configure && make && make install

此处configure应该指定安装路径,默认安装在/usr/etc下

heartbeat 启动后,关闭出现异常,提示问题/etc/init.d/heartbeat: line 253: /ResourceManager: No such file or directory 解决方式: vi /etc/ha.cf/shellfuncs

增加如下信息: : ${HA_NOARCHBIN:=/usr/share/heartbeat}

4 配置Heartbeat service

4.1 配置/etc/hosts

在所有节点上配置:

192.168.209.50    kingserver60

192.168.209.60    kingserver50

4.2 配置/etc/ha.d/ha.cf

以root身份编辑所有节点的配置文件ha.cf:

其中auto_failback on表示主节点在错误状态恢复正常之后,会重新接管HA,

bcast eth0 表示是eth0网卡为ha工作网络

node kingserver60

node kingserver50 分别表示ha的主节点和备节点的主机名

ping 192.168.209.1,可以设置为ping一个可用的节点即可。

serial    /dev/ttyS0 串口如果没有心跳线,就不要配置啊!

debugfile /var/log/ha-debug

logfile /var/log/ha-log

logfacility     local0

keepalive 2

deadtime 30

warntime 10

udpport 694

bcast   eth0

ucast eth0 192.168.209.1

auto_failback on

node    kingserver60

node    kingserver10

ping 192.168.209.41

respawn hacluster /usr/lib64/heartbeat/ipfail

4.3 配置/etc/ha.d/authkeys(所有节点)

auth 1

1 crc

以root身份更改授权文件的权限

# chmod 600 authkeys

4.4 配置/etc/ha.d/haresources

如果是配置heartbeat本身支持的服务,可以直接调用heartbeat的默认脚本,形如:

kingserver60 IPaddr::192.168.209.100/24/eth0 httpd

如果是需要自己定义的程序脚本,需要配置所有节点:

Node1 表示的是主节点主机名,192.168.0.26表示ha的工作IP,haserver.sh表示ha的切换脚本

单网卡SHQZ-PS-WCITY-SV-MMS01 172.17.60.73/255.255.255.128/eth0 harmserver.sh

多网卡

SHQZ-PS-WCITY-CL02 IPaddr::192.168.156.10/255.255.255.0 clserver1.sh

SHQZ-PS-WCITY-CL02 IPaddr::10.11.25.10/255.255.255.224 clserver2.sh

node1 192.168.0.26 haserver.sh

其中haserver.sh为HA在切换时运行的脚本。位于/etc/rc.d/init.d目录下.

如: /etc/rc.d/init.d/haserver.sh

此处一定要记得传参数

date >> /tmp/ha.txt

su - vas -c "vas_server.sh $1"

exit 0

用户vas脚本vas_server.sh如下:

if [ $1 = "start" ]; then

echo "Starting vas..."

/home/vas/vas/bin/billing.sh &

echo "* * * * * /home/vas/vas/bin/billing.sh > /dev/null" > /tmp/cron.vas

echo "0,30 * * * * /home/vas/watch1.1/watch.sh > /dev/null" >> /tmp/cron.vas

crontab /tmp/cron.vas

fi

if [ $1 = "stop" ]; then

echo "Stopping vas..."

crontab -r

echo "Sleep 65 seconds..."

sleep 65

app_name="billing"

ps -ef | grep ${app_name} | awk '{print $2}' | xargs kill -9 >/dev/null 2>&1

app_name="SMSAgent"

ps -ef | grep ${app_name} | awk '{print $2}' | xargs kill -9 >/dev/null 2>&1

fi

exit 0

4.5 启动和停止Heartbeat

  • 启动heartbeat

# /etc/init.d/heartbeat start

  • 停止heartbeat

# /etc/init.d/heartbeat stop

  • Start heartbeat server on all nodes, and add it to /etc/rc.local:

# /etc/init.d/heartbeat start

5 测试Heartbeat

5.1 测试service IP是否成功

可以用ping命令测试service IP(如192.168.0.26)是否成功, 也可以在HA的Active机器上使用ifconfig查看网卡是否绑定多个IP地址。

5.2 服务脚本是否运行正常

可以观察2台机器(1台Active, 1台Standby)是否运行了服务脚本haserver.sh.

5.3 HA切换是否正常

手工模拟网卡坏掉的情况,将处于Active状态的机器的网卡拔掉,然后监测日志/var/log/ha.log,这时service应从Active切换到Standby的机器,然后利用上面的方法测试Service IP和服务脚本是否运行正常。

手工模拟机器当机的情况,将处于Active状态的机器人工关机,依照上面的方法测试HA切换是否正常。

heartbeat3.x部署安装的更多相关文章

  1. Android 开发环境在 Windows7 下的部署安装

    Android SDK Android SDK 为 Android 应用的开发.测试和调试提了必要的API库和开发工具. ADT Bundle 下载 如果你是一个android 开发新手,推荐你下载使 ...

  2. Windows系统下部署安装一个/多个Tomcat8

    首先从http://tomcat.apache.org/上下载Tomcat8.0压缩版的,解压到指定路径后即可.  第一:在Windows系统中安装部署单个Tomcat         对于这种情况, ...

  3. Zabbix监控windows部署安装

    Zabbix agent 在windows上安装部署 1.  下载与解压 地址: http://www.zabbix.com/downloads/2.4.0/zabbix_agents_2.4.0.w ...

  4. Hadoop 2.2.0部署安装(笔记,单机安装)

    SSH无密安装与配置 具体配置步骤: ◎ 在root根目录下创建.ssh目录 (必须root用户登录) cd /root & mkdir .ssh chmod 700 .ssh & c ...

  5. _00024 尼娜抹微笑伊拉克_云计算ClouderaManager以及CHD5.1.0群集部署安装文档V1.0

    笔者博文:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...

  6. Ubuntu16.04 部署安装Docker容器 & 注意事项

    一.部署安装Docker容器 1.1 Ubuntu下安装 crul sudo apt install curl curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.多 ...

  7. Docker+Redis镜像的原理以及部署安装(超详解附截图)

    文章来源:公众号-智能化IT系统. 一. DOCKER介绍 Docker简介 (1)Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从Apache2.0协议开源. (2)Docker 可 ...

  8. 单机多实例mysq 8.0l部署安装

    单机多实例mysql部署安装 目的需求 在单台虚拟机部署部署多实例mysql,用于配置mysql replication,MHA等. 思路 多实例安装mysql可以参考<源编译MySQL8.0的 ...

  9. Hadoop教程(五)Hadoop分布式集群部署安装

    Hadoop教程(五)Hadoop分布式集群部署安装 1 Hadoop分布式集群部署安装 在hadoop2.0中通常由两个NameNode组成,一个处于active状态,还有一个处于standby状态 ...

随机推荐

  1. Flex4_Tree组件2(添加多选框、修改树图标)

    1.新建AS类,用于为Tree生成复选框,及一些选择事件. package com.th.myUtils { import flash.events.Event; import flash.event ...

  2. professional cuda c programming--CUDA库简单介绍

    CUDA Libraries简单介绍   上图是CUDA 库的位置.本文简要介绍cuSPARSE.cuBLAS.cuFFT和cuRAND.之后会介绍OpenACC. cuSPARSE线性代数库,主要针 ...

  3. HTML5开发移动web应用—JQuery Mobile(1)

    JQuery Mobile是一个简单易用的web移动app开发框架.使用它就像使用jQuery一样,引入必要的文件就可以. 最基础的jQuery Mobile文件的结构代码例如以下: <body ...

  4. js json按key值排序

    最近有个需求需要把json按key值进行排序,可是js并没有直接的函数可以对json进行排序的这么办呢? 然后想到了一个间接的方法来实现: 1.将json中的key值取出,存在一个数组中,然后对这个数 ...

  5. BUAAOO P13-P14 UML Interaction

  6. JAR、WAR、EAR(转载)

    转自:http://blog.csdn.net/mashengwang/article/details/6105189 区别:Jar.war.EAR.在文件结构上,三者并没有什么不同,它们都采用zip ...

  7. 简化Android的startActivityForResult调用

    一个是解决在onActivityResult 中判断requestCode的问题,第二个是让调用代码的地方就知道我是如何处理对方activity 的返回的. 首先我们有一个ResultActivity ...

  8. 【推荐】初级.NET程序员,你必须知道的EF知识和经验

    阅读目录   推荐MiniProfiler插件 数据准备 foreach循环的陷进 AutoMapper工具 联表查询统计 性能提升之AsNonUnicode 性能提升之AsNoTracking 多字 ...

  9. hdu 3932 Groundhog Build Home

    Groundhog Build Home Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Ot ...

  10. EasyPusher手机直播图像旋转90度后画面重复的问题

    本文转自:http://blog.csdn.net/holo_easydarwin/article/details/51147379 最初在做EasyPusher手机直播的时候遇到过一个问题:手机竖屏 ...