好的故障转移/高可用性解决scheme的Linux?

我有几种情况需要在发生故障(服务器挂起或崩溃)时将应用程序从一台服务器迁移到另一台服务器。

在solaris上,我们使用VCS(Veritas Cluster Server)执行此操作。 什么选项可用于Linux?

请说明为每个设置/维护或成本(如果有的话)的努力水平。

– 更多细节添加 –

给出复杂程度的一个想法:

  • 失败的服务器可能会挂起或崩溃,恕不另行通知,可能仍然是“可以ping通”
  • 恢复服务器需要启动故障转移的应用程序
  • 一旦服务器启动/关机失败,由于不与恢复服务器进行干预而变成被动服务器。

这是一个数据收集或计算节点,而不是数据库,所以更简单的解决scheme可以工作。

– 更多细节(对不起) –

共享存储不是一个选项,但是没有太多的状态(如果有的话)需要从一台服务器迁移到另一台服务器。 我们通过rsync保持两台服务器同步。

到目前为止,非常感谢你的所有post。

http://linux-ha.org/满足您的所有高可用性需求。 就像这首歌所说,人生中最美好的事物是自由的。

我在Linux上使用了各种群集解决scheme。 我也是一个configurationpipe理的支持者,所以我会在我的描述(厨师或木偶,这是)添加一点,

Veritas Cluster Server(VCS)。 已经有一段时间了,但是我们在RHEL 3.0上部署了一些Linux VCS集群。 我希望它在RHEL 5.0上可用。 你应该熟悉如何设置它的困难,因为它熟悉的领域。 你可能知道,VCS是昂贵的。 有趣的是,VCS不太适合通过configurationpipe理来build立。

说到RHEL,Red Hat Cluster Suite自RHEL 2.1发布以来已经成熟了很多。 安装/configuration阶段非常简单,文档非常完整和有用,像VCS一样,您可以从供应商那里购买支持。 对于商业HA产品,RHCS价格合理。 我只使用configurationpipe理来安装软件包,并通过Web界面“手动”维护它们。 另外,我听说有些人在非红帽平台上使用它,尽pipe我没有直接的经验。

Linux-HA(drbd / heartbeat)也很棒,尽pipe来自VCS的configuration可能看起来过于简单,但却很笨拙。 使用configurationpipe理工具可以很容易地实现自动化。

作为一个概念certificate,我已经用IBM的HACMP(他们的AIX集群软件)安装了一个Linux集群。 我不会推荐这个,因为我记得它甚至比VCS还贵。 IBM有特定的安装和维护HACMP的程序,我不会在这里使用configurationpipe理。

迈克尔是正确的,社区现在有点破碎,文件是稀疏的。

其实,这一切都在那里,这是不可能理解的。 你真正想要的是“起搏器configuration说明”电子书…( 链接到PDF )。 你要读十几遍,然后试着去实现它,然后再读十几遍,这样就可以实际操作了。

目前,支持Linux的群集服务的最佳实施scheme可能是Novell的SLES11,它是高可用性扩展(HAE)。 它只是出来一两个月前,它有一个很好的厚200页的手册,介绍如何设置和让事情运行。 Novell也以各种forms支持起搏器configuration。

除此之外,还有RHEL5的实现,它具有相同的包和体面的文档,但我认为它比SLES更昂贵。 至less,这是为了我们。

我现在要避免心跳,并与Pacekmaker / OpenAIS一起去,因为他们将在未来得到更好的支持。 不过,现在的社会状况是这样的,有几个专家,有几个人正在生产中,有一大批人是完全无能为力的。 joinPacemaker邮件列表并关注一个名叫Andrew Beekhof的人。

编辑提供所需的详细信息:

起搏器/ OpenAIS在“原始资源”(例如nfs-server)上使用“监视”操作来跟踪资源的运行情况。 如果示例NFS服务器在X秒内对群集的其余部分没有响应,则群集将执行STONITH(在头部拍摄其他节点)操作以closures主节点,从而将辅助节点提升为活动状态。 您可以在configuration中决定后续的操作和相关操作。 这里的实现细节取决于你正在尝试做什么服务的故障转移,某些操作的执行窗口(如将主节点提升回主服务器)以及整个事件几乎尽可能地configuration。

Linux HA社区目前有点分区。

以前称为Linux HA的工具目前是Pacemaker和OpenAIS ,当需要无共享体系结构时,这些工具通常与DRBD结合使用。

我build议在潜水之前就这个主题写一本好书,因为这是一个相当全面的领域,项目的状态不一定像一些供应商的解决scheme一样方便用户。

还有一些集群软件供应商提供的Linux解决scheme,但由于我自己从来没有使用过这些解决scheme,所以我不能告诉你很多。

在Linux中,我们使用heartbeat和drbd实现了群集。 心跳检查服务器的状态。 DRBD用于服务器之间的数据同步。 我们有一个服务器上运行的oracle服务和另一个服务器上的apache。 当运行oracle的服务器出现故障时,心跳感知相同,并在运行apache的服务器上恢复oracle服务。 反之亦然。 一直在使用这个设置为许多其他目的,并一直可靠的date。

红帽集群套件将为您提供所需的各种可能的应用程序。 结合GFS和集群LVM,您可以拥有稳定的共享存储。

保持单个盒子的运行并不困难。 实际上,通过应用程序迁移可以更轻松地修补各个盒子。

RHCS带有一个Web前端(Luci)和一个GTK前端(system-config-cluster),使configuration和迁移成为可点击的。 它可以让您为每个应用程序configuration故障切换域,恢复策略,防护,全部来自一个中央的基于Web的pipe理控制台。

考虑到RHCS实际上有一个非常坚实的支持选项,我会去RHCS。

不知道这会花多less钱,但我认为这是在几千美元的范围内。

UltraMonkey ,部分build立在Linux-HA框架之上。 我一直认为它是一个比真正的集群更多的负载平衡解决scheme,但它能很好地处理故障切换。

我们使用Linux虚拟服务器并保持高可用性。 keepalived可以在自己的主机上执行VRRP(我相信这依赖于另一台服务器的死机),也可以在单独的主机上进行设置以进行负载平衡,这可以进行服务可用性检查。 可能在第一种情况下configuration服务检查,但我没有检查。 如果两台服务器同时运行,第二种情况特别好,否则可以手动切换。

我为TCP写了一个基于软件的负载均衡器,不需要单独的机器。 它通过在多播链路层地址上宣布它并共享一个IP地址,并在两台机器之间进行协商,以避免两台服务器为相同的TCP连接提供服务。

不好的一面是,它不是真正的生产准备 – 但如果你想在你的testingnetworking上testing,我会很高兴。

蓬松的群集在这里

我不一定检测到“活着但是不舒服”的情况,但是我确实在成员服务器之间进行负载均衡(如果用户空间进程死亡,其他节点将注意到并移除失败的节点)

这不是免费的,但那些没有时间或专业知识的人可以在Linux上安装自己的HA解决scheme,答案是www.rapidscaleclusters.com。 在几分钟之内你就可以开始运行,易于安装和运行,它也被支持。

我正在开发用shell脚本编写的开源故障转移群集pipe理器。 即使可能会遗漏一些您需要的集成,它的状态也很好。 检查出来,让我知道是否有一些你想看到和使用的缺less的function: https : //github.com/nackstein/back-to-work/

如果你擅长shell编程(POSIX shell),欢迎join项目开发:D