我将设置一个具有两个节点的高可用性托管服务器(负载平衡器、mysql、apache、php、memcached、apc,可能还有某种分布式/网络文件系统)。我想将负载平衡器、数据库、Web 服务器和文件系统隔离到单独的虚拟机中,以防止系统的一部分在发生故障、安全漏洞等情况下影响另一部分。出于这个原因,我排除了 openvz,因为它没有完全隔离虚拟机的资源。到目前为止,我在 serverfault.com 和 stackoverflow.com 上搜索了大量文章和帖子。我很难找到针对我的情况的最新信息和建议,因此我在这里发布了这个问题。我设法将选择范围缩小到 KVM 和 Xen,但我没有找到任何信息使在两者之间做出决定变得更容易。 KVM 和 Xen 受到青睐,因为它们拥有良好的业绩记录以及管理虚拟机的方式(它们拥有专用资源,不会像 openvz 那样由于过度销售而被盗用)。
需要考虑的一些事项:
- 性能不是我最关心的问题,两者之间的性能差异很小,如果它能在其他方面有所权衡(例如易于管理),我愿意为更好的硬件多付一点钱。
- 我很想有一个 Web 界面来管理我的虚拟机。目前我使用 AWS EC2,并且已经习惯了它的易用性。
- 我目前只使用 Ubuntu,我认为将来不会改变。因此无需考虑其他操作系统。
- 我稍微偏爱那些 Just Work(tm) 的东西。
在这种情况下,KVM 和 Xen 哪个更有优势?
答案1
嗯,在我看来,我肯定会选择 Xen,但我的大部分经验都在于此。
基本 Xen 服务器的设置和使用非常简单,只需将 Xen 服务器安装到服务器上即可。性能方面我从未遇到过任何问题。
Xen 的一大优势是使用免费的管理器,例如 Cloudstack。虽然设置起来可能有些棘手,但它使管理环境变得容易得多,您甚至可以获得一个插件,使其使用与 Amazon 相同的命令。Cloudstack 和其他管理器甚至会为您提供免费的高可用性和负载平衡,这对我来说是一个巨大的优势。使用 Cloudstack,您还可以导入许多模板或制作自己的模板来生成新的 VM。例如,最近我需要设置许多 Dev 和 Staging 服务器,我通过在 Dev 中进行设置、拍摄快照并创建快照实例节省了大量时间。
但老实说,这很大程度上取决于个人喜好。
答案2
如果您正在寻找“可以正常工作”的东西,我相信管理 KVM 比 Xen 要简单得多。我在生产中使用它已有大约一年了。
KVM 也是 Ubuntu 所依赖的,所以您可以利用这一点。虚拟机管理器与 KVM 配合得很好,并且提供了类似于 VMWare Sphere Client(或他们现在所称的任何名称)的漂亮 GUI。您还可以使用 virsh 从终端轻松完成所有操作。