Heartbeat3x应用全攻略Word文件下载.docx
《Heartbeat3x应用全攻略Word文件下载.docx》由会员分享,可在线阅读,更多相关《Heartbeat3x应用全攻略Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
使出现问题的节点从集群环境中脱离
CRM(Clusterresourcemanagement):
集群资源管理模块
Clusterpolicyengine:
集群策略引擎
Clustertransitionengine:
集群转移引擎
Heartbeat3.0拆分之后的组成部分:
Heartbeat:
将原来的消息通信层独立为heartbeat项目,新的heartbeat只负责维护集群各节点的信息以及它们之前通信;
ClusterGlue:
相当于一个中间层,它用来将heartbeat和pacemaker关联起来,主要包含2个部分,即为LRM和STONITH。
ResourceAgent:
用来控制服务启停,监控服务状态的脚本集合,这些脚本将被LRM调用从而实现各种资源启动、停止、监控等等。
Pacemaker:
也就是ClusterResourceManager(简称CRM),用来管理整个HA的控制中心,客户端通过pacemaker来配置管理监控整个集群。
Pacemaker提供了多种用户管理接口,分别如下:
1)crmshell:
基于字符的管理方式;
2)一个使用AjaxWeb配置方式的webkonsole窗口;
3)hb_gui,即heartbeat的gui图形配置工具,这也是原来2.1.x的默认GUI配置工具;
4)DRBD-MC,一个基于Java的配置管理工具。
(2)Pacemaker内部组成及与各模块之间关系
(3)Heartbeat3.x内部组成及之间关系
(4)Heartbeat各个版本之间的异同
与1.x风格相比,Heartbeat2.1.x版本之后功能变化如下:
1)保留原有所有功能
如,网络,heartbeat,机器down时均可切换资源。
2)自动监控资源
默认情况下每2分钟检测资源运行情况,如果发现资源不在,则尝试启动资源,如果60s后还未启动成功,则资源切换向另节点。
时间可以修改。
3)
可以对各资源组实现独立监控.
比如apache运行在node1上,tomcat运行在node2上,Heartbeat可同时实现两台主机的服务监控。
4)同时监控系统负载
可以自动将资源切换到负载低的node上。
Heartbeat官方最后一个STABLErelease2.x版本是2.1.4,Heartbeat3官方正式发布的首个版本是3.0.2,Heartbeat3与Heartbeat2.x的最大差别在于,Heartbeat3.x按模块把的原来Heartbeat2.x拆分为多个子项目,但是HA实现原理与Heartbeat2.x基本相同。
配置也基本一致。
(5)Heartbeat集群的一般拓扑图
一、安装heartbeat前的准备
1、Heartbeat集群必须的硬件
构建一个Heartbeat集群系统必须的硬件设备有:
节点服务器、网络和网卡、共享磁盘
2、操作系统规划
这里统一采用Centos5.3操作系统,每个节点服务器都有两块网卡,一块用作连接公用网络,另一块通过以太网交叉线连接两个节点,作为心跳监控。
共享磁盘由一个磁盘阵列设备提供,两个节点共享一个磁盘分区。
磁盘分区对应的硬件标识为/dev/sdf1,挂载点为/data1,文件系统类型为ext3。
如图1所示:
图1
网络拓扑如图2所示:
图2
配置每个节点的/etc/hosts文件,保证两个节点内容一致,/etc/hosts文件内容如下:
1.[root@node1
~]#more
/etc/hosts
2.192.168.12.246
node1
3.192.168.12.237
node2
4.10.1.1.1
priv1
5.10.1.1.2
priv1
一切准备就绪,接下来开始安装heartbeat。
二、安装heartbeat
这里的安装以heartbeat3.x为讲解对象,以下操作需要在两个节点都进行安装,基本安装过程为:
首先建立相关用户hacluster和组haclient,然后设定环境变量,最后就是安装heartbeat,过程如下:
1、添加用户和组
1.groupadd
haclient
2.useradd
-g
haclient
hacluster
2、设置环境变量
vi/root/.bash_profile,添加如下内容:
1.export
PREFIX=/usr/local/ha
2.export
LCRSODIR=$PREFIX/libexec/lcrso
3.export
CLUSTER_USER=hacluster
4.export
CLUSTER_GROUP=haclient
5.export
CFLAGS="
$CFLAGS
-I$PREFIX/include
-L$PREFIX/lib"
6.getent
group
${CLUSTER_GROUP}
>
/dev/null
||
groupadd
-r
${CLUSTER_GROUP}
7.getent
passwd
${CLUSTER_USER}
useradd
-d
/var/lib/heartbeat/cores/hacluster
-s
/sbin/nologin
-c
"
cluster
user"
${CLUSTER_USER}
heartbeat3.x版本把安装包分成了4个部分,分别是:
ClusterGlue、ResourceAgents、heartbeat和pacemaker,所以要分别安装,可以从http:
//hg.linux-ha.org、http:
//hg.clusterlabs.org下载对应的软件包,这里使用的软件版本分别为:
glue-1.0.7、agents-1.0.3、heartbeat-STABLE-3.0.4、Pacemaker-1.0.10
3、安装各个模块软件包
(1)安装ClusterGlue
1.tar
–xjvf
Reusable-Cluster-Components-glue--5e06b2ddd24b.tar.bz2
2.cd
Reusable-Cluster-Components-glue--5e06b2ddd24b
3../autogen.sh
4../configure
--prefix=$PREFIX
--with-daemon-user=${CLUSTER_USER}
--with-daemon-group=${CLUSTER_GROUP}
--enable-fatal-warnings=no
5.make
6.make
install
(2)安装ResourceAgents
jxvf
Cluster-Resource-Agents-5ae70412eec8.tar.bz2
Cluster-Resource-Agents-5ae70412eec8
(3)安装heartbeat
Heartbeat-3-0-fcd56a9dd18c.tar.bz2
Heartbeat-3-0-fcd56a9dd18c
3../bootstrap
(4)安装pacemaker
Pacemaker-1-0-c3869c00c759.tar.bz2
Pacemaker-1-0-c3869c00c759
--with-lcrso-dir=$LCRSODIR
install
4、安装图像管理工具Pacemaker-Python-GUI
1.[root@drbd1
Pacemaker-Python-GUI-18332eae086e]#
tar
Pacemaker-Python-GUI-18332eae086e.tar.bz2
2.[root@drbd1
Pacemaker-Python-GUI-18332eae086e]#cd
Pacemaker-Python-GUI-18332eae086e
3.[root@drbd1
Pacemaker-Python-GUI-18332eae086e]#./bootstrap
4.[root@drbd1
Pacemaker-Python-GUI-18332eae086e]#make
5.[root@drbd1
Pacemaker-Python-GUI-18332eae086e]#make
可能出现如下报错:
1.aclocal:
configure.in:
57:
warning:
macro
`AM_PO_SUBDIRS'
not
found
in
library
2../configure:
line
2064:
syntax
error
near
unexpected
token
`0.35.2'
3../configure:
`AC_PROG_INTLTOOL(0.35.2)‘
只需安装gettext和intltool-0.35.0-2软件包即可
三、配置heartbeat
对HA的配置分为两个部分,配置heartbeat和pacemaker,与heartbeat版本相对应,配置文件也有两个版本,即为heartbeat1.x的1.xstyle版本和heartbeat2.1.x版本之后的2.1.xstyle版本,我们可以借助1.xstyle的集群资源配置文件转换为2.xstyle的格式,同时,在heartbeat2.1.x版本之后使用CRM来管理整个集群。
集群开始时,通过在各节点间选举产生一个节点成为DC(DesignatedCoordinator),所有配置操作都在该DC主机上进行,并由其分发到集群下的各个节点上。
下面依次讲述。
1、1.x和2.x配置文件对比
/usr/local/ha/etc/ha.d/authkeys该文件在两个版本作用是完全相同的,都必须设置,并且保证每个节点(node)内容一样
/usr/local/ha/etc/ha.d/ha.cf这个是主要配置文件,由其决定v1或v2style格式
/usr/local/ha/etc/haresources这是v1的资源配置文件
/usr/local/ha/var/lib/heartbeat/crm/cib.xml这是v2的资源配置文件,两者根据ha.cf的设定只能选其一.
v2版本使用CRM管理集群,而cib.xml文件有如下几种方式来编写:
人工编写XML文件;
使用admintools工具,其已经包含在heartbeat包中;
使用GUI图形工具配置,也包含在heartbeat-gui包里面,这个一会介绍;
使用python脚本转换1.xstyle的格式配置文件到2.xstyle格式。
这四种方法实质都是相同的,并且以python脚本转换最为简单容易。
为此,可以先配置好1.xstyle的格式,然后通过python脚本进行转换。
2、配置heartbeat
1)首先拷贝模板配置文件
1.cp
/usr/local/ha/share/doc/authkeys
/usr/local/ha/etc/ha.d
2.cp
/usr/local/ha/share/doc/ha.cf
3.cp
/usr/local/ha/share/doc/haresources
/usr/local/ha/etc/ha.d
3、主配置文件(/etc/ha.d/ha.cf)
下面对ha.cf文件的每个选项进行详细介绍,其中“#”号后面的内容是对选项的注释说明。
1.#debugfile
/var/log/ha-debug
2.logfile
/var/log/ha-log
#指名heartbeat的日志存放位置。
3.#crm
yes
#是否开启Cluster
Resource
Manager(集群资源管理)功能。
4.bcast
eth1
#指明心跳使用以太网广播方式,并且是在eth1接口上进行广播。
5.keepalive
2
#指定心跳间隔时间为2秒(即每两秒钟在eth1上发送一次广播)。
6.deadtime
30
#指定备用节点在30秒内没有收到主节点的心跳信号后,则立即接管主节点的服务资源。
7.warntime
10
#指定心跳延迟的时间为十秒。
当10秒钟内备份节点不能接收到主节点的心跳信号时,就会往日志中写入一个警告日志,但此时不会切换服务。
8.initdead
120
#在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。
取值至少为deadtime的两倍。
9.udpport
694
#设置广播通信使用的端口,694为默认使用的端口号。
10.baud
19200
#设置串行通信的波特率。
11.#serial
/dev/ttyS0
#选择串行通信设备,用于双机使用串口线连接的情况。
如果双机使用以太网。
12.#ucast
eth0
192.168.1.2
#采用网卡eth0的udp单播来组织心跳,后面跟的IP地址应为双机对方的IP地址。
13.#mcast
225.0.0.1
1
0
#采用网卡eth0的Udp多播来组织心跳,一般在备用节点不止一台时使用。
Bcast、ucast和mcast分别代表广播、单播和多播,是组织心跳的三种方式,任选其一即可。
14.auto_failback
on
#用来定义当主节点恢复后,是否将服务自动切回,heartbeat的两台主机分别为主节点和备份节点。
主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给备份节点并由备份节点运行服务。
在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代备份节点,如果该选项设置为off,那么当主节点恢复后,将变为备份节点,而原来的备份节点成为主节点。
15.#stonith
baytech
/etc/ha.d/conf/stonith.baytech
#
stonith的主要作用是使出现问题的节点从集群环境中脱离,进而释放集群资源,避免两个节点争用一个资源的情形发生。
保证共享数据的安全性和完整性。
16.#watchdog
/dev/watchdog
#该选项是可选配置,是通过Heartbeat来监控系统的运行状态。
使用该特性,需要在内核中载入"
softdog"
内核模块,用来生成实际的设备文件,如果系统中没有这个内核模块,就需要指定此模块,重新编译内核。
编译完成输入"
insmod
加载该模块。
然后输入"
grep
misc
/proc/devices"
(应为10),输入"
cat
/proc/misc
|grep
watchdog"
(应为130)。
最后,生成设备文件:
mknod
c
130"
。
即可使用此功能。
17.node
node1
#主节点主机名,可以通过命令“uanme
–n”查看。
18.node
node2
#备用节点主机名。
19.ping
192.168.12.1
#选择ping的节点,ping
节点选择的越好,HA集群就越强壮,可以选择固定的路由器作为ping节点,但是最好不要选择集群中的成员作为ping节点,ping节点仅仅用来测试网络连接。
20.ping_group
group1
192.168.12.251
192.168.12.239
#类似于ping。
21.#respawn
/usr/local/ha/lib/heartbeat/ipfail
22.apiauth
pingd
gid=haclient
uid=hacluster
23.respawn
/usr/local/ha/lib/heartbeat/pingd
-m
100
5s
#该选项是可选配置,列出与heartbeat一起启动和关闭的进程,该进程一般是和heartbeat集成的插件,这些进程遇到故障可以自动重新启动。
最常用的进程是pingd,此进程用于检测和监控网卡状态,需要配合ping语句指定的ping
node来检测网络的连通性。
其中hacluster表示启动pingd进程的身份。
24.#下面的配置是关键,也就是激活crm管理,开始使用v2
style格式
25.crm
respawn
26.#注意,还可以使用crm
yes的写法,但这样写的话,如果后面的cib.xml配置有问题
27.#会导致heartbeat直接重启该服务器,所以,测试时建议使用respawn的写法
28.#下面是对传输的数据进行压缩,是可选项
29.compression
bz2
30.compression_threshold
2
31.注意,v2
style不支持ipfail功能,须使用pingd代替
4、资源文件(/etc/ha.d/haresources)
Haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等集群资源,文件每一行可以包含一个或多个资源脚本名,资源之间使用空格隔开,参数之间使用两个冒号隔开,在两个HA节点上该文件必须完全一致,此文件的一般格式为:
1.node-name
network
<
resource-group>
node-name表示主节点的主机名,必须和ha.cf文件中指定的节点名一致,network用于设定集群的IP地址、子网掩码、网络设备标识等,需要注意的是,这里指定的IP地址就是集群对外服务的IP地址,resource-group用来指定需要heartbeat托管的服务,也就是这些服务可以由heartbeat来启动和关闭,如果要托管这些服务,必须将服务写成可以通过start/stop来启动和关闭的脚步,然后放到/etc/init.d/或者/etc/ha.d/resource.d/目录下,heartbeat会根据脚本的名称自动去/etc/init.d或者/etc/ha.d/resource.d/目录下找到相应脚步进行启动或关闭操作。
LSB:
Linux标准脚本文件(initscript),通常放在/etc/init.d/目录下,heartbeat1.x版本之前的管理脚本一半放在/etc/ha.d/resource.d,在这里是/usr/local/ha/etc/ha.d/resource.d
OCF:
OpenClusterFramework,默认放在/usr/lib/resource.d/heartbeat/目录下;
在这里是/usr/local/ha/etc/ha.d/resource.d
下面介绍一下ocf和lsb格式的区别:
L