我目前有 1 个专用虚拟服务器运行我的网站/博客/邮件等。该服务器运行在 Hyper-V 上,具有 512MB RAM。Windows Web2008。使用 VM,我在其中运行了这些程序:
- SmarterMail – 用于电子邮件
- MS DNS – 我在此服务器上有自己的名称服务器
- SQL Express
- 微软 IIS7
- 2 IP 地址
我现在租用了 2 台物理服务器:P4 2.6Ghz 1GB RAM 80GB HDD。有了这些新服务器,每台服务器我也能获得 2 个 IP。它们运行的是 Windows 2008 Standard。对于 VM,HDD 显然处于 RAID 设置中,因此我并不担心硬件问题,因为这些问题由提供商来管理。但是,对于新服务器,HDD 没有 RAID,因此我担心的是,如果它发生故障,我需要一个备份位置。
最理想的设置是什么?我在想:
服务器 1:(Web/PrimaryDNS)
- DNS – NS1
- SQL Express – 需要时关闭,即 Server2 关闭时打开
- SmarterMail – 需要时关闭,即 Server2 关闭时开启
- IIS 7
服务器2:(SQL/备份)
- DNS – NS2
- SQL Web 版
- 智能邮件
- IIS 7
我该如何设置,以便如果 1 发生故障,我可以立即或通过手动切换将所有内容转移到 2 上。我很困惑,因为其他 DNS 服务器会缓存 Web 服务器的 IP 地址以用于请求,如果该服务器发生故障,备份服务器将具有不同的 IP。我该如何实现这一点?
我会进行例行备份,在这种情况下,我会在两台服务器上保留备份副本。如果我像镜像一样在两台服务器上复制相同的内容,那么我就无法充分利用它的真实性能。这就像一台服务器始终处于待命状态。
理想情况下,我希望 SQL 和 Web 运行在两台不同的机器上以获得最佳性能。如果 Server1 出现故障,我应该能够相当轻松地切换到 Server2。我不介意手动干预启动 sql/邮件服务等。
在可扩展性方面,VM 到目前为止表现还不错。未来 SQL 和 IIS 的工作负载将很快翻倍。
有些想法很棒。
答案1
您是否将 SmarterMail 用作实际的邮箱服务器,还是仅用作发送邮件的 MTA?如果是前者,则需要服务器之间有某种共享存储,或者需要某种方式将邮箱数据从主箱复制到故障转移箱;否则,故障转移箱上会有可用的邮件服务器,但没有数据。SQL Express 也是一样。
答案2
我认为你要找的功能叫做实时迁移& 最接近您所建议的‘即时’故障转移。
- 对于 IIS 高可用性,请研究使用 NLB 或硬件负载平衡器。
- 对于 SQL Server 高可用性,请研究使用日志传送或数据库镜像。
如果您有共享存储,那么您还可以研究集群。
答案3
由于您正在运行 SQL Express,因此自动故障转移的选项有点有限。
设置 NLB 将处理您的网络流量,但如果您尚未推出自己的日志传送版本等,则需要通过恢复备份来手动故障转移您的 SQL 安装。
集群上的实时迁移等会很好,但您需要共享存储等才能使其运行。
既然您喜欢手动干预,那么您建议的设置听起来不错。只要您有 SQL 备份,并且任何 IIS 内容都在服务器之间复制,那么使用 NLB 的设置应该可以正常工作。