故障转移开关

故障转移开关

我需要一个服务器/交换机/某物(我将其称为“故障转移交换机”)来执行以下任务。

  1. HTTP故障转移交换机后面 有两台服务器。
    • 通常情况下,所有请求都会被路由到server 1
    • HTTP如果服务器 1 死机(停止及时响应请求),则所有请求都会被路由到server 2
    • server 1恢复(开始HTTP及时响应请求)时,所有请求都会被路由回server 1
    • 故障转移交换机有一个外部 IP 地址(请求最初到达该地址)。

这件事应该尽可能的愚蠢和简单。

正确的称呼应该是怎样的以及这种事物的一个例子是什么?

更新:

理想情况下,它不应该有任何移动部件(例如HDD或风扇)。因此,最好使用专用硬件解决方案。

更新 2:

这个东西应该是个开关,而不是平衡器。它应该根据HTTP服务器可用性进行切换,而不是ARPICMP

答案1

您需要的通常称为负载平衡器。负载平衡器可以采用设备的形式,F5 大 IP例如,以盒子的形式,或以在商用硬件上运行的负载平衡应用程序的形式。其中一个例子是HAProxy巧合的是,它目前正在为所有 StackExchange 网站进行负载平衡。

答案2

如果您不需要负载平衡,您只需要一个简单的故障转移集群解决方案,该解决方案在集群成员之间发送心跳并分配您将用于访问服务的虚拟 IP 的所有权。市面上有几十种这样的解决方案。

在 Windows 上,事实上的答案是 Microsoft Clustering Services (MSCS),它包含在企业版和数据中心版中。在 Linux/Unix 上,您可能希望研究 Heartbeat(简单,但不是超级可配置)、Pacemaker(强大,但稍微复杂一些)或其他类似系统。

答案3

这里有一些开源解决方案可以提供帮助。

我要检查的第一个是光感应

pfSense 几乎可以在任何硬件上运行 - 以及在 vps 中。该系统将允许负载平衡、集群以及各种其他服务

pf 使用“carp”方法的思想进行负载平衡和故障转移 - 设置起来非常容易。

答案4

您考虑做的事情并不一定容易实现,而且需要一些监控/维护。

我不知道还有什么硬件解决方案不是平衡器。您可能需要考虑集群,这意味着运行某种形式的隔离和心跳,以便服务器相互监视。

如果可能的话,您可能希望使用带有 Web 服务器前端的共享存储。

话虽如此,如果您使用的是 Linux,您可能需要谷歌搜索高可用性 Linux,它应该会为您指明配置心跳软件的资源,该软件可监控服务器上的服务,如果一台服务器出现故障,它会启动另一台服务器来接管。一旦另一台服务器恢复运行,您就可以将服务请求转移回主服务器。

我之所以说这并不简单,是因为你可能会遇到脑裂的情况。一定要谷歌一下,并制定相应的计划。

您还需要设置硬件以便通过服务器之间的专用高速连接相互通信,并且您必须维护某种共享存储,这样您就不需要同步文件。

因此,如果您不想采用平衡器路线,则必须投入一些时间和精力来运行集群。我对 Windows 集群了解不多,但如果您运行的是集群,那么在 Windows 的高端版本中会有一些内置的集群服务选项;我认为它位于企业版和数据中心版中。您必须浏览 Microsoft 的营销无人机网站以获取有关此内容的更多信息。

祝你好运!

相关内容