目前,我在一台专用的 Windows 2012 Standard R2 服务器上运行多个 ASP.NET 应用程序,前面有硬件防火墙。如果这台服务器出现故障,我的应用程序就无法使用,这是一个很大的风险。所以我想通过消除任何单点故障来提高可靠性。
我的网站托管商建议了两种可能的选择:
选项 1:使用 2 个 Windows 2012 Standard R2 服务器、2 个防火墙、2 个负载均衡器,并将其配置为故障转移模式(主动-被动),包括使用 DFS 进行 IIS 和文件复制。服务器各包含 2 个 SSD 磁盘,采用 RAID1 模式。
选项 2:使用虚拟 Windows 2012 Standard R2 服务器和虚拟路由器/防火墙,它们在使用 Apache Cloudstack 和 NetApp 存储平台托管的私有云中采用 RAID60 配置
两个问题:
- 如果仅在那 2 台服务器上安装 DFS,选项 1 是否可行(且可靠)?还是我需要额外的服务器来控制 DFS?
- 如果考虑可靠性和性能,您会选择哪种方案?成本差不多,所以不用担心。
答案1
选项 1 可以通过附加服务器实现,但我不会考虑使用 DFS。更可能的做法是使用 DAS 阵列/SAN 或甚至某些复制,以使您的应用程序文件可以从两台机器访问。然后,您将使用负载平衡器对前端进行负载平衡,该负载平衡器本身应通过使用冗余组件或在主动/主动或主动/被动配置中运行 2 个来防止发生故障。
不过我会选择选项 2。这是为非集群感知应用程序提供服务器组件故障保护的最常见方法。现代虚拟机管理程序的性能几乎与在裸机上运行相同/非常接近,并且良好的稳定存储后端将毫无问题地为各种工作负载提供 IOPS 和冗余。
如果您的 ASP.NET 应用程序数据库繁重,请务必在提交之前询问有关存储 IO 性能的问题。该 RAID60 的性能完全取决于正在使用的磁盘、控制器和存储结构。