我正在管理一个相当大的网站(目前每天大约有 30 万页浏览量),预计会快速增长。目前 IIS 和 SQL Server 都在四核服务器上运行,具有 RAID 10 SAS 硬盘驱动器和 32 GB RAM。功能较弱的服务器配置为冷备份。数据库每天同步,站点文件也每天移至备份服务器。万一主服务器出现故障,该站点可以在几个小时内重新启动,但这并不理想。我正在寻找可以提供的解决方案:
- 改进的性能。将来有必要创建一个网络场来处理请求,所以我需要为此做好计划。
- 冗余。如果一台服务器出现故障,该站点不应出现故障。
- 备份。数据很关键,因此 SQL Server 配置应该确保我们不会丢失早于 1 天的数据(如果最后一天的数据丢失也没什么大问题)
此外,该解决方案应包括灾难恢复。如果数据中心着火了,我们需要一个解决方案来在一天之内恢复在线(我们正在考虑在我们的本地服务器中保留数据和站点的副本,但我们需要一种方法来使过程尽可能自动化。主服务器托管在德国的数据中心)。
数据库是 50GB+ 而 Web 应用程序相当小。
这一切听起来都很标准。对于数据库部分,我将在此处假设 SQL Server 2008 R2 或 SQL Server 2012。
您需要做的第一件事是从 SQL Server 中取出 IIS 并将其放到它自己的机器上。您还需要将某种负载平衡器放在网络场前面。我会推荐 F5 或 Cisco 之类的东西,但如果你家里有 Linux 人员,你可以使用基于 Linux 的负载均衡器。一旦你有了负载均衡器,因为你需要扩展网络场,这样做就很容易了。您只需购买另一台服务器,像往常一样配置它,然后将其添加到负载均衡器中的场。
至于 SQL HA,您可能需要查看 SQL Server 数据库镜像。如果您有 SQL Server 企业版,这将在本地数据中心为您提供两台服务器(尽管您可以将它们放在不同的数据中心)并自动进行故障转移。
设置备份以从数据中心复制到您的办公室并不难。只需设置站点到站点 VPN 并通过网络复制文件。带宽和延迟成为此时唯一的问题。
您的 DR 要求将是最难的部分。要求您在不到一天的时间内恢复并运行意味着您需要与另一个数据中心签订合同,并且您需要在该数据中心已有服务器。如果没有这些设备,您将永远无法在一天内实现站点恢复和运行的目标,因为仅仅获得新服务器可能需要数周时间(或更长时间,具体取决于灾难的严重程度,因为您不是唯一的人)人们试图购买新服务器)。
在 Web 服务器站点上,DR 很容易。只需将 DNS 服务器指向 DR 站点的公共 IP。
对于 SQL Server 方面的事情,您可能希望查看从主站点到 DR 站点的事务日志传送。如果您想要更简单的配置,请查看 SQL Server 2012 的 AlwaysOn 可用性组。他们将执行自动故障转移、同步和异步数据复制等。AlwaysOn 可用性组确实需要 Active Directory 域,因此您需要先考虑获得该设置。
如果您还没有注意到,DR 既不便宜也不简单。
有关 SQL Server 的更多信息:
MS 出版了许多免费书籍,其中一本名为Microsoft SQL Server AlwaysOn 高可用性和灾难恢复解决方案指南。
您将在此处找到更多技术指导。
事实证明,在 Windows 上备份并不像在 Linux 上那么容易。
高可用性
一般来说,您可以为网站做这些事情:
一般来说,你可以为数据做这些事情:
祝你好运!