我有一个 Web 应用程序,它托管在两个不同的虚拟机上,而这两个虚拟机恰好位于一台机器上。
三台物理机全部是Windows XP,虚拟机也是Windows XP。
我以这种方式设计架构的原因是我想让我的 Web 应用程序可扩展并可部署在不同机器上,所以我从一开始就这样构建它。现在我将其托管在虚拟机上,因为我现在看不到扩展的需要。然而,当时间到来时,我会真正将 Web 应用程序部署在两台不同的真实机器上,以实现负载平衡。
问题:如果我使用虚拟机来使用单个 Web 应用程序,会有什么问题吗?虚拟机是否有可能无法像真实机器一样正常工作?
你怎么认为?
在这方面我使用的是 Sun Virtualbox 2.2。
答案1
只要你使用的虚拟化技术能够提供足够好的网络功能,让所有东西都能互相通信,它就应该能正常工作。运行虚拟化的开销不可避免地会导致性能下降,但对于测试中负载较轻的网站来说,这应该不会造成致命影响。
答案2
将它们全部运行在同一个物理硬件上应该不成问题。唯一的风险是单个硬件故障会导致所有系统瘫痪。
举个实际的例子,我运行了一个完全虚拟化的 7 台服务器网络农场,有时它们都位于同一台主机上(更多的时候为了冗余而分成两台)。我们使用 VMWare 基础架构。
虚拟化的一个好处是,随着流量的增加,我们可以根据需要为现有服务器群分配更多 CPU/网络资源(无需添加更多服务器)。但在此之前,这些资源可用于其他用途。