在一台机器上的两台虚拟机上托管一个应用程序——有什么问题吗?

在一台机器上的两台虚拟机上托管一个应用程序——有什么问题吗?

我有一个 Web 应用程序,它托管在两个不同的虚拟机上,而这两个虚拟机恰好位于一台机器上。

三台物理机全部是Windows XP,虚拟机也是Windows XP。

我以这种方式设计架构的原因是我想让我的 Web 应用程序可扩展并可部署在不同机器上,所以我从一开始就这样构建它。现在我将其托管在虚拟机上,因为我现在看不到扩展的需要。然而,当时间到来时,我会真正将 Web 应用程序部署在两台不同的真实机器上,以实现负载平衡。

问题:如果我使用虚拟机来使用单个 Web 应用程序,会有什么问题吗?虚拟机是否有可能无法像真实机器一样正常工作?

你怎么认为?

在这方面我使用的是 Sun Virtualbox 2.2。

答案1

只要你使用的虚拟化技术能够提供足够好的网络功能,让所有东西都能互相通信,它就应该能正常工作。运行虚拟化的开销不可避免地会导致性能下降,但对于测试中负载较轻的网站来说,这应该不会造成致命影响。

答案2

将它们全部运行在同一个物理硬件上应该不成问题。唯一的风险是单个硬件故障会导致所有系统瘫痪。

举个实际的例子,我运行了一个完全虚拟化的 7 台服务器网络农场,有时它们都位于同一台主机上(更多的时候为了冗余而分成两台)。我们使用 VMWare 基础架构。

虚拟化的一个好处是,随着流量的增加,我们可以根据需要为现有服务器群分配更多 CPU/网络资源(无需添加更多服务器)。但在此之前,这些资源可用于其他用途。

相关内容