应用程序托管 (IIS/MSSQL) 的最佳基础架构配置?裸机,虚拟化?

应用程序托管 (IIS/MSSQL) 的最佳基础架构配置?裸机,虚拟化?

我们是一家小型咨询公司,为客户托管一些面向公众的网站和 Web 应用程序(我们编写或继承的应用程序)。我们的优势在于编码,不一定是服务器管理。然而,托管解决方案超出了我们的预算(每月费用将超过我们从托管这些应用程序中获得的任何收入)。

昨天,我们的一台运行 RAID5 的服务器出现了双硬盘故障。这种情况很少发生。幸运的是,我们有备份,只需将受影响的数据库和 Web 应用程序迁移到其他服务器即可。我们真的很幸运,只有一个驱动器 100% 发生故障,另一个驱动器只是被标记为待处理故障,因此我们能够实时移动几乎所有内容 [一个数据库必须从备份中恢复],并且每个客户端的停机时间只有大约 5 分钟,因为我们将他们的数据库脱机并移动它。

然而,我们现在担心我们已经有点成长了......有机地......现在我们正试图找出我们前进的最佳计划。

我们当前的基础设施(全部为裸机):

  • pfSense 路由器 [旧硬件改造]
  • 1U DC [无保修,旧硬件]
  • 2U 网络和应用服务器(服务器 2k8 R2、IIS、MSSql、24gb 内存、双 4C8T Xeon)- 出现驱动器故障 - [保修期为一年,驱动器在保修期内更换]
  • 4U 继承 POS 服务器(128gb 内存,但仅限 32 位操作系统,服务器 2k3)[无保修]
  • (2)负载平衡集群中的 1U Web 服务器(2k8、IIS、4C8T Xeon、4GB RAM)(通过 pfSense)[较新,有保修]
  • 1U 数据库服务器(2k8、MSSQL、4C8T Xeon、4gb ram)[全新带保修]
  • 运行 unRaid 且具有 3TB 存储空间的 NAS(用于为 2 个负载平衡 Web 服务器提供 Web 应用程序的备份和文件服务)

我们的流量相当小,但停机时间几乎是不能接受的。查看全天的 CPU 监视器,我们的 CPU 使用率非常非常低。

我们一直在使用 ESXi 作为开发服务器主机,它运行得相当好。我建议我们在生产环境中运行类似的程序。

我最初的想法是构建一个 SAN(按照如下指南:http://www.smallnetbuilder.com/nas/nas-howto/31485-build-your-own-fibre-channel-san-for-less-than-1000-part-1) 来托管虚拟机。我会将其构建在 RAID 1+0 中,以避免昨天遇到的严重硬盘故障问题。

我们会在目前硬盘驱动器出现故障的服务器上运行大多数虚拟机,因为它是最强大的。在我们目前已实现负载平衡的 1U 服务器上运行其他虚拟机。使用 P2V 连接旧的超出保修期的硬件(pfSense 除外,我更喜欢在物理硬件上使用)。继续运行 unRaid 进行备份。

我有一系列的问题,但基于基础设施的问题如下:

  • 这是缓解物理硬件问题的合理解决方案吗?我认为 SAN 会成为一个巨大的 SPOF,而大型服务器(将托管虚拟机)又是另一个 SPOF。我读到付费版本的 vmWare 支持虚拟机的自动故障转移,这可能是我们研究以缓解虚拟机主机故障可能性的方法。
  • 还有其他我遗漏的选项吗?我基本上考虑过“精简配置”应用程序,即使用更便宜的 1U 服务器模型,并在一个机器上运行数据库和应用程序(无虚拟机)。如果发生硬件故障,受影响的客户群会很小一部分。这会增加我们的硬件成本、机架空间成本和系统管理成本(员工时间的“沉没”成本)。
  • 如果我们确实需要 VM 故障转移解决方案,Xen 是否更具成本效益?

答案1

我已经确定了一些问题。

  • 什么样的虚拟化对于我们来说有意义(XEN?)?

您几乎只能使用 W2K8R2。恕我直言,您应该更深入地了解 Microsoft Hyper-V(我是 Linux/Unix 爱好者!)。许可模式可能很有吸引力:购买一个,免费获得三个虚拟服务器(如果我没记错的话,我们的 Windows 人员是这么说的)。

我正在使用基于 SLES10 SP4 的 XEN 进行 PV-Linux 虚拟化。它运行良好,我非常喜欢它。但我也有一个 W2K3 服务器在那里运行(完全虚拟化),我想摆脱它(-> Hyper-V)。

  • 我们如何才能防止将来再次发生此类故障?

硬盘故障是最常见的故障,尽量避免使用单一厂商的硬盘,尽量避免同一厂商同一月份生产的硬盘。

不过,市场上剩下的供应商不多了。所以您也应该实时复制数据 - 在您的系统中构建更多 HA!

  • 我们如何正确设置 HA?

KISS(保持简单,傻瓜!)我相信简单的双节点集群。将您的服务分成两部分,每个盒子将提供一半的服务,但每台物理服务器应该能够托管所有服务(性能可能会略有下降)。在您的设置中,尝试将每台虚拟机的磁盘数据在线复制到另一端。

  • 我们如何设置快速、廉价的 HA 存储?

使用两个能够连接两个控制器的 DAS 盒(这样两个服务器就可以连接到每个盒)。在这些盒之间进行基于主机的镜像。

或者:

在您的服务器中放入足够的本地存储,并在这些服务器之间镜像这个本地存储主机(不知道这是否适用于 Hyper-V,但我使用 Linux/DRBD8 用于此目的)。

  • 使用不受支持的硬件会有问题吗?

不,如果现场有足够的替换零件。硬盘、RAM、电源、CPU、网卡 - 按此顺序 - HD 和 RAM 最常见。

相关内容