我需要一个服务器/交换机/一些东西(我将其称为“故障切换”)来执行以下任务。
HTTP服务器。
server 1 。 HTTP请求停止响应),则所有请求均被路由到server 2 。 server 1恢复时(开始及时响应HTTP请求),所有的请求都被路由回server 1 。 这件事应该尽可能的愚蠢和简单。
它是如何被恰当地调用的,这将是怎样的一个例子?
更新:
理想情况下,这不应该有任何移动部分(如HDD或风扇)。 所以专用的硬件解决scheme将是首选。
更新2:
这件事应该是一个开关,而不是一个平衡器。 它应该根据HTTP服务器的可用性进行切换,而不是ARP或ICMP 。
你想要什么通常被称为负载平衡器。 负载平衡器可以是设备forms,例如F5 Big-IP机箱,也可以是在商品硬件上运行的负载平衡应用程序forms。 其中一个例子是HAProxy ,巧合的是,它正在为所有的StackExchange站点进行负载平衡。
如果您不想进行负载均衡,则只需要一个简单的故障转移群集解决scheme,即可在群集成员之间发送心跳,并分配您将用于访问该服务的虚拟IP的所有权。 那里有几十个。
在Windows上,事实上的答案是Microsoft Clustering Services(MSCS),它包含在Enterprise和Datacenter版本中。 在Linux / Unix上,您可能希望查看Heartbeat(简单但不是超级可configuration),Pacemaker(强健但稍复杂)或其他类似系统。
这里有一些开源的解决scheme,这将有所帮助。
我会检查的第一个将是PFSENSE
pfSense几乎可以在任何硬件上运行 – 也可以在vps中运行。 该系统将允许负载平衡,集群以及各种其他服务
pf使用“鲤鱼”方法的想法进行负载平衡和故障切换 – 非常容易设置。
另一种方法是在阿尔卡特朗讯Omni-Switch上有一个称为服务器负载均衡的function。 这将做你正在寻找的东西,而不是在ip层这样做,它在MAC地址层。
你在做什么不一定简单实施,并采取一些监测/维护。
我不知道任何不是平衡器的硬件解决scheme。 您可能需要查看群集,这意味着运行一种屏蔽和心跳的forms,以便服务器相互监视。
如果可能的话,您可能会希望在Web服务器前端使用共享存储。
也就是说,如果你使用的是Linux,你可能会希望谷歌的高可用性的Linux,它应该指向你的资源configuration心跳软件,监视服务器上的服务,如果一个人失败,它会带来另一台服务器过度。 一旦另一台服务器恢复运行,您可以将服务请求转换回主服务器。
我之所以这么说并不简单,是因为你脑海中可能出现了分裂的情况。 确保你谷歌和相应的计划。
您还需要硬件设置在服务器之间的专用高速连接上彼此交谈,您必须保持某种共享存储共享,因此您不需要同步文件。
所以如果你不想采取平衡器路线,你将不得不花费一些时间和精力来运行集群。 我不太了解Windows集群,但是如果这就是你正在运行的内容,那么你将会在集群服务的Windows的高端版本中内置一些选项; 我认为这是在企业和数据中心版本。 你将不得不浏览微软的营销无人机网站了解更多信息。
祝你好运!
我在Linux上使用磅( http://www.apsis.ch/pound )。 您可以轻松将其安装到小型设备型机箱中。 从他们的网站:
什么是:
它的好处包括真正的微小,简洁的configuration文件和小的代码和系统脚印。 你可以在10分钟内完成,运行和validation。
通常,这种事情是在更大的环境中使用负载平衡器来完成的,因为LB设备倾向于相对稳定并且不倾向于摔倒。 对于您所看到的具体情况,您只需将其中一个设置为“100%”,另一个设为负载的“0%”,如果第一个设置消失,则第二个接pipe。
如果您正在查看基于软件的解决scheme,则取决于您使用的操作系统。 我build立了Ultramonkey和Zebra的解决scheme(现在是HA-Linux套件的一部分,我相信),但是我正在伦敦和Palo Alto之间进行故障切换,所以我也需要路由组件。