设为首页 收藏本站
查看: 2097|回复: 0

[经验分享] Heartbeat 3.0.3 介绍及rpm

[复制链接]

尚未签到

发表于 2015-9-10 11:50:18 | 显示全部楼层 |阅读模式
  此为转载文章。因为从源码编译虽然通过,但始终缺少shellfunc文件,所以查了一下从rpm包安装,找到了这篇文章。结合这个链接:
  http://www.howtoforge.com/high-availability-load-balancer-haproxy-heartbeat-fedora8
  配置基本搞定了。其中一个问题是他的主从机是反的!明天再试!
  我已经不是第一次介绍Heatbeat,通过yum可轻松安装Heartbeat 2.x,网上的资料(包括我以前的多篇日志)都已很详细的介绍了Heartbeat 2.x 的部署方式。而自2月Heartbeat 3.0.2,作为首个3.x Final Release版本发布后,官方网站已改版,并建议从2.x更新到3.0.2,导致很多老的配置文档、说明等都很难找到链接。此外,触发我考虑使用Heartbeat3,也正是前几天用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提供的下载地址,也已被删除。
更详细信息,请见:Announce: Final Release of Heartbeat 3.0.2, Cluster-Glue 1.0.2, and Resource-Agents 1.0.2。
这些原理Heartbeat 3 与 2.x 基本是相同的,有疑问,可参考:[原]heartbeat 2.x基础架构。
  2、组成
Heartbeat 3与2.x的最大差别在于,3 按模块把的原来2.x 拆分为多个子项目,并且提供了一个cluster-glue的组件,专用于Local ResourceManager 的管理。即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 负责。Pacemaker 提供了多种用户接口:


引用
(1)crm shell 基于字符的管理方式;
(2)一个使用Ajax Web配置方式的web konsole 窗口;
(3)hb_gui ,即heartbeat gui 图形配置工具,这也是原来2.x的默认GUI 配置工具;
(4)DRBD-MC,一个基于Java的配置管理工具。  
更详细介绍,请见:这里。
以上几种用户管理接口,择其一即可。需要说明的是,Pacemaker 支持的Cluster Stacks中,除了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 的Install一文中,提供了EPEL 的安装包。若您的系统是Asianux 、RHEL、CentOS等,即可通过下面的方式来安装:
  

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm
wget -O /etc/yum.repos.d/pacemaker.repo http://clusterlabs.org/rpm/epel-5/clusterlabs.repo
yum install -y pacemaker corosync heartbeat  
或者,直接点击下面的链接获取对应的rpm,或源码src.rpm:
http://www.clusterlabs.org/rpm/epel-5/
http://www.clusterlabs.org/rpm/epel-5/src/
通过以上安装过程,系统已提供搭建Heartbeat 3的环境,包括crm 命令行配置和管理工具(由pacemaker 提供)。但是,不包括hb_gui 图形配置工具。
※ 注意,我这里没有安装ldirectord,因为我没有用到LVS,若您需要监控LVS,可自行安装。
  
  2、Pacemaker Python GUI
正如前文提到的,这是Pacemaker 提供的一个GUI 方式的配置管理工具,也就是heartbeat 2.x中的hb_gui 。
官方网站是:http://hg.clusterlabs.org/pacemaker/pygui
在某些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  
请见:
Error on compiling Pacemaker-GUI
[RPM] pacemaker-mgmt for corosync 1.1.2 and pacemaker 1.0.6
  
  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包:点击下载。
详细请见:
Erro compiling Pacemaker GUI client
  
  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,我已经为了准备好了:


DSC0000.gif 下载文件
http://www.linuxfly.org/attachment.php?fid=824
文件包括:
cluster-glue-1.0.5-1.AXS3.x86_64.rpm             ldirectord-1.0.3-1.AXS3.x86_64.rpm          pacemaker-1.0.9.1-1.AXS3.x86_64.rpm
cluster-glue-libs-1.0.5-1.AXS3.x86_64.rpm        libesmtp-1.0.4-5.AXS3.x86_64.rpm            pacemaker-libs-1.0.9.1-1.AXS3.x86_64.rpm
cluster-glue-libs-devel-1.0.5-1.AXS3.x86_64.rpm  libesmtp-devel-1.0.4-5.AXS3.x86_64.rpm      pacemaker-libs-devel-1.0.9.1-1.AXS3.x86_64.rpm
corosync-1.2.5-1.3.AXS3.x86_64.rpm               libhbaapi-2.2-4AXS3.x86_64.rpm              pacemaker-mgmt-2.0.0-1.1.x86_64.rpm
corosynclib-1.2.5-1.3.AXS3.x86_64.rpm            libhbaapi-devel-2.2-4AXS3.x86_64.rpm        pacemaker-mgmt-client-2.0.0-1.1.x86_64.rpm
corosynclib-devel-1.2.5-1.3.AXS3.x86_64.rpm      libnet-1.1.2.1-5AXS3.x86_64.rpm             pacemaker-mgmt-devel-2.0.0-1.1.x86_64.rpm
heartbeat-3.0.3-1.AXS3.x86_64.rpm                libnet-devel-1.1.2.1-5AXS3.x86_64.rpm       perl-MailTools-1.77-1.AXS3.noarch.rpm
heartbeat-devel-3.0.3-1.AXS3.x86_64.rpm          openais-1.1.3-1.1.AXS3.x86_64.rpm           perl-TimeDate-1.16-5.AXS3.noarch.rpm
heartbeat-libs-3.0.3-1.AXS3.x86_64.rpm           openaislib-1.1.3-1.1.AXS3.x86_64.rpm        repodata
intltool-0.35.0-2.x86_64.rpm                     openaislib-devel-1.1.3-1.1.AXS3.x86_64.rpm  resource-agents-1.0.3-1.AXS3.x86_64.rpm
其中repodata包括:
filelists.xml.gz  other.xml.gz  primary.xml.gz  repomd.xml  该版本适用于红旗 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
相关日志
[原]在Windows下使用红旗HA Cluster  配置工具
[原]构建Heartbeat 3.0.3 GUI+DRBD+Oracle 10g 双机互备集群
[原]构建Heartbeat 2.1.3 GUI+DRBD+Oracle 10g 双机互备集群
[转]红旗 HA LE 6.0 镜像数据同步安装手册
Tags:  ha , heartbeat  



kl
2010/08/19 15:26   
libcpg.so.2
libSaCkpt.so.2
有问题。。。

linuxing 回复于 2010/08/20 16:20
什么意思?详细点吧。
如果你的意思是缺少这几个库,那你要看看系统的版本。上文已经写得很清楚了,我是在红旗Asianux 3.0 x86_64上编译的,兼容RHEL 5、CentOS 5,其他版本我不保证兼容哦。
JackShan
2010/07/27 13:41   
warning: macro `AM_PO_SUBDIRS' not found in library  
  解决:
  It requires gettext-tools


linuxing 回复于 2010/07/28 01:30
你指下面的问题吗?
http://www.gossamer-threads.com/lists/linuxha/pacemaker/60953
在Asianux 3.0/CentOS 5.x等系统中,应指gettext,而非gettext-tools:
# rpm -qa|grep gettext
gettext-0.14.6-4.1AX
gettext-devel-0.14.6-4.1AX
gettext-0.14.6-4.1AX
gettext-devel-0.14.6-4.1AX

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-111912-1-1.html 上篇帖子: High Availability手册(2): 架构 下篇帖子: Linux Cluster
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表