良好的Linux故障转移/高可用性解决方案?[关闭]


9

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

在solaris上,我们使用VCS(Veritas Cluster Server)进行此操作。Linux有哪些可用选项?

请指出每个装置的设置/维护工作量或费用(如果有)。

-添加了更多详细信息-

给出复杂度级别的概念:

  • 发生故障的服务器可能会挂起或崩溃,恕不另行通知,可能仍然可以“ ping通”
  • 恢复服务器需要在故障转移时启动其应用程序
  • 一旦服务器启动/重启失败,它就会变得被动,以免干扰恢复服务器。

这是一个数据收集或计算节点,而不是数据库,因此可以使用更简单的解决方案。

-详情(抱歉)-

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

非常感谢您到目前为止的所有帖子。

Answers:



4

我在Linux上使用了多种群集解决方案。我也是配置管理的支持者,因此我将在其描述中添加一些内容(即Chef或Puppet)

Veritas群集服务器(VCS)。已经有一段时间了,但是我们在RHEL 3.0上部署了一些Linux VCS集群。我希望它在RHEL 5.0上可用。您应该熟悉设置的困难,因为它是您熟悉的领域。如您所知,VCS非常昂贵。有趣的是,VCS不太适合通过配置管理来设置。

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

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

作为概念证明,我已经在Linux集群中安装了IBM的HACMP(其AIX集群软件)。我不建议这样做,因为我记得它比VCS还要昂贵。IBM具有用于安装和维护HACMP的特定过程,在此不使用配置管理。


4

Michael是正确的,因为社区现在有点破裂,文档很少。

实际上,一切都在那里,这是不可能理解的。您真正想要的是“ Pacemaker Configuration Explained”电子书...(链接到PDF)。您将需要阅读大约十二遍,然后尝试实现它,然后再阅读十二遍,以便可以实际使用它。

目前,对Linux群集服务的最佳支持实现可能是Novell的SLES11及其高可用性扩展(HAE)。它只是在一两个月前问世的,它附带了一本厚200页的精美手册,其中描述了如何进行安装和运行。Novell在支持各种形式的Pacemaker配置方面也非常出色。

除此之外,还有RHEL5的实现,它具有相同的软件包和不错的文档,但我认为它比SLES贵。至少是给我们的。

我现在会避免使用Heartbeat,而选择Pacekmaker / OpenAIS,因为在将来它们会得到更好的支持。但是,社区的当前状态是,只有几位专家,有一些人正在生产中运行它,并且有很多人完全一无所知。加入Pacemaker邮件列表,并注意一个叫Andrew Beekhof的人。

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

Pacemaker / OpenAIS在“原始资源”(例如nfs-server)上使用“监视”操作来跟踪资源的运行情况。如果示例NFS服务器在X秒内对群集的其余部分无响应,则群集将执行STONITH(将头上的另一个节点拍摄)操作以关闭主节点,从而使辅助节点处于活动状态。您可以在配置中决定随后要提出的内容以及要采取的相关措施。那里的实现细节取决于您要进行故障转移的服务,某些操作的执行窗口(例如将主节点提升回主节点)以及整个过程几乎都可以配置。


1

目前,Linux HA社区有些分散。

以前称为Linux HA的工具是PacemakerOpenAIS,当不需要共享架构时,它们通常与DRBD结合使用。

我建议在深入学习之前就此主题获得一本好书,因为这是一个非常全面的领域,并且项目的状态不一定像某些供应商的解决方案那样对用户友好。

一些集群软件供应商也提供了Linux解决方案,但是由于我自己从未使用过它们,因此我无法告诉您太多信息。


1
您能推荐一本关于这个主题的好书吗?
马特·西蒙斯

1

在Linux中,我们已使用心跳和drbd实现了集群。心跳检查服务器的状态。DRBD用于服务器之间的数据同步。我们在一个服务器上运行oracle服务,在另一台服务器上运行apache。当运行oracle的服务器发生故障时,心跳会感知到相同的情况,并在运行apache的服务器上恢复oracle服务。反之亦然。一直将此设置用于其他许多用途,并且迄今为止一直可靠。


1

红帽集群套件将为几乎所有可能的应用程序提供所需的功能。与GFS和群集LVM结合使用,您可以拥有可靠的共享存储。

维护并不比保持单个包装箱运行难得多。实际上,通过应用程序迁移,可以更轻松地修补各个框。

RHCS带有Web前端(Luci)和GTK前端(system-config-cluster),使配置和迁移可单击。它使您可以从一个基于Web的中央管理控制台为每个应用程序配置故障转移域,恢复策略和防护。

考虑到RHCS实际上具有相当可靠的支持选项,因此我选择RHCS。

不知道这要花多少钱,但我估计这要花几千美元。


1

UltraMonkey,部分构建于Linux-HA框架之上。我一直认为它比真正的集群更像是一种负载平衡解决方案,但是它可以很好地处理故障转移。


还在更新吗?该网站说:Copyright © 2000-2005, Horms Last Updated: Sat Mar 4 16:33:57 2006 +0900
NickW

0

我们使用Linux Virtual Server并保持高可用性。keepalived可以在主机本身上进行VRRP(我相信这取决于另一台服务器的故障),也可以将其设置在单独的主机上进行负载平衡,从而可以进行服务可用性检查。在第一种情况下,可能可以配置服务检查,但我尚未检查。如果可以同时运行两个服务器,则第二种情况特别好,否则可以进行手动切换。


0

我为TCP编写了基于软件的负载均衡器,不需要单独的机器。它通过在多播链接级地址上声明一个IP地址并在计算机之间进行协商来避免两个计算机使用相同的TCP连接,从而共享一个IP地址。

不利的一面是它还不是真正可以投入生产的-但是,如果您想在测试网络上进行测试,我会很高兴的。

蓬松的簇在这里

我不一定检测到“活动但有病”的情况,但是我确实在成员服务器之间进行负载平衡(如果用户空间进程死了,其他节点将注意到并删除发生故障的节点)


0

它不是免费的,但是对于那些没有时间或专业知识在Linux上安装自己的HA解决方案的人来说,答案是在www.rapidscaleclusters.com。在几分钟内,您就可以启动并运行,易于安装和运行,它也受支持。


不知道为什么有人将其标记为……这看起来是一个可行的解决方案(尽管总是存在技术难题……至少这看起来不像是“服务”,这是我的第一印象)。
ericslaw'2

0

我正在使用Shell脚本编写开放源故障转移群集管理器。即使它可能错过您需要的某些集成,它的状态也很好。检查一下,让我知道您是否想使用一些缺少的功能:https : //github.com/nackstein/back-to-work/

如果您擅长shell编程(POSIX shell),欢迎您加入项目开发:D

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.