最合适的高可用性解决scheme

我的公司正在IIS,SQL Server和第三方Windows服务(用C#编写,可用于修改的源代码)在服务器上托pipe一个网站。

我们购买了一个新的相同的服务器,组成:1x四核,12GB内存,4x160GB SATA RAID 5,Windows Server 2008 R2数据中心,公共IP。

我们的目标是将所有网页和第三方Windows服务置于高可用状态。

在对如何configuration故障转移群集和Hyper-V进行一些实验室testing之后,我们对“ 最佳 ”解决scheme将会是什么样的“ 最好 ”意义深表怀疑,并且能够正确处理物理服务器故障。

任何关于如何configuration这两个服务器的build议?
我们并不需要所有的configuration步骤,只是提示正确的方向。

更新

  • 目前没有外部SAN。
  • 提到的服务(SQL,IIS,自定义Windows服务)将需要最多的资源。
    可能会有一个Exchange服务器到来,但现在并不重要。
  • 目前没有configuration域控制器。

这里面缺乏元素,但是我们不知道哪一个比其他哪个更重要,哪些是我们应该遵循的步骤。

UPDATE2

  • 我们写下了一个我们认为能够满足我们需求的粗略想法。 你可以在这里findpdf。
  • 问题现在得到了答复。 我明白这种东西背后有很多IT专业知识,奖励正确的build议是可以理解的。
  • 我们的想法是基于这些假设(请纠正其中任何一个,如果你发现他们错了):
    • 您需要一个域来创buildWindows故障转移群集
    • 您无法在Windows故障转移群集上安装交换
    • 域控制器单点故障

虚拟机似乎可以解决所有这些问题,但是它们也使用了大量的资源。

是不是有一个简单的故障转移configuration使用两台物理服务器只是故障转移SQL实例?
网页是无状态的,C#窗口服务主要在SQL数据库上运行,我想可以使用NLB来configuration它们。

如果您需要更多的信息,请随时提出意见。

所有这些服务都在一个系统上运行吗? 我不知道系统上的负载是什么,但是听起来像实现主动 – 主动设置将是困难的。

首先,我想到的就是在networking部分使用NLB。 如果第一个系统失败,则将一个系统设置为主系统,另一个系统接pipe。 使用SAFETY FULL镜像您的数据库,以便在主体执行相同操作之前,从服务器发送对其日志中被强化的查询的确认。 这可以确保您的数据在死亡的情况下保持同步,假设您的应用程序可以处理这个数据,因为这会增加stream程的延迟。 数据库故障转移也可以通过镜像自动进行。

如果您依赖于IIS进行应用程序会话,则主动 – 主动将无法工作,因为每个服务器都不知道其他服务器上的会话。

编辑:链接到一些资源:

configurationNLB http://support.microsoft.com/kb/323437

configuration数据库镜像http://technet.microsoft.com/en-us/library/cc917680.aspx

听起来像你在正确的轨道上给我。 我假设你有一个外部SAN的权利?

我的假设是你正在谈论HA而没有COOP。

以下build议将为您提供HA&COOP,使用行业领导者。

一些build议:
(1)移到VMware而不是Hyper-V。
(2)使用V2P软件将您的物理操作系统迁移到虚拟操作系统
(3)将您的SQL服务器移动到专用的虚拟机中,并转到主动 – 主动模式
(4)使用Netapp来抽象你的存储
(5)购买额外的Netapp + x86服务器,或2您的COOP网站

成果:
你应该有抽象的RAID6存储,本地和远程可用。 Netapps应该复制
你应该有多个虚拟机运行你的Web服务器(IIS Clustered)和C#应用程序
你应该有多个虚拟机运行你的数据库

笔记:
如果您的数据库对性能非常敏感,请考虑保持物理性能。

我只是补充Brennans评论上面。

  1. 看看VMware FT技术: http : //www.vmware.com/products/fault-tolerance/overview.html (这将花费你,虽然)

  2. 对于相对便宜的存储,您可以使用NexentaStor(www.nexentastor.org),它非常易于使用,与VMware(iSCSI)配合使用,支持HA和便宜。