用于基于Windows的Web服务器的冗余负载平衡器?

我在试图弄清下面devise的技术细节时遇到一些麻烦; 特别是在冗余负载均衡器领域。

Web服务器运行Windows Server 2003 R2 64并通过IIS提供.NET应用程序。 数据库服务器在具有SQL Server 2008的SQL Server故障转移群集中运行Windows Server 2008 Enterprise 64.目前有两台Web服务器和两台数据库服务器。

我期望完成的是:

  • 自动冗余故障切换,如果负载平衡器发生故障。
  • 无需中断用户即可将Web服务器无缝地从负载平衡组合中进行维护。 我不确定这是因为我们的应用程序的工作方式 – 用户倾向于说,login到应用程序的整个转变。
  • 根据需要扩展Web服务器的能力(不需要现场完成)。

这是一个纯粹的微软商店; 所以不幸的是标准的Linux工具不适用于我们。

我曾经尝试过:

  • 微软的NLB(networking负载平衡服务) :这个方法对于一个简单的解决scheme来说效果相当好,因为它只是在Web服务器上运行,所以相当具有成本效益,但是我还没有find使这个服务符合上述要求的方法。 每当我们试图从负载均衡混合中取出一个系统时,向负载均衡的url / ip发出请求的客户端仍然试图被引导到离线机器。 这可能会造成巨大的问题,特别是考虑到我们的用户将通过这些系统提交客户付款。 也许我们在这里做错了什么

该devise:

在这里输入图像说明

那么,考虑到以上所有,Microsoft NLB是唯一的答案吗? 还是有更好的工具可用于我们的情况?

编辑4/21/11

感谢您的快速反馈。 只是为了澄清几点:

  • 这些是Intranet Web服务器 。 他们不接触互联网。 永远。
  • 说服我的老板让我部署一对Linux服务器不会太困难。 她不是Linux环境的障碍 – 这是我们的员工。 他们唯一的技能是Windows。 这将会使我的社交生活在我们的数据中心开始部署Linux服务器。 😉
  • 我最终寻找负载均衡Web服务器的“微软方式”,同时在负载均衡子系统中提供冗余。 如果这真的是微软的NLB服务,那么…也许我应该开始一个新的问题。 🙂
  • 如果这是一个更好(或唯一)的解决scheme,我愿意向硬件负载平衡器开放。

你想要什么叫微软应用程序请求路由2(ARR )。 (也许这个笨拙的名字是为什么很less有人知道它的存在的一部分?)

Microsoft ARR是免费的HTTP层负载平衡器,作为IIS 7+的模块实现。 (ARR本身是免费的,但Windows Server许可证当然是底层操作系统所必需的。)

由于ARR只是IIS之上的一个小薄片,所以它非常快速且绝对健壮。 pipe理ARR对你们来说是熟悉的,因为你已经是一个IIS商店了。 ARR只是安装在IISpipe理器GUI中。

对于真正的高可用性设置,您应该结合NLB和ARR ,以便NLB保持ARR服务器层高度可用,并且ARR保持后端Web服务器层高度可用。 请参阅Microsoft的文档,并在顶部链接的ARR概述页末尾查看文档的详细列表。

ARR唯一真正的缺点是如果你真正实现高可用性,那么你将需要至less2个Windows Server许可证和物理服务器。 鉴于此,考虑到设置所花费的时间,那么Coyote Point或loadbalancer.org等低端负载均衡设备有时可以成为一种经济高效的替代scheme(Or Kemp,Barracuda Networks或任何其他低端供应商)。

无需中断用户即可将Web服务器无缝地从负载平衡组合中进行维护。

这将取决于如何处理会话状态,即您的后端服务器如何共享或不共享“此用户已login”信息。

如果web应用程序层是无状态的(即将会话状态放置在共享数据存储区,fx共享RAMcaching区或MSSQL),则可以将服务器拉出池。 如果不是,则可以在负载平衡器上使用“粘性会话”,并从负载平衡器池中移除后端服务器,然后等待所有用户“closures”有问题的服务器。

HAProxy的作者Willy Tarreau对这里的负载均衡技术和问题有了很好的概述 。

如果您的商店已经设置为仅限于Microsoft的解决scheme,则其ForeFront威胁pipe理网关具有“服务器场”function,可以进行一些负载平衡( 链接 )。 它不像专门的硬件负载均衡器那样具有特色,也可以像Linux堆栈软件一样可configuration,但是它可以帮助您解决某些使用案例。 重要的是,它可能会在你的微软合同价格表上。

TMG可以通过NLB进行负载均衡。

即使某个特定的答案是“好的”答案,如果你是组织中唯一一个不害怕login的人,你将永远拥有它。 而其他人都会责怪可怕的外国装置,包括因缺水而死亡的棕色植物。

我发现monoglot系统pipe理员不像web gui中的东西那么吓人。 (不需要告诉他们运行的Linux内核)。 那么像F5,Brocade / Foundry ServerIron,Cisco CSS,CoyotePoint等商用设备呢? 我们使用一对ServerIron高可用性对,过去我使用过CSS / Arrowpoints。

一个旧的解决scheme仍然是销售共鸣中央调度,这是你想做的。 我注意到你没有在你的要求中列出“免费”,所以你已经有了Cisco,F5,Foundry等商业解决scheme,应该可以做你想做的。

我只是忽略你对微软解决scheme的看法,因为在这种情况下没有。 购买硬件盒,或者在vmware ESXi上运行虚拟机。 我们使用后者,虚拟KEMP负载平衡器。

梭子鱼使function完整和易于使用的硬件负载平衡器添加到列表中。