是否可以使用两台服务器实现高可用性设置?
运行 Windows Web Server 2008 和 MSSQL Web Edition(据我所知 Express 不受支持)?
当我们的一台专用服务器需要扩展并转到第二台服务器时,成本已经增加了一倍多,因为需要使用 Web 版而不是 Express(数据库只有 500MB)。
答案1
不存在包含“高可用性”的神奇服务器数量。如果您的需求不大,那么您可以使用单个服务器来实现,但(显然)一旦您必须重新启动服务器,您的 4 个 9 就没了。
只要你的网站没有被过度使用,我会建议两台(像样的)机器,设置一个镜像数据库(你知道,MSSQL web 支持这个数据库),并且国家法律顾问委员会应该没问题。不过,这又是一个非常笼统的问题。我用两台“服务器”运行着大约 50 个大型网站,但这些服务器都是巨大的 Sun 刀片服务器。
我担心的不是机器(我假设你会在每台机器上运行 IIS 和 MSSQL,因为没有其他方法可以尝试高可用性),而是你对它们和互联网之间的连接感到担忧。将 IIS 暴露在互联网上不再是问题,但 IIS和MSSQL?如果我必须符合 PCI 或 HIPPA 标准,我就不会这么做。
@Tom:这是标准的“纵深防御”构建。几乎每个人都会建议将 Web 服务器和数据库服务器分开,除此之外,还应该施加严格的限制之间它们也一样……理想情况下,您的网络服务器上应该没有任何内容不能从备份中恢复……您的代码全部镜像到您的开发机器上,因此只需将其转储回网站即可。但数据库服务器一直在变化,您的设置需要反映这一点。
如果您只能使用两台机器,那么您就必须在两台机器上安装 Web 和数据库,并尽最大努力加强它们。我会完全锁定数据库,以便它们只能由彼此和本地 Web 服务器访问。
NLB 取代了硬件负载平衡器,并应自动进行故障转移。显然 YMMV:硬件解决方案有很多优点,但价格要高得多。如果您不期望流量很大,NLB 应该没问题,但硬件负载平衡器往往具有出色的保护功能,可抵御 DDoS 攻击等。同样,这完全取决于您的需要。
@Tom:1 个 IP 就可以了。NLB 使用一个可解析为所有本地计算机的“虚拟”IP 地址。打开 NLB 后,转到连接属性,您将看到“网络负载平衡”选项卡。该选项卡需要适用于整个群集的地址(您的静态 IP)。然后,您进入常规 TCP/IP 选项卡,并设置本地 IP,即特定于单个计算机的地址。
答案2
通常,传统的 HA 设置需要 3 台机器:两台后端服务器(通常是一台“主服务器”和一台“备份服务器”,其中“备份服务器”镜像“主服务器”),然后是第三台路由器机器,它可以有几种形式:有时它是代理,有时它是路由器,有时它只是网络服务器。
但是,需要有一台机器来检测主服务器的故障,并确保流量在适当的时候流向备份服务器。它通常应该是单向切换,并且手动的从备份服务器重置回主服务器。原因是,如果主服务器离线,您需要确保底层问题已修复;同时,主服务器上的数据将与辅助服务器上的数据不同步,您需要在重置之前将这些更改再次镜像回主服务器。