发布时间:2014-09-05 17:13:21作者:知识屋
1 前言
HeartBeat用于搭建双机热备环境,可以通过专门的心跳线来连接双机,也可以通过普通的网线来连接。
当然在linux 下面除了heartbeat还有很多,比如redhat的cluster软件等等。下面将简单介绍heartbeat的安装和配置。
2 安装
2.1 准备
本试验环境共有2个vmware虚拟主机,其中固定IP分别为:
dingwy-as4-vmware-nod1 192.168.0.128
dingwy-as4-vmware-nod2 192.168.0.130
浮动ip为:192.168.0.129
如果/etc/hosts中没有配置的话, 则需要先配置/etc/hosts文件
关闭iptables
2.2 创建用户和用户组
heartbeat需要haclient用户组和hacluster用户。
两个节点做同样的操作,并保证haclient和hacluster的ID一样。
groupadd haclient
useradd -g haclient hacluster
2.3 安装
可以直接下载rpm包,或者自己下载源码包进行编译,在这里,我采用自己编译源码的方式。安装heartbeat前,需要先安装libnet包。
tar zxvf heartbeat-2.1.3.tar.gz
rpm -ivh libnet-1.1.2.1-2.2.el4.rf.x86_64.rpm
cd heartbeat-2.1.3
./configure
make
make install
同样地,在另一个主机上也是这么安装。
libnet包可以在html/search.php">http://rpmfind.net/linux/rpm2html/search.php这里搜索到。
3 配置
heartbeat有三个配置文件:
ha.cf
authkyes
haresources
这些文件在每台机器都要保持一致.下面将一一介绍.
cp /usr/local/share/doc/heartbeat-2.1.3/ha.cf /usr/local/etc/ha.d
cp /usr/local/share/doc/heartbeat-2.1.3/haresources /usr/local/etc/ha.d
cp /usr/local/share/doc/heartbeat-2.1.3/authkeys /usr/local/etc/ha.d
主备服务器的ha.cf, authkyes, haresources完全一样即可。
3.1 编辑hertbeat主配置文件ha.cf,2个主机上的内容一样。
以下是需要打开的配置,ha.cf里面有详细说明。
vi /usr/local/etc/ha.d/ha.cf
## ha的日志文件记录位置。如没有该目录,则需要手动添加
logfile /var/log/ha-log #File to write other messages to
logfacility local0 #这个是设置heartbeat的日志,这里是用的系统日志
##设定心跳(监测)时间时间为2秒
keepalive 2 #多长时间检测一次
warntime 5 #连续多长时间联系不上后开始警告提示
deadtime 20 #连续多长时间联系不上后认为对方挂掉了(单位是妙)
initdead 120 #这里主要是给重启后预留的一段忽略时间段(比如:重启后启动网络等,如果在网络还没有通,keepalive检测肯定通不过,但这时候并不能切换)
#采用bond0的udp广播用来发送心跳信息
bcast bond0
#采用网卡bond0的udp单播来通知心跳,ip应为对方IP,建议采用单播。当一个网段有多台这样cluster话,则一定要采用单播,否则每组cluster都会看到对方的节点,从而报错。
#ucast bond0 192.168.0.128
##使用udp端口694 进行心跳监测
udpport 694
auto_failback off #恢复正常后是否需要再自动切换回来,一般都设为off。
##节点1,必须要与 uname -n 指令得到的结果一致。
node dingwy-as4-vmware-nod1
##节点2
node dingwy-as4-vmware-nod2
##通过ping 网关来监测心跳是否正常
ping 192.168.0.2
hopfudge 1
deadping 5
#指定和heartbeat一起启动、关闭的进程#respawn hacluster /usr/local/lib64/heartbeat/ipfail#apiauth ipfail gid=haclient uid=hacluster
#是否采用v2 style模式,在三节点以上时一定要打开
#crm on
从heartbeat的官方文档来看,目前的ping节点还没什么实际用途,只是用于检测节点的连通性,并不作为节点切换的真正依据。在将来的新版本中也许会这么做。
3.2 编辑双机互联验证文件:authkeys
vi /usr/local/etc/ha.d/authkeys
auth 1
1 crc
chmod 600 /usr/local/etc/ha.d/authkeys
注意authkeys的权限一定要是600.
3.3 编辑集群资源文件:haresources
配置好ha.cf文件之后,便是haresources文件。该文件列出集群所提供的服务以及服务的默认所有者。 注意:两个集群节点上的该文件必须相同。集群的IP地址是该选项是必须配置的,不能在haresources文件以外配置该地址, haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等。其配置语句格式如下:
node-name network-config <resource-group>
vi /usr/local/etc/ha.d/haresources
dingwy-as4-vmware-nod1 192.168.0.129 oracle10g
其中node-name指定双机系统的主节点,取值必须匹配ha.cf文件中node选项设置的主机名中的一个,node选项设置的另一个主机名成为从节点。network-config用于网络设置,包括指定集群IP、子网掩码、广播地址等。resource-group用于设置heartbeat启动的服务,该服务最终由双机系统通过集群IP对外提供。在本文中我们假设要配置的HA服务为Apache和Samba。
在haresources文件中需要如下内容:
primary.mydomain.com 192.168.85.3 httpd smb
/usr/local/lib/heartbeat/haresources2cib.py -c /usr/local/etc/ha.d/haresources
该行指定在启动时,节点linuxha1得到IP地址192.168.85.3,并启动Apache和Samba。在停止时,Heartbeat将首先停止smb,然后停止Apache,最后释放IP地址192.168.85.3。这里假设命令“uname n”的输出为“primary.mydomain.com”-如果输出为“primary”,便应使用“primary”。
正确配置好haresources文件之后,将ha.cf和haresource拷贝到/etc/ha.d目录。
如何配置,可以参见haresources,里面也有详细的说明。
有几个注意事项:
1).资源组的第一列是我们在ha.cf配置文件中的node之一,而且应该是当前准备作为primary节点的那一个node。
2).每一行代表一个资源组,如果一行写不下可以用" "换行
3).资源组启动顺序是从左往右,关闭的顺序是从右往左
4).脚本的参数通过::来分隔和传递
5).一个资源组里面不同资源之间以空格分隔
6).不同的资源组之间没有必然关系
7).每个资源都是一个角本,可以是在/etc/init.d目录下面的,也可以是/usr/local/etc/ha.d/resource.d目录下面的角本。这些角本必须要支持xxx start;xxx stop;模式。
8).关于service IP的资源设置格式详见haresources文件。
9).如果mysql是编译安装的话, 则需要修改/etc/init.d/mysql文件中的basedir和datadir两个参数
3.4 主备服务器hosts
主机hosts文件:
vi /etc/hosts
192.168.0.128 dingwy-as4-vmware-nod1 localhost.localdomain localhost
192.168.0.130 dingwy-as4-vmware-nod2
备机hosts文件:
vi /etc/hosts
192.168.0.130 dingwy-as4-vmware-nod2 localhost.localdomain localhost
192.168.0.128 dingwy-as4-vmware-nod1
4 切换测试
测试切换不外乎以下几种:
1).手工调用heartbeat的节点切换脚本
2).拔掉网线,测试在primary节点的网络断开后的切换情况,通过测试,在拔掉网线后,当主节点发现无法和standby节点无法通信后,会在log中记录warn信息,如果延续时间达到在ha.cf中设定的时长后,会开始释放资源,standby节点发现无法和主节点通信一段时间(ha.cf设定)后,开始尝试启动资源并将自己active成primary节点。切换过程除ha.cf中设定的时长之外的时间段同样非常短。这里容易出现cluster脑分裂的问题。如果采用双master的话,就不存在这个问题。
3). shutdown primary主机,测试是否能够正常切换。
4). 主节点机器掉电,是否能够正常切换。
5 heartbeat管理
启动和关闭heartbeat的方法:
/etc/init.d/hearbeat start或service heartbeat start
/etc/init.d/hearbeat stop或service heartbeat stop
手工切换:
/usr/local/share/heartbeat/hb_standby
2009/06/03_00:35:00 Going standby [all].
service heartbeat status
heartbeat OK [pid 13763 et al] is running on alsme_probe3 [alsme_probe3]...
查看heartbeat状态
service heartbeat status
heartbeat OK [pid 13763 et al] is running on alsme_probe3 [alsme_probe3]...
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能