注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

生命无非记忆

不要在记忆中丢失了自己

 
 
 

日志

 
 

pacemaker和heartbeat的安装(安装到自己指定的位置)  

2012-08-06 14:36:03|  分类: linux-ha |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Pacemaker 和Heartbeat 的安装
1. 安装环境
操作系统版本:Asianux Server 3 (Quartet SP4) (64位)
内核版本:2.6.18-238.2.AXS3
安装位置:/opt/myheartbeat,所有的组件均安装在该目录内
2. 安装的组件
名称                            版本 
Python                      V 2.4.4   
Glue                          V 1.0.9  
Resource agents      V 3.9.2  
Heartbeat                 V 3.0.7  
Pacemaker              V 1.0.9  
3. 安装过程
3.1. Python的安装
本例中安装的Python本版为2.4.4。
1) ./configure —prefix=/opt/myheartbeat,将python安装到/opt/myheartbeat目录中;
2) make ;make install 编译安装python。
如果在安装过程中遇到如下错误:
Sorry: UnicodeError: ("\\N escapes not supported (can't load unicodedata module)",)
则 执行make -i install 命令安装即可。
3.2. Glue的安装
1) 下载Glue安装包,下载地址是:http://hg.linux-ha.org/glue/archive/glue-1.0.9.tar.bz2;
2) 解压安装包,执行
./configure --prefix=/opt/myheartbeat --with-daemon-user=hacluster --libdir=/opt/myheartbeat/lib64 --with-daemon-group=haclient --enable-fatal-warnings=no --with-ocf-root=/opt/myheartbeat --with-initdir=/opt/myheartbeat
--prefix 表示glue安装的位置;
--libdir 表示gule 的library 文件安装的位置,这里一定要配置该参数,由于本机的操作系统为64位,在后面安装Heartbeat时,Heatbeat会把其库文件安装在lib64中,如果我们这里不指定—libdir,则glue会把库文件安装在lib文件夹中,这样在安装完Heartbeat后,启动heartbeat时会找不到glue库文件;
--with-ocf-root ocf 资源安装的根目录,上面的配置会把ocf resource 安装在 /opt/myheartbeat/resource.d 和/opt/myheartbeat/lib中,该参数也必须指定,否则在后面安装resource agent时会把这些ocf resource 安装到默认位置。如果这里不指定该参数,则在安装resource agent时,在指定该参数也是无效的,因为在安装resource agent时,configure会读取glue的glue_conf.h文件中的OCF_ROOT_DIR,查看ocf resource 安装到的位置;
--with-initdir heartbeat启动脚本的安装位置。
3) make ;make install 编译安装glue。
3.3. Resource Agents 的安装
1) 下载resource agents 安装包,下载地址是:https://nodeload.github.com/ClusterLabs/resource-agents/tarball/v3.9.2;
2) 解压安装包,首先修改configure 文件:

OCF_RA_DIR_PREFIX="${prefix}/$OCF_RA_DIR"替换为:OCF_RA_DIR_PREFIX="$OCF_RA_DIR"
OCF_LIB_DIR_PREFIX="${prefix}/$OCF_LIB_DIR"替换为:
OCF_LIB_DIR_PREFIX="$OCF_LIB_DIR"
然后执行
./configure --prefix=/opt/myheartbeat --libdir=/opt/myheartbeat/lib64 --enable-fatal-warnings=no --with-initdir=/opt/myheartbeat CFLAGS="-I/opt/myheartbeat/include -L/opt/myheartbeat/lib -L/opt/myheartbeat/lib64 -L/usr/lib"
prefix ,libdir,with-initdir这三个参数的含义和glue相同;
--enable-fatal-warnings 编译时,如果遇到警告,是否当作错误处理;
CFLAGS 编译时的选项,由于我们没有把glue安装到默认位置,因此在编译resource agent时要指定glue 的安装位置,否则在编译时会找不到所需要的库文件和头文件。
在安装resource agent时,可能会出现如下错误:
../heartbeat/IPv6addr: error while loading shared libraries: libplumb.so.2: cannot open shared object file: No such file or directory,libplumb.so.2
libplumb.so.2是glue的一个库文件,在安装gule时已经安装到/opt/myheartbeat/lib64下了,并且在编译resource agent 时也加了-L/opt/myheartbeat/lib64,不知道为什么还是找不到该文件??我直接忽略该错误,直接make install。
3.4. Heartbeat的安装
1) 下载heartbeat安装包,解压并执行:
configure --prefix=/opt/myheartbeat --enable-fatal-warnings=no --with-initdir=/opt/myheartbeat CFLAGS="-I/opt/myheartbeat/include -L/opt/myheartbeat/lib -I/opt/myheartbeat/include -L/opt/myheartbeat/lib64"
其中的参数和前面的参数一样。
2) make make install 编译安装heartbeat。
安装时,如果报如下错误:
ImportError: No module named site
可能是python安装了多个版本,并且python的环境变量设置的有问题:
解决办法:
我的python安装在/opt/myheartbeat/下,系统本来安装了pyhon2.7在/usr下,
■ 删除/usr/bin/python,
■ 执行ln -s /opt/myheartbeat/bin/python2.4 /usr/bin/pyhon。
■ export PYTHONHOME=/opt/myheartbeat
编译时,报如下错误:
/usr/lib/libltdl.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
执行如下操作:
mv /usr/lib/libltdl.so /tmp/
ln -s /usr/lib64/libltdl.so /usr/lib/libltdl.so
3.5. Pacemaker的安装
1) 下载pacemaker,地址是:http://hg.clusterlabs.org/pacemaker/stable-1.0/archive/tip.tar.bz2;
2) 解压安装包,执行
./configure --prefix=/opt/myheartbeat --libdir=/opt/myheartbeat/lib64 --enable-fatal-warnings=no —with-initdir=/opt/myheartbeat CFLAGS="-I/opt/myheartbeat/include -L/opt/myheartbeat/lib -L/opt/myheartbeat/lib64 -L/usr/lib -L/usr/lib64",其中的参数和前面的参数一样;
3) make; make install 编译安装pacemaker。
编译时,如果报如下错误:
../../lib/crm/pengine/.libs/libpe_status.so: undefined reference to
`stdscr'
../../lib/crm/pengine/.libs/libpe_status.so: undefined reference to
`wmove'
../../lib/crm/pengine/.libs/libpe_status.so: undefined reference to
`printw'
collect2: ld returned 1 exit status
解决办法:
这几个函数均在库文件ncurses中,添加配置时加上LIBS="$LIBS -lncurses"选项即可。
4. 遇到的问题
在安装完成之后,可能还会遇到一些问题,下面是我在使用/opt/myheartbeat 下的heartbeat时遇到的一些问题和解决办法。
4.1. crm运行时错误
在执行/opt/myheartbeat/sbin/crm时报如下错误:
abort: couldn't find crm libraries in [/opt/myheartbeat/sbin
/opt/myheartbeat/lib/python2.4
/opt/myheartbeat/lib64/python2.4/site-packages
/opt/myheartbeat/lib/python2.4/lib/python24.zip
/opt/myheartbeat/lib/python2.4/lib/python2.4
/opt/myheartbeat/lib/python2.4/lib/python2.4/plat-linux2
/opt/myheartbeat/lib/python2.4/lib/python2.4/lib-tk
/opt/myheartbeat/lib/python2.4/lib/python2.4/lib-dynload]
原因:
出现该问题的主要原因是python的环境变量设置有问题,导致python找不到crm相关的库文件。这些库文件是在安装pacemaker时安装的,根据我们的配置,应该安装在/opt/myheartbeat/lib64/python2.4/site-packages目录下,因此我们只需要让python找到这些文件即可。
这些库文件主要是/opt/myheartbeat/lib64/python2.4/site-packages/crm 目录下面的:
cache.py
cache.pyc
cache.pyo
cibconfig.py
cibconfig.pyc
cibconfig.pyo
。。。 。。。等
以及/opt/myheartbeat/lib64/python2.4/site-packages/cts目录下面的:
CIB.py CM_ais.pyc CM_lha.pyo CTS.py CTSscenarios.pyc CTStests.pyo
CIB.pyc CM_ais.pyo CTSaudits.py CTS.pyc CTSscenarios.pyo CTSvars.py
CIB.pyo CM_lha.py CTSaudits.pyc CTS.pyo CTStests.py CTSvars.pyc
CM_ais.py CM_lha.pyc CTSaudits.pyo CTSscenarios.py CTStests.pyc CTSvars.pyo等。
解决办法:
修改环境变量PYTHONPATH,
export PYTHONHONME=/opt/myheartbeat
export PYTHONPATH=$PYTHONHOME:/opt/myheartbeat/lib64/python2.4/site-packages
export PATH=$PATH:/opt/myheartbeat/sbin
4.2. crm cofigrue 运行时错误
heartbeat正常启动完成后,运行/opt/myheartbeat/sbin/crm configure show 时报如下错误:
Signon to CIB failed: connection failed
Init failed, could not perform requested operations
ERROR: cannot parse xml: no element found: line 1, column 0
原因:
出现该问题的原因是机器上安装了多个heartbeat,在运行crm时链接到其他heartbeat的库文件上了。
解决办法:
修改环境变量LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/myheartbeat/lib64

  评论这张
 
阅读(1433)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017