Linux下的高可用软件heartbeat
下面先介绍一下这次实验的软硬件情况:
A. 硬件
服务器:2台, 都具有双网卡,一块用于连接到网络,一块用于双机互连。
心跳线:特殊的串口线,用于串口信息的检测。
网线:交叉网线,用于双机互连的。支持heartbeat的UDP协议通讯。
B. 软件
操作系统:RedHat 9.0
服务:Apache (两台服务器上的apache设置和内容完全一致)
HA软件:heartbeat 1.0.4 for RedHat 9.0
C. 网络信息
服务器1
主机名:ha1.bogus.sh.cn
eth0: 192.168.2.1(接入LAN)
eth1: 10.0.0.1(接心跳线)
服务器2
主机名:ha2.bogus.sh.cn
eth0: 192.168.2.2(接入LAN)
eth1: 10.0.0.2(接心跳线)
对外服务的IP:192.168.1.3
下面是具体的安装过程:
1、安装heartbeat
我们选择heartbeat1.0.4,它是2003/10/14更新的,也是当前最新的稳定版本。
另外还有heartbeat-beta1.1.3,不过如果你是第一次安装,没有需要和以前的版本配合的话,就不要选这个。
因为我们使用的操作系统是Red Hat 9.0,所以我们直接用相应版本的rpm包来安装。
heartbeat 1.0.4 for RedHat 9.0主要包有以下4个:
heartbeat-1.0.4-2.rh.9.i386.rpm
heartbeat-ldirectord-1.0.4-2.rh.9.i386.rpm
heartbeat-pils-1.0.4-2.rh.9.i386.rpm
heartbeat-stonith-1.0.4-2.rh.9.i386.rpm
不过这些包都依赖其它的一些包,它们可以在这里中找到:
ipvsadm-1.21-1.rh.9.um.1.i386.rpm
libnet-1.1.0-1.rh.9.um.1.i386.rpm
perl-Authen-SASL-2.03-1.rh.9.um.1.noarch.rpm
perl-Convert-ASN1-0.16-2.rh.9.um.1.noarch.rpm
perl-IO-Socket-SSL-0.92-1.rh.9.um.1.noarch.rpm
perl-ldap-0.2701-1.rh.9.um.1.noarch.rpm
perl-Mail-IMAPClient-2.2.7-1.rh.9.um.1.noarch.rpm
perl-Net-SSLeay-1.23-1.rh.9.um.1.i386.rpm
perl-XML-NamespaceSupport-1.08-1.rh.9.um.1.noarch.rpm
perl-XML-SAX-0.12-1.rh.9.um.1.noarch.rpm
下面给出笔者的安装顺序:
rpm -ivh heartbeat-pils-1.0.4-2.rh.9.i386.rpm
rpm -ivh heartbeat-stonith-1.0.4-2.rh.9.i386.rpm
rpm -ivh heartbeat-1.0.4-2.rh.9.i386.rpm
rpm -ivh ipvsadm-1.21-1.rh.9.um.1.i386.rpm
rpm -ivh perl-Net-SSLeay-1.23-1.rh.9.um.1.i386.rpm
rpm -ivh perl-IO-Socket-SSL-0.92-1.rh.9.um.1.noarch.rpm
rpm -ivh perl-Convert-ASN1-0.16-2.rh.9.um.1.noarch.rpm
rpm -ivh perl-XML-NamespaceSupport-1.08-1.rh.9.um.1.noarch.rpm
rpm -ivh perl-XML-SAX-0.12-1.rh.9.um.1.noarch.rpm
rpm -ivh --nodeps perl-Authen-SASL-2.03-1.rh.9.um.1.noarch.rpm
rpm -ivh --nodeps perl-Mail-IMAPClient-2.2.7-1.rh.9.um.1.noarch.rpm
(注:以上两个包还有依赖关系,可以从cpan.org上找到tar包安装,然后就用--nodeps强行安装)
rpm -ivh perl-ldap-0.2701-1.rh.9.um.1.noarch.rpm
rpm -ivh heartbeat-ldirectord-1.0.4-2.rh.9.i386.rpm
2、配置heartbeat
heartbeat的配置有以下三个文件,它们是:
ha.cf 主要配置文件
haresources 资源配置文件
authkeys 关于认证信息
前两个文件应该是所有人都可读的,而authkeys是只有root才可读可写的。
2.1. /etc/hd.d/ha.cf
这个文件主要负责定义媒体和设置参数,是heartbeat的主要配置文件。这里我们的ha.cf文件内容如下:
node ha1.bogus.sh.cn
node ha2.bogus.sh.cn
serial /dev/ttyS0
baud 19200
deadtime 5
keepalive 1
initdead 30
udp eth1
udpport 694
下面是对ha.cf的相关解释:
keepalive 1
该参数指定两次 heartbeat 之间的秒数。在本实验中,每秒一次 heartbeat。
deadtime 5
该参数指定等待声明主机死机的时间。指定 10 表示 heartbeat 将在节点停止响应 10 秒之后启动故障转移。
initdead 30
该参数指定heartbeat首次启动时deadtime应该为多久。因为当heartbeat在引导时启动时,还需要给网络启动留出时间,所以这个时间要设得长一些。
udpport 694
该参数指定heartbeat发送UDP包时所使用的端口。
udp eth1
该参数指定在哪个接口上发送heartbeat。
node ha1.bogus.sh.cn与node ha2.bogus.sh.cn
该参数告诉 heartbeat 使用哪些主机。节点名的正确性是非常重要的。节点名应与命令uname -n所显示的名称一致。
serial /dev/ttyS0
该参数指定在心跳线接在哪一个串口上。
baud 19200
该参数串口通讯的波特率。
2.2. /etc/ha.d/haresources
这个文件指定同步的服务以及主机是什么。两台机器上的这个文件一定要一致。
我们设定的是高可用服务是Apache,它对外的IP是192.168.2.3,所以haresources的内容应该如下:
ha1.bogus.sh.cn 192.168.2.3 httpd
其中httpd是启动脚本的名称。heartbeat会先从/etc/ha.d/resource.d和/etc/rc.d/init.d的目录中去寻找httpd这个启动脚本,
这里因为我们采用的apache是Redhat自带的apache,在/etc/rc.d/下面就有一个httpd的启动脚本,
所以heartbeat就可以利用httpd start/stop来启动或停止apache服务了。
2.3. /etc/ha.d/authkeys
有三种认证方式:crc, md5, and sha1. sha1是最难破解的,md5其次,crc最次。
这个文件的格式如下:
auth
[]
这里我们的authkeys文件内容如下:
auth 1
1 sha1 sha1 myAuthkey
然后将其权限设为600,以提高安全性。注意:如果不做这一步,heartbeat可能无法正常运作。
chmod 600 authkeys
2.4 另一台服务器的配置
对于另一台服务器就也重复做以上的设定,如:
vi /etc/ha.d/ha.cf
vi /etc/ha.d/haresources
vi /etc/ha.d/authkeys
chmod 600 authkeys
在两台机器上的haresources和authkeys应该完全相同。ha.cf也应该相同,除非你的心跳线是连接不同的串口的或者交叉网线连接的网卡不同。
3、启动heartbeat
首先关闭两台机器的高可用服务,因为heartbeat 启动时会自动服务打开,这里的高可用服务是apache,我们可以用以下命令来关闭它们:
/etc/rc.d/init.d/httpd stop
然后,可以通过以下命令先后在两台机器上启动heartbeat:
/etc/rc.d/init.d/heartbeat start
用以下命令可以查看到heartbeat在运行中的log:
tail -f /var/log/ha-log
用以下命令可以关闭heartbeat服务
/etc/rc.d/init.d/heartbeat stop
4、测试
1。test serial 一端用 cat 另一端用 echo "hello" > /dev/ttys0
2。停用由HA管理的服务
chkconfig --level 2345 off
HA(高可用性)方案: 心跳线是作什么用的? 如何配置?
|
环境 |
环境:p系列硬件 产品:RS/6000, p系列 平台:p 操作系统: AIX |
问题 |
HA(高可用性)方案: 心跳线是作什么用的? 如何配置? |
解答 |
在HACMP方案中, 心跳线用于连接互为备份的主机串口, 用来互相侦测对方的工作状态. 每台参与HA的主机应配置"心跳线" 即串口线:
F/C 3124 Serial to Serial Port Cable(drawer to drawer) F/C 3125 Serial to Serial Port Cable (rack to rack)
* 心跳线的数量应为HA节点数减1。 如果HA为一备多方案,则心跳线的连接应是以备份机为中心的星形连接,此时应考虑在备份机上配置F/C 2943 8口串口卡(PCI机型),以弥补串口的不足。
* Sxx机型或SP节点(332MHz Wide Node)或p670/p690做HA 时,由于主板未集成可用于心跳串口, 必须配置F/C 2943 8Port Async, EIA 232/422. Adapter, 用于连接心跳线。
* 对于p630, p650, 等, 需要选购 F/C 3925 转接头, 将主机上的集成串口(9针)转接到串口线端口(25针)上.
如果由于某种原因, 节点之间无法连接串口线, 也可考虑各用一块单独的网卡来跑心跳. 把这些网卡的IP地址配置在一个单独的网段中就可以了. 最简单的方法是利用主板集成的以太网口, 用对绞线连接. |