XEN 与 KVM 在内部虚拟服务器场(如实时场)中的状态

Chr*_*sen 4 virtualization xen kvm-virtualization

所以我们有一个生活服务器农场,传统的东西没有虚拟化。这是暂时保持这种状态。我们所说的服务器是:Loadbalancer、DB master、DB Slaves(2x)、Webservers(2x)、CMS服务器。每个场总共有 7 个服务器。

为了内部目的,我们希望拥有一对多而精确的生活结构“副本”。

  • 测试/暂存:如果我们不使用相同的软件配置,在上线之前发现可能会漏掉的错误
  • 调试/基准测试:与测试相同,但需要额外的工具。调试标志并与 Tetsing/Staging 隔离,以免干扰 QA。旨在更深入地了解我们的实时系统上的情况
  • 开发/实验:更改系统组件、软件版本、库和配置以提高性能、开发人员效率、我们的系统面向未来等。

总共有 3 个虚拟“农场”,每个有 7 个虚拟服务器,整齐地隔离。

现在我知道这可以通过许多不同风格的虚拟化来实现。问题是,什么是最好的?从战略角度来看,我们不希望使用 VMware 不开源。看看 XEN 和 KVM,这两个开源虚拟化领域最大的参与者,我很想听到一些关于选择什么/如何选择的建议。网络似乎未定。

附加信息:

  • 我们购买的服务器硬件的“使用寿命”为 2-3 年
  • 如果这是选择虚拟化技术时要考虑的一个因素,我们可能会在以后将系统迁移到云环境中
  • 在高负载场景中隔离服务器场/服务器很重要。当有人破坏实验农场时,QA 不应该受到影响
  • 有效的资源使用当然值得赞赏(内存过量使用/共享页面?像 linux-vserver hashify 这样的硬盘驱动器上的自动共享对象?)
  • 定期维护要求,易于管理

我知道事情正在进展中,但如果您能告诉我您对现在选择什么的看法,我将不胜感激,因为我们希望使用该技术至少 3 年,积累和重复使用专有技术。也可能最终我们都可以意识到,决定胜负的不是XEN还是KVM,而是其他因素。这方面的开悟对我们现在更有价值。

ps:不要着火:D

cor*_*ump 8

我们目前使用 Xen,但我认为在 2011 年我们将迁移到 KVM。有以下几个原因:

  • KVM 开发比 Xen 的开发更与 Linux 内核集成。
  • KVM 虚拟机作为 linux 内核的进程运行。这有很多含义,比如调度、内存管理等。这也允许 KVM过度 使用内存(它只是交换虚拟机/进程内存)以及所有使用内核中经过测试和验证的代码。Xen 使用它自己的代码来完成所有这些工作,虽然它不错,但它不像 linux 内核那样经过测试和证明。
  • Full virt 似乎在 KVM 上运行得更好。

反对 KVM 的主要观点是性能,但最近在 Linux 和 Windows 虚拟机上使用 VirtIO 驱动程序的报告似乎使这一点越来越不重要。

至于管理机器,我使用ganeti。Ganeti 是一个集群虚拟服务器管理系统,您可以在其中添加节点,并可以对这些节点上的 VM 执行所有操作,例如创建、启动、重启、迁移等。它还支持创建具有镜像磁盘映像的 DRBD 实例如果其中一个节点发生故障,则两个节点提供自动故障转移/迁移。它支持 KVM 或 Xen,但不支持混合集群。Ganeti 是基于文本的,但有一个Web 界面项目做得很好。使用 ganeti + debootstrap,我们可以非常快速地部署/克隆各种类型的虚拟机,从磁盘做 LVM 快照以进行测试等等,所以我认为它会让您了解这一点。

请记住,无论您选择哪一种,都不应该虚拟化文件服务器或数据库等高 IO 机器,并期望它们会执行相同的操作。在某些情况下,高 IO 虚拟机甚至会降低主机上所有其他虚拟机的性能。并非一切都可以安全地虚拟化。

编辑:既然你提到了测试和开发,请阅读这篇文章。我正在考虑组装一些非常接近的东西。