我应该选择 KVM/XEN 而不是 OpenVZ 还是将它们一起使用?

我应该选择 KVM/XEN 而不是 OpenVZ 还是将它们一起使用?

我有一台双 xeon e5504 服务器,[目前] 内存只有 8GB。存储也不怎么样:3x 146GB sas 组成 raid5 + 500GB sata 驱动器。目前它用作开发服务器,但其规格超出了我们的需求,而且由于我们的开发方法在过去 2 年发生了变化,我们决定将其用作某些应用程序的生产系统 + 我们希望有一个单独的系统用于测试/研究。我们的应用程序主要是部署在 tomcats [复数,因为某些应用程序需要较旧的版本] 上的 Web 应用程序,并连接到 Postgres。

我想要一个生产系统,其中只设置了 httpd+tomcat+db,没有其他程序在那里运行。无菌系统。除此之外,我想要一个测试系统,在其中我可以尝试不同的 JVM 设置、部署我的测试应用程序、尝试 tomcat/httpd 设置并重新启动它们,而不会干扰生产系统。

除此之外,我还想尝试不同的 Linux 版本,使用较新的内核来测试它们的工作原理等。我知道,OpenVZ 无法做到这一点,因此我必须选择 KVM。我正在考虑将两者合并,并设置一个 KVM 以便能够与不同的系统 [坦率地说仅限于 Linux] 一起工作 + 使用 openVZ 为我的开发需求设置单独的机器。我本来会直接这样做,但在阅读关于完全虚拟化对容器的性能影响以及查看我的服务器的规格后,我对此三思而后行。我不想损失太多性能,尤其是由于我的应用程序的性质 [同时运行几个 JVM]。

除了使用桌面 virtualbox/vmserver 之外,这将是我第一次使用虚拟化。虽然我学东西很快,但我并不想过多地干扰主系统,以免破坏生产应用程序或使它们运行缓慢。虽然它们或多或少是内部应用程序,并且不会产生太多负载,但它们需要稳定。

我读到,KVM 主机是一个普通的 Linux 安装,它允许在其上运行普通进程。如果是这样,它是否也允许运行 openVZ?我的意思是...我可以让 KVM 和 OpenVZ 在同一系统/内核上运行吗?或者我必须设置另一个系统来运行 OpenVZ 容器?这会对我的性能产生多大影响?我的硬件够用吗?

哦,还有一件事...不幸的是我的资金非常有限...我只寻找免费的解决方案 :/

答案1

不同之处在于虚拟化方法,KVM 是一个内核模块(因此得名),作为 Linux 内核的一部分运行,允许本机虚拟化或半虚拟化。您正在运行一个完整的系统环境。

Openvz 在容器中运行操作系统 - 类似于 BSD jail。当所有虚拟机都运行相同的操作系统(例如 Linux)时,效率会更高,实际上每个“客户机”都是在主操作系统内 chroot 的操作系统的一个实例。

KVM 将在操作系统方面为您提供更大的灵活性 - 您可以在 KVM 主机内运行 Windows 或 fbsd VM。但是,每个 VM 都需要为其分配硬盘映像和内存。

当您想要运行大量 Linux VM 并需要能够在它们之间灵活分配资源时,Openvz 是更好的选择。由于系统都使用相同的文件系统、内核和内存空间,因此容器不需要内存来专供其使用。

答案2

这在某种程度上取决于你在做什么。从托管的角度来看,OpenVZ 非常出色,因为它可以非常高效地利用硬件。所有未使用的资源都可供使用。因此,你可以拥有更高的容器密度,并以更低的容器价格的形式将其传递给客户。使用 KVM,客户未使用的任何内存或硬盘空间都会被浪费。因此,你不能容纳那么多客户,也不需要更多的 RAM/硬盘空间等,而这些会以更高的价格转嫁给客户。

从用户的角度来看,OpenVZ 为他们带来了更多的性价比,因为内核、内核模块和硬件实用程序无需使用内存。最终节省了相当多的内存。安装基本服务器、核心和基础组后,我发现 OpenVZ 容器上的内存使用量约为 15MB(不包括缓存/缓冲区),而 KVM 上的内存使用量超过 100MB(不包括缓存/缓冲区)。两者都使用 CentOS 6 64 位,并在重启后立即测量。因此,OpenVZ 提供商提供的 512MB VPS 计划实际上为客户提供的内存比 512MB KVM 计划多 100MB。

OpenVZ 的另一个好处是它的开销非常低。可能比在裸机上运行高不了多少,最多也就高出 2% 或 3%。事实上,由于它的开销如此之低,我们通常会将专用服务器客户放在一个 OpenVZ 容器中,因为这样管理起来更容易。如果他们想迁移到不同的数据中心或升级硬件,只需点击一下,将容器迁移到新硬件即可。无需重新安装或重新配置。虽然我没有任何比较数字,但 KVM 的效率并不高。我只能通过使用它并观察平均负载来判断。我想说开销可能高出 10%。因此,12-13% 的开销与 2-3% 的开销相比。很多人似乎认为 KVM 的开销会随着时间的推移而改善,但在过去几年中我没有看到太大的变化。我认为一开始有所改进,但在过去几年中它已经成熟了很多,性能改进已经趋于平稳。

OpenVZ 的唯一主要缺点是客户无法访问内核或对内核做任何事情。他们需要做的一些事情可以由提供商完成,也可以在控制面板中为客户设置访问,就像 SolusVM 对 TUN/TAP 和 PPP 所做的那样。绝大多数托管客户不需要访问内核。

答案3

我试用了 Proxmox,它似乎是我最好的解决方案。使用几天后,我非常满意,并希望它能带来最好的效果。请注意,这是基于几天使用情况得出的意见,但我没有发现任何其他/更简单的方法可以达到目的。

相关内容