分享自己做的LINUX-HA推荐

Linux下高可用集群方案很多,本文介绍的是性价比比较高的一种: 使用Heartbeat 2.0配置Linux高可用性集群。 一、 准备工作 你首先需要两台电脑,这两台电脑并不需要有相同的硬件(或者内存大小等),但如果相同的话,当某个部件出现故障时会容易处理得多。接下来您需要决定如何部署。你的集群是通过Heartbeat 软件产生在两台电脑之间心跳信号来建立的。为了传输心跳信号,需要在节点之间存在一条或多条介质通路(串口线通过modem电线,以太网通过交叉线,等等)。现在可以开始配置硬件了。既然想要获得高可用性(HA),那么您很可能希望避免单点失效。在本例中,可能是您的null modem线/串口,或者网卡(NIC)/ 交叉线。因此便需要决定是否希望为每个节点添加第二条串口null modem连线或者第二条NIC/交叉线连接。我使用一个串口和一块额外的网卡来作为heartbeat的通路,这是因为我只有一条null modem线和一块多余的网卡,并且认为有两种介质类型传输heartbeat信号比较好。硬件配置完成之后,便需要安装操作系统以及配置网络(我在本文中使用的是RedHat)。假设您有两块网卡,那么有一块应该配置用于常规网络用途,另一块作为集群节点之间的专用网络连接(通过交叉线)。例如,假设集群节点有如表-1下的IP地址:群集节点的IP地址

安装软件包heartbeat-2.1.3-3.el5.centos.i386.rpm perl-Digest-SHA1-2.11-1.2.1.i386.rpmheartbeat-devel-2.1.3-3.el5.centos.i386.rpm perl-IO-Socket-SSL-1.01-1.fc6.noarch.rpmheartbeat-gui-2.1.3-3.el5.centos.i386.rpm perl-LDAP-0.33-3.fc6.noarch.rpmheartbeat-ldirectord-2.1.3-3.el5.centos.i386.rpmperl-Mail-POP3Client-2.17-1.el5.centos.noarch.rpmheartbeat-pils-2.1.3-3.el5.centos.i386.rpm perl-MailTools-1.77-1.el5.centos.noarch.rpmheartbeat-stonith-2.1.3-3.el5.centos.i386.rpm perl-Net-IMAP-Simple-1.17-1.el5.centos.noarch.rpmlibnet-1.1.2.1-2.rf.i386.rpm perl-Net-IMAP-Simple-SSL-1.3-1.el5.centos.noarch.rpmperl-Authen-Radius-0.13-1.el5.centos.noarch.rpm perl-Net-SSLeay-1.30-4.fc6.i386.rpmperl-Convert-ASN1-0.20-1.1.noarch.rpm perl-XML-NamespaceSupport-1.09-1.2.1.noarch.rpmperl-Digest-HMAC-1.01-15.noarch.rpmperl-5.8.8-10.el5_0.2.i386.rpm或使用源码进行安装,下面以源码安装进行配置[root@mxl] tar -zxvf libnet.tar.gz cd libnet./configureMake install[root@mxl]tar -zxvf heartbeat-2.1.3.tar.gz./ConfigureMe configure –enable-mgmt –with-ccmuser-name=haclusterMake install#–enable-mgmt 表示支持图形管理工具配置HA需要三个文件:ha.cf haresources authkeys 默认/etc/ha.d 下没有这三个文件,我们需要找到这三个文件然后,拷贝到其目录下[root@mxl heartbeat-2.1.3]# pwd/usr/share/doc/heartbeat-2.1.3[root@mxl heartbeat-2.1.3]# lsapphbd.cf faqntips.html haresources Requirements.htmlauthkeys faqntips.txt hb_report.html Requirements.txtAUTHORS GettingStarted.htmlhb_report.txt rsync.htmlChangeLog GettingStarted.txt heartbeat_api.htmlrsync.txtCOPYING ha.cf heartbeat_api.txt startstopCOPYING.LGPL HardwareGuide.html logd.cfDirectoryMap.txtHardwareGuide.txt README[root@mxl heartbeat-2.1.3]# cpha.cf authkeys haresources /etc/ha.d以上的工作完成之后我们就需要对文件进行配置以实现双机的效果 配置hearbeat主文件ha.cf#logfile /var/log/ha-log 日志存放位置#keepalive 2 指明心跳时间为秒#deadtime 30 指定在30秒内没有心跳信号,会立即切换服务#warntime 10 指明心跳延迟时间为10秒#initdead 120 在某些配置下,重启后网络需要一些时间才能正常工作。这个单独的 deadtime 选项可以处理这种情况。它的取值至少应该为通常deadtime的两倍#udpport 694 使用端口694进行bcast和ucast通信。这是默认的,并且在IANA官方注册的端口号。#baud 19200波特率,串口通信的速度。#bcasteth1 # Linux 表示在eth1接口上使用广播heartbeat(将eth1替换为eth0,eth2,或者您使用的任何接口)。#auto_failback on 该选项是必须配置的。对于那些熟悉Tru64 Unix的人来说,heartbeat的工作方式类似于 favored member 模式。在failover之前,haresources文件中列出的主节点掌握所有的资源,之后从节点接管这些资源。当auto_failback设置为on时,一旦主节点重新恢复联机,将从从节点取回所有资源。若该选项设置为off,主节点便不能重新获得资源。该选项与废弃的nice_failback选项类似。如果要从一个nice_failback设置为off的集群升级到这个或更新的版本,需要特别注意一些事项以防止flash cut。#node ken3 该选项是必须配置的。集群中机器的主机名,与 uname n 的输出相同。#node kathy#ping 10.10.10.254Ping 192.168.0.1 ping 可以使用 ipfail插件的用途是检测网络故障a.选择好的候选ping节点 这步很重要。你的选择越好,则得到的HA集群便越强壮。选择固定的交换机路由器等是一个好主意。不要选择HA集群中的任一个成员,也不要选择其他人的工作站。选择能反映您HA节点的连接状况的ping节点也很重要。如果您要监视两个接口的连接情况,明智的做法是为每个接口选择一个只对该接口可用的ping节点。 b.设置auto_failback为on或者off 只有当Heartbeat被配置为非legacy时ipfail才会起作用。在ha.cf文件中,如下将auto_failback设置为on或者off: auto_failback on 或者 auto_failback off c.配置ha.cf使之启动ipfail。 向ha.cf中增加如下一行(假设您在编译时的PREFIX为/usr): respawn hacluster /usr/lib/heartbeat/ipfail d.向ha.cf中加入ping节点: ping pnode1 pnode2 pnodeN 将pnode1,pnode2, pnodeN等替换为您ping节点的IP地址。 确保向集群中各个成员的ha.cf中加入以上相同的配置指令。 e. 修改Heartbeat配置文件 如果修改了配置文件etc/ha.d/ authkeys或者 /etc/ha.d/ha.cf后要使用下面的命令重新加载服务。 #/etc/init.d/heartbeat reload 或者 #service heartbeat reload#respawn userid /path/name/to/run#respawn hacluster /usr/lib/heartbeat/ipfail该选项是可选配置的:列出将要执行和监控的命令。例如:要执行ccm守护进程,则要添加如下的内容:respawn hacluster /usr/lib/heartbeat/ccm使得Heartbeat以userid(在本例中为hacluster)的身份来执行该进程并监视该进程的执行情况,如果其死亡便重启之。对于ipfail,则应该是:respawn hacluster /usr/lib/heartbeat/ipfail注意:如果结束进程的退出代码为100,则不会重启该进程。 配置[root@mxl ha.d]# vi authkeys 文件#auth 1#1 crc#2 sha1 HI!#3 md5 Hello!需要配置的第三个文件authkeys决定了您的认证密钥。共有三种认证方式:crc,md5,和sha1。您可能会问: 我应该用哪个方法呢? 简而言之:如果您的Heartbeat运行于安全网络之上,如本例中的交叉线,可以使用crc,从资源的角度来看,这是代价最低的方法。如果网络并不安全,但您也希望降低CPU使用,则使用md5。最后,如果您想得到最好的认证,而不考虑CPU使用情况,则使用sha1,它在三者之中最难破解。 文件格式如下: auth number number authmethod [ authkey ] 因此,对于sha1,示例的/etc/ha.d/authkeys可能是 auth 11 sha1 key-for-sha1-any-text-you-want1 md5key-for-sha1-any-text-you-want 对于md5,只要将上面内容中的sha1换成md5就可以了。 对于crc,可作如下配置: auth 2 2 crc 不论您在关键字auth后面指定的是什么索引值,在后面必须要作为键值再次出现。如果您指定 auth 4 ,则在后面一定要有一行的内容为配置完成后文件的权限设置(600)[root@mxl ha.d]# chmod 600 authkeys 配置[root@mxl ha.d]# vi haresources 文件#node-name resource1 resource2 … resourceNnode mxl.com#just.linux-ha.org 135.9.216.110 135.9.215.111 135.9.216.112 httpdmxl.com 10.1.1.1 10.1.1.2httpd smb把配置好的文件拷贝到其它的节点上即可 一个背包,几本书,所有喜欢的歌,

分享自己做的LINUX-HA推荐

相关文章:

你感兴趣的文章:

标签云: