具有 3 台服务器的高可用性:是否要虚拟化?

具有 3 台服务器的高可用性:是否要虚拟化?

我们正在更换 SAAS 应用的主机 (IIS+MSSQL),并有机会重新设计基础架构。要么继续使用现有系统(运行良好),要么使用 vSphere 进行虚拟化。

当前的:

2 个 Web/DB 服务器 每个都安装了 IIS/MSSQL。Windows 网络负载平衡使用虚拟 IP 地址在 2 个节点之间分配流量,并使用 MSSQL 镜像为数据库提供自动故障转移功能。

1 个 MSSQL 见证服务器(小型虚拟机)

如果一台服务器发生故障,NLB 会将流量重新路由到另一节点,MSSQL 会自动进行故障转移。NLB 重定向期间可能会有 40 秒的停机时间。

可能的:

2 个 vSphere 主机

  • 防火墙虚拟机 – 1 vCPU,512MB RAM,20GB HDD
  • Web 服务器虚拟机 – 1 vCPU,2GB RAM,50GB HDD
  • DB 服务器虚拟机 – 2 vCPU,4GB RAM,100GB HDD

1 个 CentOS Linux SAN(作为 NFS 共享安装)

担心的是数据库和网络资源不足。目前,Web/DB 服务器充分利用了节点,只有当一个节点发生故障时才需要共享另一个节点。如果 SAN 出现故障怎么办?有人建议虚拟机硬盘将驻留在主机本身上,而 SAN 将充当冗余存储。我推测此解决方案使用 VMware High Availability - 数据库的数据丢失是不可接受的。是否应该设置 2 个数据库虚拟机,并在不同的主机节点上运行 MSSQL 镜像?

编辑:虚拟化的优点是能够克隆机器、轻松迁移到新硬件、能够分离 DB/Web 服务器。对此有什么评论吗?

任何帮助将不胜感激!

答案1

使用 vSphere,SAN 将成为(理论上,因为良好的 SAN 具有内置冗余)单点故障;但如果您希望能够在主机之间移动虚拟机,则需要将虚拟机磁盘放在那里(使用主机上的本地存储无法做到这一点)。

此外,您当前的解决方案可以保护您免受问题的困扰里面服务器:如果其中一个服务器的操作系统损坏,另一个服务器仍将保持在线;如果您的唯一 DB VM 出现问题,您将失去它。

我建议同时使用这两种解决方案:使用两台主机构建虚拟化环境,然后在其中放置冗余虚拟机,以便能够处理操作系统/应用程序级别的故障。​​但如果您的硬件资源有限,无法处理这种情况,那么就坚持使用当前解决方案。

答案2

数据库的数据丢失是不可接受的

好的。您需要 3 个使用 MIRRORING 的数据库服务器,第三个作为见证服务器。或者,在出现问题时将日志文件传送到外部第三个系统。

因为 SQL 服务器在发生故障时可能会损坏数据库。从而导致数据损坏。

您要么需要近乎实时的备份,要么基本上需要永久更新的数据库副本。

相关内容