Heartbeat 3.x应用全攻略之:安装、配置、维护

时间:2022-11-16 14:58:15


 

Heartbeat 3.x应用全攻略之:安装、配置、维护

 

 

 

目录

一、        安装heartbeat前的准备... 1

1、Heartbeat集群必须的硬件...1

2、操作系统规划...1

2.1主节点IP配置...1

2.2从节点IP配置...1

2.3 配置主机名与hosts. 1

2.3.1 配置主机名... 1

2.3.2 配置host. 1

2.4配置服务器间心跳的连接...1

2.4.1 添加路由... 1

二、安装heartbeat.1

1、添加用户和组...1

2、设置环境变量...1

3、安装各个模块软件包...1

(1)安装Cluster Glue. 1

(2)安装Resource Agents. 1

(3)安装heartbeat.1

(4)安装pacemaker.1

4、安装图像管理工具Pacemaker-Python-GUI1

三、配置heartbeat.1

1、1.x和2.x配置文件对比...1

2、配置heartbeat.1

3、主配置文件(/etc/ha.d/ha.cf).1

4、资源文件(/etc/ha.d/haresources).1

5、认证文件(/etc/ha.d/authkeys).1

 

 

 

 

一、  安装heartbeat前的准备

1、Heartbeat集群必须的硬件 

构建一个Heartbeat集群系统必须的硬件设备有:

节点服务器、网络和网卡、共享磁盘

 

 

 

2、操作系统规划 

 

这里统一采用Centos5.3操作系统,每个节点服务器都有两块​​网卡​​​,一块用作连接公用网络,另一块通过以太网交叉线连接两个节点,作为心跳​​监控​​。共享磁盘由一个磁盘阵列设备提供,两个节点共享一个磁盘分区。磁盘分区对应的硬件标识为/dev/sdf1,挂载点为/data1,文件系统类型为ext3。如图1所示:

 

 

节点类型

IP地址规划

主机名

类型

主用节点

eth0:192.168.1.55

data-1-1

Public IP

eth1:10.1.1.1

Static IP : 10.1.1.1

Netmask:255.255.255.0

priv1

Private IP

vip:192.168.1.57

Virtual IP

备用节点

eth0:192.168.1.56

data-1-2

Public IP

eth1:10.1.1.2

Static IP : 10.1.1.1

Netmask:255.255.255.0

priv2

Private IP

vip:192.168.1.58

Virtual IP

 

 

2.1主节点IP配置

 

 

Heartbeat 3.x应用全攻略之:安装、配置、维护

 

 

 

 

重启查看

 

 

Last login: Wed Jun  3 23:18:24 on tty1

[root@localhost ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:F1:05:57 

inet addr:192.168.1.55

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:5373 errors:0 dropped:0 overruns:0 frame:0

          TX packets:190 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:436935 (426.6 KiB)  TX bytes:17802 (17.3 KiB)

          Interrupt:177 Base address:0x1400

 

eth1      Link encap:Ethernet  HWaddr 00:0C:29:F1:05:61 

inet addr:10.1.1.1

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:334 errors:0 dropped:0 overruns:0 frame:0

          TX packets:117 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:48575 (47.4 KiB)  TX bytes:21137 (20.6 KiB)

          Interrupt:185 Base address:0x1480

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:8 errors:0 dropped:0 overruns:0 frame:0

          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

 

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]

DEVICE=eth1

BOOTPROTO=none

ONBOOT=yes

HWADDR=00:0c:29:f1:05:61

NETMASK=255.255.255.0

IPADDR=10.1.1.1

TYPE=Ethernet

[root@localhost ~]#

 

 

 

2.2从节点IP配置

 

 

 

[root@localhost ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:F3:69:70 

 inet addr:192.168.1.56

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:5517 errors:0 dropped:0 overruns:0 frame:0

          TX packets:226 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:449597 (439.0 KiB)  TX bytes:19221 (18.7 KiB)

          Interrupt:177 Base address:0x1400

 

eth1      Link encap:Ethernet  HWaddr 00:0C:29:F3:69:7A 

 inet addr:10.1.1.2

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:519 errors:0 dropped:0 overruns:0 frame:0

          TX packets:120 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:63501 (62.0 KiB)  TX bytes:21429 (20.9 KiB)

          Interrupt:185 Base address:0x1480

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:8 errors:0 dropped:0 overruns:0 frame:0

          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

 

[root@localhost ~]#

 

 

 

 

2.3 配置主机名与hosts

 

 

2.3.1 配置主机名

 

1) data-1-1

 

 

[root@localhost ~]# hostname data-1-1

[root@localhost ~]# sed -i 's#HOSTNAME=moban#HOSTNAME=data-1-1#g' /etc/sysconfig/network

 

 

配置完后退出,重新登录;

 

 

1) data-1-2

 

 

[root@localhost ~]# hostname data-1-2

[root@localhost ~]# sed -i 's#HOSTNAME=moban#HOSTNAME=data-1-2#g' /etc/sysconfig/network

 

 

配置完后退出,重新登录;

 

 

 

2.3.2 配置host

 

1)主

 

 

[root@data-1-1 ~]#

[root@data-1-1 ~]#

[root@data-1-1 ~]# /bin/cp /etc/hosts /etc/hosts.bak001

[root@data-1-1 ~]# cat /etc/hosts.bak001

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1          localhost.localdomain localhost

::1              localhost6.localdomain6 localhost6

[root@data-1-1 ~]#

 [root@data-1-1 ~]# sed -i '/^10.1.1/d' /etc/hosts

[root@data-1-1 ~]# cat >> /etc/hosts << eof

> 10.1.1.1 data-1-1

> 10.1.1.2 data-1-2

> eof

[root@data-1-1 ~]# tail -2 /etc/hosts

10.1.1.1 data-1-1

10.1.1.2 data-1-2

[root@data-1-1 ~]# ping data-1-1

PING data-1-1 (10.1.1.1) 56(84) bytes of data.

64 bytes from data-1-1 (10.1.1.1): icmp_seq=1 ttl=64 time=0.251 ms

64 bytes from data-1-1 (10.1.1.1): icmp_seq=2 ttl=64 time=0.024 ms

 

--- data-1-1 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1000ms

rtt min/avg/max/mdev = 0.024/0.137/0.251/0.114 ms

[root@data-1-1 ~]# ping data-1-2

PING data-1-2 (10.1.1.2) 56(84) bytes of data.

64 bytes from data-1-2 (10.1.1.2): icmp_seq=1 ttl=64 time=1.37 ms

64 bytes from data-1-2 (10.1.1.2): icmp_seq=2 ttl=64 time=0.107 ms

 

--- data-1-2 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1000ms

rtt min/avg/max/mdev = 0.107/0.742/1.377/0.635 ms

[root@data-1-1 ~]#

 

 

 

2)从

 

         和主配置是一样的;

 

 

 

 

2.4配置服务器间心跳的连接

 

 

2.4.1 添加路由

 

1)data-1-1

 

 

[root@data-1-1 ~]# route add -host 10.1.1.2 dev eth1

[root@data-1-1 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.1.1.2

192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

10.1.1.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1

169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1

0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

[root@data-1-1 ~]#

[root@data-1-1 ~]#

[root@data-1-1 ~]# echo '/sbin/route add -host 10.1.1.2 dev eth1' >> /etc/rc.local

[root@data-1-1 ~]#

 

 

 

 

 

2) data-1-2

 

 

[root@data-1-2 ~]# route add -host 10.1.1.1 dev eth1

[root@data-1-2 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.1.1.1

192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

10.1.1.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1

169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1

0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

[root@data-1-2 ~]#

[root@data-1-2 ~]#

[root@data-1-2 ~]# echo '/sbin/route add -host 10.1.1.1 dev eth1' >> /etc/rc.local

[root@data-1-2 ~]#

 

 

一切准备就绪,接下来开始安装heartbeat。

 

 

 

 

 

 

 

 

 

二、安装heartbeat

 

这里的安装以heartbeat3.x为讲解对象,以下操作需要在两个节点都进行安装,基本安装过程为:

首先建立相关用户hacluster和组haclient,然后设定环境变量,最后就是安装heartbeat,过程如下:

 

 

1、添加用户和组

 

 

groupadd haclient

useradd -g haclient hacluster

 

 

 

2、设置环境变量

 

vi/root/.bash_profile,添加如下内容:

 

 

export PREFIX=/usr/local/ha

export LCRSODIR=$PREFIX/libexec/lcrso

export CLUSTER_USER=hacluster 

export CLUSTER_GROUP=haclient 

export CFLAGS="$CFLAGS -I$PREFIX/include -L$PREFIX/lib" 

getent group ${CLUSTER_GROUP} >/dev/null || groupadd -r ${CLUSTER_GROUP}  

getent passwd ${CLUSTER_USER} >/dev/null || useradd -r -g ${CLUSTER_GROUP} -d /var/lib/heartbeat/cores/hacluster -s /sbin/nologin -c "cluster user" ${CLUSTER_USER}  

 

让文件修改生效:source .bash_profile 

 

 

heartbeat3.x版本把安装包分成了4个部分,分别是:ClusterGlue、Resource Agents、heartbeat和pacemaker,所以要分别安装,可以从、下载对应的软件包,这里使用的软件版本分别为:

glue-1.0.7、agents-1.0.3、heartbeat-STABLE-3.0.4、Pacemaker-1.0.10

 

 

3、安装各个模块​​软件包​

 

(1)安装ClusterGlue

 

 

tar jxvf Reusable-Cluster-Components-glue--5e06b2ddd24b.tar.bz2

cd Reusable-Cluster-Components-​​glue​​--5e06b2ddd24b

./autogen.sh

./configure --prefix=$PREFIX  --with-daemon-user=${CLUSTER_USER} --with-daemon-group=${CLUSTER_GROUP} --enable-fatal-warnings=no 

make

make install

 

 

 

(2)安装ResourceAgents

 

 

tar jxvf Cluster-Resource-Agents-5ae70412eec8.tar.bz2

cd Cluster-Resource-Agents-5ae70412eec8

./autogen.sh

./configure --prefix=$PREFIX --enable-fatal-warnings=no

make

make install

 

 

 

(3)安装heartbeat

 

 

tar jxvf Heartbeat-3-0-fcd56a9dd18c.tar.bz2

cd Heartbeat-3-0-fcd56a9dd18c

./bootstrap

./configure --prefix=$PREFIX --enable-fatal-warnings=no

make

make install

 

 

编译有错误,参考如下:

         ​​ javascript:void(0)​​

 

 

(4)安装pacemaker

 

 

 

tar jxvf  Pacemaker-1-0-c3869c00c759.tar.bz2

cd Pacemaker-1-0-c3869c00c759

./autogen.sh

./configure --prefix=$PREFIX --with-lcrso-dir=$LCRSODIR --enable-fatal-warnings=no

make

make install

 

 

 

 

 

4、安装图像管理工具Pacemaker-Python-GUI

 

 

 

 

[root@drbd1 Pacemaker-Python-GUI-18332eae086e]# tar jxvf  Pacemaker-Python-GUI-18332eae086e.tar.bz2

[root@drbd1 Pacemaker-Python-GUI-18332eae086e]#cd Pacemaker-Python-GUI-18332eae086e

[root@drbd1 Pacemaker-Python-GUI-18332eae086e]#./bootstrap  --prefix=$PREFIX   CFLAGS="$CFLAGS -I$PREFIX/include -L$PREFIX/lib"

[root@drbd1 Pacemaker-Python-GUI-18332eae086e]#make

[root@drbd1 Pacemaker-Python-GUI-18332eae086e]#make install

 

可能出现如下报错:

aclocal:configure.in:57: warning: macro `AM_PO_SUBDIRS' not found in library

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

./configure: line 2064: `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.x style版本,我们可以借助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或v2 style格式

/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.x style的格式配置文件到2.x style格式。

这四种方法实质都是相同的,并且以python脚本转换最为简单容易。为此,可以先配置好1.x style的格式,然后通过python脚本进行转换。

 

 

 

 

 

2、配置heartbeat

1)首先拷贝模板配置文件

 

 

 

cp  /usr/local/ha/share/doc/authkeys   /usr/local/ha/etc/ha.d

cp  /usr/local/ha/share/doc/ha.cf  /usr/local/ha/etc/ha.d

cp  /usr/local/ha/share/doc/haresources   /usr/local/ha/etc/ha.d

 

 

 

3、主配置文件(/etc/ha.d/ha.cf)

 

 

debugfile /var/log/ha-debug

logfile       /var/log/ha-log

logfacility local0

# 以上三行为日志的配置,在你配置时一般不需要改动

 

keepalive 2

deadtime 30

warntime 10

initdead 120

# 以上四行为一些基础参数,在你配置时一般不需要改动。

 

 

#udpport 694

#baud       19200

#serial      /dev/ttyS0        # Linux

#serial      /dev/cuaa0       # FreeBSD

#serial /dev/cuad0      # FreeBSD 6.x

#serial      /dev/cua/a       # Solaris

#bcast      eth0          # Linux

#bcast      eth1 eth2 # Linux

#bcast      le0             # Solaris

#bcast      le1 le2                # Solaris

#mcast eth0 225.0.0.1 694 1 0

#ucast eth0 192.168.1.2

 

 

mcast eth1 225.0.0.1 694 1 0

auto_failback on

node         data-1-1

node         data-1-1

crm  no

 

#stonith baytech /etc/ha.d/conf/stonith.baytech

#stonith_host *     baytech 10.0.0.3 mylogin mysecretpassword

#stonith_host ken3  rps10 /dev/ttyS1 kathy 0

#stonith_host kathy rps10 /dev/ttyS1 ken3 0

#watchdog /dev/watchdog

#ping 10.10.10.254

#ping_group group1 10.10.10.254 10.10.10.253

#hbaping fc-card-name

#respawn userid /path/name/to/run

#respawn hacluster /usr/lib/heartbeat/ipfail

#apiauth client-name gid=gidlist uid=uidlist

#apiauth ipfail gid=haclient uid=hacluster

#hopfudge 1

#deadping 30

#hbgenmethod time

#realtime off

#debug 1

#apiauth ipfail uid=hacluster

#apiauth ccm uid=hacluster

#apiauth cms uid=hacluster

#apiauth ping gid=haclient uid=alanr,root

#apiauth default gid=haclient

#msgfmt  classic/netstring

#conn_logd_time 60

#compression  bz2

#compression_threshold 2

 

 

 

 

下面对ha.cf文件的每个选项进行详细介绍,其中“#”号后面的内容是对选项的注释说明。

 

序号

选项

描述

01

#debugfile /var/log/ha-debug

 

02

logfile /var/log/ha-log

#指名heartbeat的日志存放位置。

03

#crm yes

#是否开启Cluster Resource Manager(集群资源管理)功能。

04

bcast eth1

#指明心跳使用以太网广播方式,并且是在eth1接口上进行广播。

05

keepalive 2

#指定心跳间隔时间为2秒(即每两秒钟在eth1上发送一次广播)。

06

deadtime 30

#指定备用节点在30秒内没有收到主节点的心跳信号后,则立即接管主节点的服务资源。

07

warntime 10

#指定心跳延迟的时间为十秒。当10秒钟内备份节点不能接收到主节点的心跳信号时,就会往日志中写入一个警告日志,但此时不会切换服务。 

08

initdead 120

#在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于​​解决​​这种情况产生的时间间隔。取值至少为deadtime的两倍。

09

udpport 694

#设置广播通信使用的端口,694为默认使用的端口号。

10

baud 19200

#设置串行通信的波特率。

11

#serial /dev/ttyS0

#选择串行通信设备,用于双机使用串口线连接的情况。如果双机使用以太网。

12

#ucast eth0 192.168.1.2

#采用网卡eth0的udp单播来组织心跳,后面跟的IP地址应为双机对方的IP地址。  

13

#mcast eth0 225.0.0.1 694 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 softdog"加载该模块。然后输入"grep misc /proc/devices"(应为10),输入"cat /proc/misc |grep watchdog"(应为130)。最后,生成设备文件:"mknod /dev/watchdog c 10 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 hacluster

/usr/local/ha/lib/heartbeat/ipfail

 

22

apiauth pingd gid=haclient uid=hacluster 

 

23

respawn hacluster

/usr/local/ha/lib/heartbeat/pingd -m 100 -d 5s

#该选项是可选配置,列出与heartbeat一起启动和关闭的进程,该进程一般是和heartbeat集成的插件,这些进程遇到故障可以自动重新启动。最常用的进程是pingd,此进程用于检测和监控网卡状态,需要配合ping语句指定的ping node来检测网络的连通性。其中hacluster表示启动pingd进程的身份。 

24

#下面的配置是关键,也就是激活crm管理,开始使用v2 style格式

crm respawn

 

#注意,还可以使用crm yes的写法,但这样写的话,如果后面的cib.xml配置有​​问题​​ 

 

#会导致heartbeat直接重启该服务器,所以,​​测试​​时建议使用respawn的写法

 

#下面是对传输的数据进行压缩,是可选项

compression     bz2

compression_threshold 2

 

注意,v2 style不支持ipfail功能,须使用pingd代替

 

 

 

 

 

 

 

4、资源文件(/etc/ha.d/haresources)

 

   Haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等集群资源,文件每一行可以包含一个或多个资源脚本名,资源之间使用空格隔开,参数之间使用两个冒号隔开,在两个HA节点上该文件必须完全一致,此文件的一般格式为:

 

 

 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:Open ClusterFramework,默认放在/usr/lib/resource.d/heartbeat/目录下;在这里是/usr/local/ha/etc/ha.d/resource.d

 

下面介绍一下ocf和lsb格式的区别:

LSB格式的脚本必须支持status功能,必须能接收start,stop,status,三个参数;而如果是OCF格式,则必须支持start,stop,monitor三个参数.其中status和monitor参数是用来监控资源的,非常重要.

例如LSB风格的脚本,运行./Mysqlstatus时候,返回值包含OK或则running则表示资源正常,返回值包含stopped或者No则表示资源不正常。假如是OCF风格的脚本,运行./Mysql monitor时候, 返回0表示资源是正常的, 返回7表示资源出现问题.

 

下面对配置方法进行具体说明:

 

 

node1 IPaddr::192.168.60.200/24/eth0/  Filesystem::/dev/sdb5::/webdata::ext3  httpd tomcat

 

 

其中,node1是HA集群的主节点,IPaddr为heartbeat自带的一个执行脚步,heartbeat首先将执行/etc/ha.d/resource.d/IPaddr192.168.60.200/24 start的操作,也就是虚拟出一个​​子网掩码​​为255.255.255.0,IP为192.168.60.200的地址,此IP为heartbeat对外提供服务的网络地址,同时指定此IP使用的网络接口为eth0,接着,heartbeat将执行共享磁盘分区的挂载操作,“Filesystem::/dev/sdf1::/data1::ext3”相当于在命令行下执行mount操作,即“mount –text3 /dev/sdf1 /data1”,最后依次启动httpd和tomcat服务。

 

 

 

[root@data-1-1 ha.d]# ll /etc/ha.d/resource.d/IPaddr

-rwxr-xr-x 1 root root 2277 Jun  4 05:21 /etc/ha.d/resource.d/IPaddr

[root@data-1-1 ha.d]#

 

 

 

#node-name resource1 resource2 ... resourceN

#just.linux-ha.org    135.9.216.110

#just.linux-ha.org    135.9.216.110 http

#just.linux-ha.org    135.9.216.110 135.9.215.111 135.9.216.112 httpd

#just.linux-ha.org    135.9.216.3/28/eth0/135.9.216.12 httpd

#node1  10.0.0.170 Filesystem::/dev/sda1::/data1::ext2

data-1-1 IPaddr::192.168.1.57/24/eth0

data-1-2 IPaddr::192.168.1.58/24/eth0

 

 

 

 

 

5、认证文件(/​​etc​​/ha.d/authkeys)

 

authkeys文件用于设定heartbeat的认证方式,共有三种可用的认证方式:crc、md5和sha1,三种认证方式的​​安全​​​性依次提高,但是占用的系统资源也依次增加。如果heartbeat集群运行在安全的网络上,可以使用crc方式,如果HA每个节点的硬件配置很高,建议使用sha1,这种认证方式安全级别最高,如果是处于​​网络安全​​和系统资源之间,可以使用md5认证方式。这里我们使用crc认证方式,设置如下:

 

 

auth 1

1 ​​crc​

#2 sha1 sha1_any_password

#3 md5 md5_any_password

 

 

需要说明的一点是:无论auth后面指定的是什么数字,在下一行必须作为关键字再次出现,例如指定了“auth 6”,下面一定要有一行“6 ​​认证​​​类型”。
最后确保这个文件的权限是600(即-rw-------)。

 

 

#

#       Authentication file.  Must be mode 600 # 此处提到了authkey全选必须为600

#

#

#       Must have exactly one auth directive at the front.

#       auth send authentication using this method-id

#

#       Then, list the method and key that go with that method-id

#

#       Available methods: crc sha1, md5.  Crc doesn't need/want a key.  # 可以设置的认证方法

#

#       You normally only have one authentication method-id listed in this file

#

#       Put more than one to make a smooth transition when changing auth

#       methods and/or keys.

#

#

#       sha1 is believed to be the "best", md5 next best. # sha1的方式是“最好的”,咋们就用最好的。

#

#       crc adds no security, except from packet corruption.

#                Use only on physically secure networks.

#

#auth 1

#1 crc

#2 sha1 HI!

#3 md5 Hello!