当前位置: 首页 > news >正文

linux heartbeat rpm,Heartbeat 3.0.3 介绍及rpm

我已经不是第一次介绍Heatbeat,通过yum可轻松安装Heartbeat 2.x,网上的资料()

都已很详细的介绍了Heartbeat 2.x 的部署方式。而自2月Heartbeat 3.0.2,作为首个3.x Final Release

版本发布后,官方网站已改版,并建议从2.x更新到3.0.2,导致很多老的配置文档、说明等都很难找到链接。此外,触发我考虑使用Heartbeat

3,也正是前几天用Heartbeat 2.1.3+DRBD+Oracle配置时遇到大量的Bug,可见。虽然最终解决问题,但缺少官方的支持,今后的维护可能会遇到困难。为长远考虑,使用Heartbeat 3是势在必行的。

亏,Heartbeat 3对比Heartbeat 2.x实际区别并不大,甚至可把Heartbeat 3理解为Heartbeat 2.x

按模块拆分后的版本,配置方式类同。所以,实际部署时,遇到的最大困难是安装问题。官方资料提供的都是源码,我不喜欢以源码方式来在生成系统上部署软件,

这会给后续的维护带来很大的问题。通过努力,我终于成功编译一套heartbeat 3.0.3,带GUI管理方式的rpm。

一、关于Heartbeat 3

1、版本问题

Heartbeat 官方最后一个STABLE release 2.x 版本是2.1.4。

虽然Fedora、OpenSUSE 等项目曾提供2.99、3.0等rpm版本,但实际上版本都是基于Heartbeat 3.0和3.0.1源码编译的。目前网上大部分资料中介绍的Heartbeat 3使用的也是该版本。

Heartbeat 3 官方正式发布的首个版本是3.0.2,这也是为了区别上面提到的2.99。此外,由于3.0.2 的正式发布,原由OpenSUSE提供的,也已被删除。

更详细信息,请见:。

这些原理Heartbeat 3 与 2.x 基本是相同的,有疑问,可参考:。

2、组成

与2.x

的最大差别在于,3 按模块把的原来2.x 拆分为多个子项目,并且提供了一个cluster-glue的组件,专用于Local Resource

Manager 的管理。即heartbeat + cluster-glue + resouce-agent 三部分:

引用

(1)hearbeat本身是整个集群的基础(cluster messaging layer),负责维护集群各节点的信息以及它们之前通信;

(2)cluster-glue相当于一个中间层,可以将heartbeat和crm(pacemaker)联系起来,主要包含2个部分,LRM和STONITH;

(3)resource-agent,就是各种的资源的ocf脚本,这些脚本将被LRM调用从而实现各种资源启动、停止、监控等等。通过这三部分已可构成一套完整的HA集群系统。但是,这还不够,因为没有管理工具。

而原GUI 工具Cluster Resource Manager (简称CRM)也被拆分由另一独立项目负责。Pacemaker 提供了多种用户接口:

引用

(1)基于字符的管理方式;

(2)一个使用Ajax Web配置方式的窗口;

(3)hb_gui ,即图形配置工具,这也是原来2.x的默认GUI 配置工具;

(4),一个基于Java的配置管理工具。更详细介绍,请见:。

以上几种用户管理接口,择其一即可。需要说明的是,Pacemaker 支持的中,除了Heartbeat,还支持OpenAIS。不过,OpenAIS 的内容已超出本文的范围,有待以后再做介绍。

二、关于rpm包

1、Heartbeat 3 的rpm

Heartbeat 3 官网上有提供Heartbeat 3.0.3、Cluster Glue 1.0.5、Resource Agents 1.0.3 的源码。下载回来编译安装即可。

若你像我一样,不喜欢用源码来部署生产系统,那你可以用源码包中的spec来编译。编译时,注意创建对应的源码包中的目录,spec中的变量设定等,但总体问题不大。

更好的是,在Pacemaker 的一文中,提供了 的安装包。若您的系统是Asianux 、RHEL、CentOS等,即可通过下面的方式来安装:

rpm -Uvh

wget -O /etc/yum.repos.d/pacemaker.repo

yum install -y pacemaker corosync heartbeat或者,直接点击下面的链接获取对应的rpm,或源码src.rpm:

通过以上安装过程,系统已提供搭建Heartbeat 3的环境,包括crm 命令行配置和管理工具(由pacemaker 提供)。但是,不包括hb_gui 图形配置工具。

※ 注意,我这里没有安装ldirectord,因为我没有用到LVS,若您需要监控LVS,可自行安装。

2、Pacemaker Python GUI

正如前文提到的,这是Pacemaker 提供的一个GUI 方式的配置管理工具,也就是heartbeat 2.x中的hb_gui 。

官方网站是:

在某些Heartbeat 版本,例如Fedora 自行提供的2.99 中,称为:pacemaker-pygui-1.4,而目前最新版本是2.0,已改名为:pacemaker-mgmt-2.0.0 。

编译时,可能会遇到一些问题:

a、AC_PROG_INTLTOOL 报错

例如:

引用

# tar xvjf Pacemaker-Python-GUI-.tar.bz2

# ./bootstrap

Autoconf package autoconf found.

......

./configure: line 2064: syntax error near unexpected token `0.35.2'

./configure: line 2064: `AC_PROG_INTLTOOL(0.35.2)'原因是,缺少一个依赖包intltool-0.35.0-2。安装后,运行:

# autoreconf -ifs

# ./bootstrap请见:

b、delete_attr 错误

例如:

引用

....

mgmt_crm.c: In function 'on_cleanup_rsc':

mgmt_crm.c:1307: warning: passing argument 9 of 'delete_attr' makes integer from pointer without a cast

mgmt_crm.c:1307: error: too many arguments to function 'delete_attr'

mgmt_crm.c:1316: warning: passing argument 9 of 'update_attr' makes integer from pointer without a cast

mgmt_crm.c:1316: error: too many arguments to function 'update_attr'

gmake[2]: *** [libhbmgmt_la-mgmt_crm.lo] Error 1

gmake[2]: Leaving directory `/home/rc6/Pacemaker-Python-GUI-0f1490eaa8d8/mgmt/daemon'

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

gmake[1]: Leaving directory `/home/rc6/Pacemaker-Python-GUI-0f1490eaa8d8/mgmt'

make: *** [all-recursive] Error 1该错误的原因是pacemaker 1.1中做了一些改变,而最新的pacemaker-mgmt 2.0也据此做了调整。但是,如果当前使用的pacemaker 还是1.0,那就会产生错误。

引用

# rpm -qa|grep pacemaker

pacemaker-libs-devel-1.0.9.1-1.AXS3

pacemaker-1.0.9.1-1.AXS3

pacemaker-libs-1.0.9.1-1.AXS3解决方法是,参考,反向修改源码中的/mgmt/daemon/mgmt_crm.c 文件,以符合pacemaker 1.0 :

引用

1.7 -    delete_attr(cib_conn, cib_sync_call, XML_CIB_TAG_STATUS, dest_node, NULL,

1.8 +    delete_attr(cib_conn, cib_sync_call, XML_CIB_TAG_STATUS, dest_node, NULL, NULL,

......

1.16 -        XML_CIB_TAG_CRMCONFIG, NULL, NULL, NULL, "last-lrm-refresh", now_s, FALSE);

1.17 +        XML_CIB_TAG_CRMCONFIG, NULL, NULL, NULL, NULL, "last-lrm-refresh", now_s, FALSE);

1.18    crm_free(now_s);另一个方法是,使用老版本的pacemaker-mgmt 2.0.0包:。

详细请见:

c、rpm 包

当然,最后我还是生成了几个rpm包:

引用

pacemaker-mgmt-2.0.0-1.1.x86_64.rpm

pacemaker-mgmt-client-2.0.0-1.1.x86_64.rpm

pacemaker-mgmt-devel-2.0.0-1.1.x86_64.rpm可从附录中获得。

三、附录

说了这么多,我只是您希望明白Heartbeat 3 的构成,至于安装用的rpm,我已经为了准备好了:

1af5e698f681dd99050f4e70c92d8f2e.gif下载文件该版本适用于红旗 Asianux 3.x、RHEL 5.x 、CentOS 5.x 的x86_64平台环境。

下载后,解压到某一目录,例如:/root/rpms,然后,在/etc/yum.repos.d中创建一个文件:

引用

cat heartbeat.repo

[heartbeat]

name=Heartbeat 3

baseurl=file:///root/rpms

enabled=1接着,先卸载旧的包:

# rpm -e `rpm -qa|grep heartbeat`

# rpm -e `rpm -qa|grep openais`最后,用下面的命令安装即可:

# yum install pacemaker corosync heartbeat ldirectord pacemaker-mgmt pacemaker-mgmt-client

相关文章:

  • linux rsh用法,Linux中rsh远程shell命令的使用技巧解析
  • C语言字符输入回车时停止,解决C语言输入单个字符屏蔽回车符的问题
  • 二分法查找字符串 c语言,c语言二分法如何实现查找数组元素
  • c++语言常量,C++常量(constant)
  • 64平台的c语言int类型值比32平台大,C语言数据类型32位和64位不同
  • c语言输入10个数从小,C语言中,从键盘输入10个数,从小到大排列输出,怎
  • 得到 android组件,android 获取HOME组件的Activity信息
  • android studio视频路径,Android studio相关设置及实现存在于工程目录中的视频播放...
  • android wear 1.6,玩的就是情怀 外国网友将CS 1.6移植到了Android Wear上
  • ability鸿蒙,Day8 鸿蒙,一个Ability全家桶究竟包括了什么(一)
  • Android网页文字进度,Android webview 进度显示
  • android仿qq侧滑删除,Android仿QQ微信侧滑删除效果
  • html 重置样式表,CSS 浏览器样式重置终结版
  • 压缩html源文件,js代码压缩还原详解
  • html5随机选取文本框,HTML5交互式电子邮件(带输入框和选择框)
  • 2017-09-12 前端日报
  • extjs4学习之配置
  • Node + FFmpeg 实现Canvas动画导出视频
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • python docx文档转html页面
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • SQLServer之索引简介
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • underscore源码剖析之整体架构
  • Zsh 开发指南(第十四篇 文件读写)
  • 爱情 北京女病人
  • 不上全站https的网站你们就等着被恶心死吧
  • 关于Java中分层中遇到的一些问题
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 开发基于以太坊智能合约的DApp
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 浅谈Golang中select的用法
  • 微服务核心架构梳理
  • 我是如何设计 Upload 上传组件的
  • 译自由幺半群
  • No resource identifier found for attribute,RxJava之zip操作符
  • PostgreSQL之连接数修改
  • ​linux启动进程的方式
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #pragma 指令
  • #考研#计算机文化知识1(局域网及网络互联)
  • (2)MFC+openGL单文档框架glFrame
  • (26)4.7 字符函数和字符串函数
  • (bean配置类的注解开发)学习Spring的第十三天
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (一一四)第九章编程练习
  • (转)3D模板阴影原理
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET Framework杂记
  • .net php 通信,flash与asp/php/asp.net通信的方法