Linux KVM and OpenVZ有什么不同


一、介绍
在决定选择虚拟专用服务器解决方案时,许多网站所有者根据定价和规格做出决定,但通常会忽略虚拟化技术。选择一种虚拟化技术可能是拥有高性能和低劣应用程序的区别。因此,了解什么是虚拟化以及不同种类的虚拟化技术可以让您在需要 VPS 时做出正确的决定非常重要。 在本文中,我们将介绍您需要了解的有关 Linux KVM 和 OpenVZ 的所有信息,包括它们的区别和最佳用例场景。 但首先,什么是虚拟化?虚拟化是创建虚拟版本的过程,例如操作系统、应用程序、存储设备或网络资源。虚拟化允许将一个物理资源划分为多个逻辑资源,每个逻辑资源都可以独立使用。通过允许多个操作系统在单个物理计算机上运行,​​虚拟化可用于提高硬件的效率和利用率。它还可用于通过在不同的虚拟机中隔离不同的系统和应用程序来提高安全性。
什么是管理程序?
管理程序是使虚拟化成为可能的软件(或在某些情况下为硬件),其主要功能是跨虚拟机实例划分和分配硬件和操作系统资源。管理程序可以为创建的任何虚拟机设置资源,例如内存、存储、CPU 功率和网络带宽。它还可用于按需停止、重新启动和销毁现有虚拟机。KVM 和 Open VZ 都是托管服务提供商用来分割和创建服务器层并从一个或一组物理硬件共享资源的 Hypervisor。
二、Linux KVM (Kernel-based Virtual Machine)
创建的每个操作系统实例都称为虚拟机(具有自己独立的专用内核)。KVM 主要用于创建以 Linux为操作系统的虚拟机,但支持其他客户操作系统,如 Windows、Haiku 和 Solaris。KVM 已经存在了十多年,被谷歌、亚马逊和 Facebook 等大公司使用。
三、OpenVz (Open Virtuozzo)
Linux OpenVZ 是一种操作系统级别的虚拟化技术,它允许多个隔离的操作系统 (OS) 在单个物理服务器上运行。每个 OS都称为一个容器,相当于 KVM的一个虚拟机(VM)。然而,容器比虚拟机更轻量级和高效,使其更适合在单个服务器上托管多个应用程序。 您使用 OpenVZ 构建的所有容器共享一个主机内核,该内核被打包为 Linux 发行版。因此,OpenVZ 不支持其他操作系统。 Linux OpenVZ 也是一个开源项目,任何人都可以免费使用。
四、KVM and OpenVZ?有什么不同呢
KVM 和 OpenVZ 之间的主要区别在于它们处理虚拟化的方式。OpenVZ 在操作系统级别处理虚拟化,而 KVM 在完整或硬件级别处理虚拟化。 由于 KVM 的虚拟化是在硬件层面,它能够更好地完全隔离每个虚拟机,因此它可以支持其他操作系统并且可以定制到几乎任何长度。 OpenVZ 使用操作系统级别的虚拟化,这实际上意味着创建的所有容器都必须基于 Linux 并共享来自主机内核的相同资源,这使得 OpenVZ 的定制器更少,更专门针对基于 Linux 的应用程序。 使用 KVM 创建的虚拟机直接使用物理机硬件资源,与依赖主机内核的 OpenVZ 相比具有很多性能优势。 KVM 虚拟机的缺点是它们的开销很高,这实际上意味着运行成本很高。 与 KVM 相比,OpenVZ 容器在其主机资源上的运行开销很小,因为它们不需要完整的虚拟机管理程序,并且仅依赖于其虚拟机管理程序基于内核的主机。 同样使用 OpenVZ,您可以更好地控制资源分配,多达 99% 的物理硬件可分配给容器。 例如,当 OpenVZ 设置中未使用物理内存 (RAM) 时,任何正在运行的容器都可以访问它。 如果任何容器决定运行 RAM 密集型进程,它将影响整个容器网络的整体性能(在创建太多容器时很常见)。 对于 KVM,每个虚拟机都创建有硬限制,这实质上意味着它们永远不能使用超过分配给它们的内存,即使周围有额外的未使用内存。 KVM 和 OpenVZ 都可以完全免费使用,但在运营成本方面,KVM 更昂贵,并且对运行的硬件要求更高。 与 OpenVZ 相比,KVM 还需要复杂的设置,OpenVZ 使用更简单的配置并提供更低的开销。 这使得 OpenVZ 成为预算有限的公司的首选,而 KVM 更适合需要更多抽象和隔离的大型企业。
五、 KVM 比 OpenVZ运行更快吗?
KVM 虚拟机几乎可以本地访问机器的物理资源,因此与需要中间件(主机内核)访问资源的 OpenVZ 容器相比,它们的速度更快。
六、我可以在 OpenVZ 容器中运行 Windows 吗?
不,这仅仅是因为 OpenVZ 与 Linux 内核捆绑在一起,并且因为它在操作系统级别处理虚拟化,所以创建的每个容器都必须基于相同的操作系统,在这种情况下,那就是 Linux。
七、
KVM 和 OpenVZ 之间的主要区别是什么?
Linux KVM 和 OpenVZ 都是虚拟化软件的类型,但它们有一些关键的区别。 OpenVZ 创建共享单个内核的容器,而 KVM 使用具有自己内核的虚拟机。这意味着 KVM 更适合托管多个操作系统,而 OpenVZ 更适合托管多个应用程序