heartbeat3.x部署安装
使用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部署安装的更多相关文章
- Android 开发环境在 Windows7 下的部署安装
Android SDK Android SDK 为 Android 应用的开发.测试和调试提了必要的API库和开发工具. ADT Bundle 下载 如果你是一个android 开发新手,推荐你下载使 ...
- Windows系统下部署安装一个/多个Tomcat8
首先从http://tomcat.apache.org/上下载Tomcat8.0压缩版的,解压到指定路径后即可. 第一:在Windows系统中安装部署单个Tomcat 对于这种情况, ...
- Zabbix监控windows部署安装
Zabbix agent 在windows上安装部署 1. 下载与解压 地址: http://www.zabbix.com/downloads/2.4.0/zabbix_agents_2.4.0.w ...
- Hadoop 2.2.0部署安装(笔记,单机安装)
SSH无密安装与配置 具体配置步骤: ◎ 在root根目录下创建.ssh目录 (必须root用户登录) cd /root & mkdir .ssh chmod 700 .ssh & c ...
- _00024 尼娜抹微笑伊拉克_云计算ClouderaManager以及CHD5.1.0群集部署安装文档V1.0
笔者博文:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...
- Ubuntu16.04 部署安装Docker容器 & 注意事项
一.部署安装Docker容器 1.1 Ubuntu下安装 crul sudo apt install curl curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.多 ...
- Docker+Redis镜像的原理以及部署安装(超详解附截图)
文章来源:公众号-智能化IT系统. 一. DOCKER介绍 Docker简介 (1)Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从Apache2.0协议开源. (2)Docker 可 ...
- 单机多实例mysq 8.0l部署安装
单机多实例mysql部署安装 目的需求 在单台虚拟机部署部署多实例mysql,用于配置mysql replication,MHA等. 思路 多实例安装mysql可以参考<源编译MySQL8.0的 ...
- Hadoop教程(五)Hadoop分布式集群部署安装
Hadoop教程(五)Hadoop分布式集群部署安装 1 Hadoop分布式集群部署安装 在hadoop2.0中通常由两个NameNode组成,一个处于active状态,还有一个处于standby状态 ...
随机推荐
- 5.4 heapq--堆队列算法
本模块实现了堆队列算法,也叫作优先级队列算法.堆队列是一棵二叉树.而且拥有这样特点,它的父节点的值小于等于不论什么它的子节点的值,假设採用数组array实现,能够把它们的关系表示为:heap[k] & ...
- odoo生产物流
odoo生产从raw materials location 自动消耗物料,产成品进入到finish productslocation. 而odoo自动产生的MO[manufacture Order], ...
- Solaris作业管理
凌晨2点重启数据库 每周晚23点后都需要做备份工作 所有这些都需要作业.这时候数据库压力没那么大. 作业就像是闹钟,可以有一次性计划任务,也有重复性计划任务. 计划任务管理 ----at At [-m ...
- 重温.NET下Assembly的加载过程 ASP.NET Core Web API下事件驱动型架构的实现(三):基于RabbitMQ的事件总线
重温.NET下Assembly的加载过程 最近在工作中牵涉到了.NET下的一个古老的问题:Assembly的加载过程.虽然网上有很多文章介绍这部分内容,很多文章也是很久以前就已经出现了,但阅读之后 ...
- VS中 build,rebuild,clean
一般来说Rebuild=99%*(Clean+Build),效果在非常小的可能性下会不同,一般可以忽略. Rebuild是对Solution下的所有项目,逐个进行 Clean+Build.不论文件更改 ...
- 超越MySQL:三个流行MySQL分支的对比(转)
导读:尽管MySQL是最受欢迎的程序之一,但是许多开发人员认为有必要将其拆分成其他项目,并且每个分支项目都有自己的专长.该 需求以及Oracle对核心产品增长缓慢的担忧,导致出现了许多开发人员感兴趣的 ...
- MVC3-表单
[.NET Core已取消]Html.BeginForm() 该方法用于构建一个From表单的开始,他的构造方法为:Html.BeginForm("ActionName", &qu ...
- maven的坑: Exception in thread "pool-1-thread-1" java.lang.NoClassDefFoundError: org/eclipse/aether/spi/connector/Transfer$State
搭建ReboletricSample的环境: 搭建完成,执行的时候报错: Exception in thread "main" java.lang.NoClassDefFoundE ...
- 关于erlang解析json数据
JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读.json的数据格式是文本文档格式的一种.在erlang中可以参考mochiwe ...
- 功能强大的Xcode辅助工具Faux Pas:帮你找到各种隐形的bug
本文转载至 http://www.cocoachina.com/industry/20140804/9307.html Faux Pas(Beta版下载地址)是一个Xcode辅助工具,用以检查Xcod ...