【问题标题】:Primary Server and Hot Standby Server architecture主服务器和热备服务器架构
【发布时间】:2013-12-18 08:31:47
【问题描述】:

我现在开始研究为 Intranet 网络构建合适的架构,其中包含一个主服务器和一个辅助服务器,我想将其用作 热备用。 我对此的了解非常少,我正在寻找可以帮助我入门的指南和文章。

需要复制的服务器将运行以下命令:
- Windows Server 2008 R2 操作系统
- MS SQL 2008 R2 标准
- IIS 7.0 将运行在 asp.net 中构建的 Web 应用程序
- 几个后台服务,其中一些将数据写入数据库。这是内部编写但没有复制方法的 .net 应用程序。

我的目标是让主服务器数据不断复制到辅助服务器,以便在发生故障时辅助服务器可以尽快开始充当主服务器。

我的问题是:
1. 这种情况下推荐的硬件拓扑是什么?除了两台服务器机器之外,我是否需要任何额外的硬件来充当 DNS 服务器来解析到正确服务器的路由?
如果没有,如何使用软件来完成?
2. 数据库复制 - 我知道我需要使用某种日志传送来在数据库之间进行同步。有什么限制和指导方针?我需要知道是否存在良好性能与数据库的最新复制之间的权衡。一篇好文章会有所帮助。
3. 考虑到重写服务应用程序以支持在某种“被动”模式下运行并在服务器之间传输状态数据可能是不可能的,那么在辅助机器上应该如何处理这些服务?

【问题讨论】:

    标签: sql-server-2008 iis architecture operating-system application-layer


    【解决方案1】:

    我认为您对此采取了错误的方法,您应该使用负载平衡和集群来提供可用性,而不是使用热备用。

    我的建议是在两台服务器上运行 Web 应用程序并使用 IP 负载均衡器在两台服务器之间分配请求。如果其中一个服务器变得不可用,用户请求将不再被路由到该服务器,用户将不会真正注意到发生了中断。您应该尝试在公司基础架构中使用现有的负载均衡器。

    如果您有两个以上的可用服务器,我还建议您查看 Windows Server 中包含的一项功能 Windows 网络负载平衡 (NLB),请在 http://technet.microsoft.com/en-us/library/cc725691.aspx 阅读有关 NLB 的更多信息。但由于 NLB 和故障转移集群在同一台服务器上不受支持,因此如果您只有两台服务器,我不建议您这样做。

    对于数据库,我建议您使用 2 节点主动-被动数据库集群,而不是部署两个单独的 SQL 实例并在它们之间进行复制。在集群配置中,SQL Server 在单个服务器上运行,但如果该服务器出现问题,SQL Server 会自动切换到另一台服务器。在http://sql.starwindsoftware.com/sql-server-clustering-technology 上阅读有关 SQL Server 群集的更多信息。

    实施集群解决方案将需要两台服务器之间的某种共享磁盘,因为两台服务器都可以是活动实例,它们必须能够写入相同的磁盘。如果您的组织有可用的 SAN,那么这是共享磁盘的首选。

    但是现在后台服务出现了问题。如果它们不能被修改,你只需要想出一些机制来在服务器出现故障时移动它们。如果服务器受到监控,您可以让技术人员启动一个脚本,在另一台服务器上启动服务。手动操作永远不可靠,但如果你不能重写它们,你就别无选择。

    如果你有两台服务器我推荐:

              HW IP Load Balancer
                      |
        -----------------------------
        |                           |
    SERVER A                     SERVER B
    ASP.NET web app              ASP.NET web app
    SQL Server (active)          SQL Server (passive)
    Bg services (not running)    Bg services (running)
    

    我建议你有四台服务器:

            HW IP LB or Windows NLB
                      |
        -----------------------------
        |                           |
    SERVER A                     SERVER B
    ASP.NET web app              ASP.NET web app
        |                           |
        -----------------------------
                      |
        -----------------------------
        |                           |
    SERVER C                     SERVER D
    SQL Server (active)          SQL Server (passive)
    Bg services (not running)    Bg services (running)
    

    【讨论】:

      猜你喜欢
      • 2020-05-29
      • 1970-01-01
      • 2011-10-02
      • 2019-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-13
      • 2011-04-17
      相关资源
      最近更新 更多