LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1562|回复: 0

Linux heartbeat 建立

[复制链接]
发表于 2006-12-11 13:23:06 | 显示全部楼层 |阅读模式
HA解决方案

如图所示,两台服务器(称为左、右)每台服务器有两个网卡,分别用于接入以太网和左右之间的互联,他们的IP地址配置如图所示。其中互连的红线是心跳线,用于两机间的通信。
基于以上的拓扑机构,有两种方案可以尝试:
方案一:使用现成的软件Heartbeat来配置两台服务器即可,具体方法可以参考《用Heartbeat在Linux搭建高可用(High-Availability)的集群服务》。
方案二:自己编写软件。左机作为主机工作,右机作为从机。左右两机通过心跳线通信,通信时相互报告本级的状态是否正常,互相监测对方是否正常工作。如果主机监测到从机状态不正常,则发出信号(写入log文件)通知管理员,若从机监测到主机状态不正常,则发出信号(写入log文件)通知管理员,同时启动工作(此时右机已变为主机),并对本地的配置文件进行备份,以便左机恢复时将配置文件等数据传给左机,做到数据同步。
从机启动的标准是:1.收到主机的状态不正常报告;2.连续多个事件间隔内没有收到主机的包。以上两个事件有一个发生时从机就接管主机,开始工作。
一些后期的可以考虑改进的地方:
a.        两机间采用多个通信路径,减少从机误判的几率。
b.        对于本机的状态监测,要求是使用得资源要尽可能的少,判断准确。
c.        检查两机间有没有死锁的存在
e2fsprogs&libnet安装:下载软件包,./configure; make; make install或者阅读READ/INSTALL等文件
heartbeat安装:下载软件包,./ConfigureMe configure; make; make install
由于使用 heartbeat已经满足了我们的要求,因此决定不再自己编写软件,专而使用heartbeat架构的linux集成。由于要使用共享的磁盘阵列,所以除了学要heartbeat外还需要e2fsprogs、libnet。这两个软件都可以在网上下到。
heartbeat启动与关闭:/etc/init.d/beartbeat start/stop
Heartbeat的配置文件主要有三个:ha.cf、haresources、authkeys

路径::/etc/ha.d/ha.cf(要自建)

ha.cf:
logfile /var/log/ha-log         //指定log文件
bcast eth0                                //指明心跳方式使用以太广播方式,并且是在eth0接口上进行广播,也可以用串口(要使用别的命令)
keepalive 2                        //指明心跳时间为2秒(即每两秒钟在eth0上发送一次广播)。
warntime 10                        //指明心跳延迟的时间为十秒。当10秒钟内备份机不能联系上主机(当前活动的服务器,即无心跳信号),就会往日志中写入一个警告日志,但此时不会切换服务。
deadtime 30                        //定在30秒内没有心跳信号,则立即切换服务。
initdead 120                        //网络需要一些时间在重启机器后重启网络,该参数就处理这种情况,它至少是deadtime的两倍
udpport 694                        //使用端口694进行bcast、ucast通信,这是默认的。
auto_failback off                //指定在主机好了之后是否把服务切换到主机上,还是在从机坏了之后再把服务切换到主机上。
node pld                                //机器的名字。uname -n
node pldsec                        //同上
respawn root /usr/lib/heartbeat/ccm                //指明和heartbeat一起启动、关闭的进程
respawn root /usr/lib/heartbeat/ipfail        //同上
ping 192.168.1.13 192.168.1.12                //指定ping节点。这些节点不是集群的的节点,只是为像ipfail这样的模块检查网络连接是否通畅。

路径:,/etc/ha.d/haresources
haresources:
pld 192.168.1.10/24/192.168.1.255 pldlogd pldsrvd pldsupd pldwebd(没有用共享磁盘)

//pld 192.168.1.10/24/192.168.1.255 Filesystem::/dev/sdb1::/ha::ext3 pldlogd pldsrvd pldsupd pldwebd
//设置pld为主节点,集群服务器的ip地址为192.168.1.10,netmask 为255.255.255. 0,broadcast为192.168.1.255,集群的服务有httpd,还有共享磁盘/dev/sdb1。该文件只有一行,其含义就是,当主节点pld宕机时,自动启用备用节点pldsec来提供服务,在切换到pldsec上时,自动启动pldlogd、 pldsrvd、 pldsupd、 pldwebd和smb服务,同时,将/dev/sdb1挂接到/ha。


authkeys:
auth 1
1 sha1 pld-just-a-test
//该文件主要是用于集群中两个节点的认证,采用的算法和密钥(如果有的话)在集群中节点上必须相同,目前提供了3种算法:md5,sha1和crc。其中crc不能够提供认证,它只能够用于校验数据包是否损坏,而sha1,md5需要一个密钥来进行认证,从资源消耗的角度来讲,md5消耗的比较多,sha1次之,因此建议一般使用sha1算法。该文件的属性必须为600,否则heartbeat启动将失败。具体命令为:chmod 600 authkeys

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表