在微软的MSDN网站上看到一篇理论文章《Failover Cluster(故障转移群集) 》,文中的故障转移群集解决方案,有点类似两台 F5 BIG-IP 负载均衡交换机通过串口线进行心跳检测的互备模式,对我来说很有参考价值。

  最近打算写一套基于Linux系统的实际应用方案,在两台Web服务器之间实现故障转移:用户实际访问的IP地址是“x.x.1.10”,两台服务器自动切换用Linux的IP别名来实现,当主服务器“x.x.1.1”正常时,主服务器的IP别名“x.x.1.10”对外提供服务,当两台服务器之间的心跳检测程序发现主服务器“x.x.1.1”发生故障或死机时,会停掉主服务器“x.x.1.1”的IP别名“x.x.1.10”(主服务器死机时该IP别名会自动消失),而由备用服务器“x.x.1.2”启用相同的IP别名“x.x.1.10”来接替主服务器提供服务;“信号”打算自己写一个心跳检测程序来实现;共享数据部分还没想好用什么方式来实现,NFS吗?不知道NFS在高负载读写下的性能如何?

  附:故障转移群集解决方案
  点击在新窗口中浏览此图片

  第一台服务器 (Database01) 是处理所有事务的活动服务器。 仅当 Database01 发生故障时,处于空闲状态的第二台服务器 (Database02) 才会处理事务。 群集将一个虚拟 IP 地址和主机名 (Database10) 在客户端和应用程序所使用的网络上公开。

  注意:您可以将此设计扩展为包括多台活动服务器(除了所示的服务器外),要么使它们共享单个备用服务器,要么将每个活动服务器配置为另一个活动服务器的备用服务器。
Tags:
技术大类 » 其他Unix技术 | 评论(4) | 引用(0) | 阅读(3322)
tsing Homepage
2007-9-21 21:24
这已经有成熟的解决方案了,不用再造轮子,可以了解一下brdb及heartbeat
marcolu
2007-9-24 10:42
试试LVS吧
LALA
2007-9-24 11:33
请问张师兄:
    如何使用PHP+Socket编程发送数据包(或文件)?
    条件:系统双方具有重发机制:每次发送数据包的时候,带有发送次数,当另一端接受数据包后,将返回应答信息,如果在规定的时间内(每30S),没有收到应答信息,将重新发送,发送次数加+1,达到N次后(N值=100),将不再重新发送。在双方的界面上能体现失败。
   张师兄能否给个例子程序?在此感谢!!
代码罐头 Email
2008-1-11 12:48
LVS+heartbeat
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]