哪个以后更容易扩展 - 1 台服务器直接在操作系统上配备完整的 LAMP 堆栈,或者 1 台服务器运行带有 2 个 VM 的 VMWare Server 2 - 一个运行 apache 和 PHP,另一个运行 MySQL。
我将在此基础上运行的应用程序是用 PHP 编写的,并使用 MySQL。最终,可能需要对其进行扩展 - 我想知道从 VM 环境还是物理环境进行扩展更容易。
我计划使用 SLES 64 位作为操作系统 - 用于客户机和主机。
感谢您的帮助。
答案1
虚拟化会增加开销。我会在一台服务器上使用 LAMP,当有需要时,再添加另一台机器并将 MySQL 移到该机器上(如果您知道自己在做什么,切换可能需要一小段停机时间)。
从那时起,您可以开始添加更多具有负载平衡功能的 Web 服务器以及更多具有复制功能的 MySQL 服务器。
答案2
如果您知道要扩展应用程序,使其远远超出单个服务器的处理能力,那么显然不需要虚拟化。对于服务器恢复等,它仍然非常有用。缺点是开销,当您将大量联网进程分布在多个虚拟机上时,它们的速度会稍微变慢。
LAMP 的“经典”扩展故事可能如下所示:
第一个服务器直接在一台服务器上使用完整的 LAMP 技术栈。
然后是 2 个服务器:1 个用于 Web 服务;1 个具有大量 RAM 和磁盘 I/O 的用于 MySQL。
然后是 4 个服务器:1 用于负载平衡基于原始 IP 地址的粘性会话(以及可选的静态文件服务、SSL 卸载);2 个用于 Web 服务;1 个带有大量 RAM 和磁盘 I/O 的 MySQL 服务器(以及可选的热备用备份 MySQL 服务器)。
在这个过程中,我认为虚拟化没什么用。奇怪的是,在 4 台服务器之后,虚拟化又变得更有意义了——下一步可能是云计算。
但还有另一件事需要考虑——辅助服务器(如邮件服务器、监控服务器、软件包安装存储库等)怎么样?您需要其中任何一个吗?如果需要,它们可能是虚拟化的良好候选者,因为它们可能不需要完整的服务器容量。
答案3
做好对数据进行分片的心理准备[以及迟早的应用服务器]。例如,使用几个不同的数据库进行分片,并且已经在应用程序中内置了分区逻辑。
我认为一开始你可以让所有程序都在单台机器上运行 - 你确实会得到更好的性能,而且将来将 sql 分片移到不同的机器上应该相对轻松。