CentOS 5.5 高可用群集配置(2)

CentOS5.5 安装 HeartBeat2.1.3 后,在 /usr/share/doc/heartbeat-2.1.3 下有有关的配置文件模板,我们把它们拷贝到 /etc/ha.d/ 目录下:

#cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/
    #cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/
    #cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/

进入群集配置目录:
    #cd /etc/ha.d/

2,编辑 authkeys 文件
    # gedit authkeys

服务器一、二相同。内容如下,1 、2、3 表示认证算法选择,这里选择了crc 算法。1 、2、3 不是固定的,只要前后对应即可:
    auth 1
    1 crc
    #2 sha1 HI! (注释掉)
    #3 md5 Hello! (注释掉)

还必须将 authkeys 文件权限设置为 600(安全考虑):
    #chmod 600 authkeys

authkeys 文件权限不够,当启动 heartbeat 服务时,会报错:
    ERROR: Bad permissions on keyfile [/etc/ha.d/authkeys], 600 recommended.
    ERROR: Authentication configuration error.
    ERROR: Configuration error, heartbeat not started.

3,编辑 haresources:
    # gedit haresources

服务器一、二相同。内容如下:
    node1 IPaddr::10.0.0.60 httpd

第一列为默认主机;
    第二列为配置的虚拟 IP;
    第三列为需要实现高可用性的服务(启动脚本在 /etc/init.d 内);
    如果没有服务则默认全部已运行服务,指定服务在备机接管之前是不会启动的。

该行指定在“心跳”服务启动时,节点 node1 得到 IP 地址 10.0.0.60,并启动 Apache 服务。在停止时,首先停止 Apache,然后释放 IP 地址。

4,编辑 ha.cf:
    # gedit ha.cf

服务器一(node1)内容为:
    debugfile /var/log/ha-debug
    logfile /var/log/ha-log
    logfacility local0
    keepalive 2
    deadtime 60
    warntime 4
    initdead 120
    udpport 694
    #bcast eth0
    ucast eth1 172.16.0.51
    #mcast eth0 225.0.0.1 694 1 0
    auto_failback on
    node node1
    node node2
    ping 10.0.0.2
    respawn hacluster /usr/lib/heartbeat/ipfail
    apiauth ipfail gid=haclient uid=hacluster

服务器二(node2)的 ucast eth1 172.16.0.51 语句改为:
    ucast eth1 172.16.0.50

解释:

debugfile /var/log/ha-debug
    日志文件

logfile /var/log/ha-log
    日志文件

logfacility  local0
    登陆/调试日志同时记录给syslog

serial /dev/ttyS0
    使用串口heartbeat-如果不使用串口heartbeat,则必须使用其他的介质,如bcast(以太网)heartbeat。用适当的设备文件代替/dev/ttyS0。

bcast eth1
    表示在eth1接口上使用来发送“心跳”信息,建议在副节点不只一台时使用(将eth1替换为eth0,eth2,或者您使用的任何接口)。

ucast eth1 10.0.0.102
    采用网卡eth1 的udp 单播来通知“心跳”,ip 应为对方IP ,在主机2 上设置为ucast eth1 10.0.0.101

#mcast eth0 225.0.0.1 694 1 0
    采用udp 多播播来通知“心跳”,建议在副节点不只一台时使用, 广播,单播,多播,以上三种任选其一即可

keepalive 2
    设定heartbeat之间的检测时间间隔为2秒。

warntime 10
    在日志中发出“late heartbeat“警告之前等待的时间,单位为秒。

deadtime 30
    在30秒后宣布节点死亡,主从机切换。

initdead 120
    在某些配置下,重启后网络需要一些时间才能正常工作。这个单独的”deadtime”选项可以处理这种情况。它的取值至少应该为通常deadtime的两倍。

baud 19200
    波特率,串口通信的速度。

udpport 694
    使用端口694进行bcast和ucast通信。这是默认的,并且在IANA官方注册的端口号。

auto_failback on
    该选项是必须配置的。对于那些熟悉Tru64 Unix的人来说,heartbeat的工作方式类似于“favored member“模式。在failover之前,haresources文件中列出的主节点掌握所有的资源,之后从节点接管这些资源。当 auto_failback设置为on时,一旦主节点重新恢复联机,将从从节点取回所有资源。若该选项设置为off,主节点便不能重新获得资源。该选项与废弃的nice_failback选项类似。如果要从一个nice_failback设置为off的集群升级到这个或更新的版本,需要特别注意一些事项以防止flash cut。请参阅FAQ中关于如何处理这类情况的章节。

node primary.mydomain.com
    该选项是必须配置的。集群中机器的主机名,与“uname –n”的输出相同。

node backup.mydomain.com
    该选项是必须配置的。同上。

ping 192.168.0.1
    用来验证外网线连通的ip(推荐上级路由器,还有 ping_group, hbaping 等类似配置可选)。

respawn
    该选项是可选配置的:列出将要执行和监控的命令。例如:要执行ccm守护进程,则要添加如下的内容:

respawn hacluster /usr/lib/heartbeat/ccm
    使得Heartbeat以userid(在本例中为hacluster)的身份来执行该进程并监视该进程的执行情况,如果其死亡便重启之。对于 ipfail,则应该是:

respawn hacluster /usr/lib/heartbeat/ipfail
    注意:如果结束进程的退出代码为100,则不会重启该进程。

apiauth ipfail gid=haclient uid=hacluster
    网络检测补救插件,用来实现 auto_failback 功能的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wygyfd.html