Xen vs. KVM – Hypervisor比较

当我们谈论虚拟化概念时,总会涉及到的术语之一就是虚拟机监控程序(hypervisor)技术。虚拟机监控程序被个人或组织用于合并服务器空间或在不依赖主机服务器的情况下运行额外的服务器。虚拟机监控程序以一种确保数据的集中管理方式执行虚拟化,而这正是Xen和KVM虚拟机监控程序所做的。

Xen是一个于2003年发布的通用公共许可虚拟机监控程序。Xen表现出色,曾被认为是Linux最佳的虚拟化平台,直到2007年,KVM开始证明自己是一个值得考虑的替代品。

虚拟化领域的事物在不断演进,因此虚拟机监控程序的角色也在不断扩展。跟上虚拟化领域的最新发展可能是具有挑战性的,您可能难以决定在这两个虚拟机监控程序之间选择哪一个。您来对地方了,继续阅读,您的困惑将会得到解决。

Xen

Xen是一种开源的类型1虚拟机监控程序,可以直接安装在计算机上,无需主机操作系统的干预。作为一种类型1虚拟机监控程序,Xen可以在没有任何中介的情况下控制、监视和管理计算机的各个方面(硬件、外围设备和输入/输出资源)。

Xen与同一或不同操作系统的多个版本兼容。它原生支持大多数操作系统,包括Linux内核,因此在所有Linux发行版中都可以使用。此外,Xen是客户虚拟机的重要组件;必须在这些客户虚拟机上安装Xen,以便它们可以访问硬件组件。

简而言之,Xen是一种开源虚拟机监控程序,允许在一台物理计算机上同时开发、运行和管理多个虚拟机。

 

Xen提供两种虚拟化类型:半虚拟化和全虚拟化

在半虚拟化中,虚拟化的操作系统在操作系统的修改版本上运行。因此,修改后的操作系统会意识到自己被虚拟化了。这允许操作系统和物理硬件之间更高效的交互,因为硬件设备可以直接访问。然而,半虚拟化的功能依赖于修改过的客户操作系统的事实,因为大多数供应商不提供它。

Xen还提供全虚拟化,这是一种需要CPU支持的虚拟化扩展的模式。在这种模式下,未修改的操作系统可以有效地指示硬件,因为有了这种支持。全虚拟化通常会带来性能缺陷,因为完全仿真通常需要更多的处理资源和虚拟机监控程序的开销。

Xen在x86、x86_64、Itanium和ARM框架上运行良好。此外,Xen可以在其支持的CPU框架上作为客户运行Linux、Windows、Solaris和一些伯克利软件发行版(BSDs)。此外,Xen被许多公司采用,主要由Citrix使用。但也被Oracle用于Oracle VM等。

Xen可以在兼容虚拟化扩展的系统上执行全虚拟化,并仍保留其作为客户机监控程序在缺乏这些虚拟化扩展的客户机上运行的能力。因此,Xen可以运行多个客户操作系统,每个操作系统都在Xen的虚拟机或域中运行。在安装时,Xen会自动创建第一个称为Domain 0的域。Domain 0负责管理系统,并执行诸如为每个虚拟机管理虚拟设备、迁移虚拟机、构建额外域等任务。

Xen虚拟机监控程序的优点Xen虚拟机监控程序的缺点

  • Xen非常适合小型组织,因为它是免费的并且能够高效地管理资源。
  • Xen允许虚拟机的实时迁移。因此,它可以保持系统运行,而不受后台硬件更改的影响。
  • 由于Xen是开源虚拟机监控程序,用户不需要担心供应商锁定问题。
  • Xen提供具有出色用户界面的控制台,使交互变得容易。
  • 作为虚拟机监控程序,Xen可以安全地将虚拟服务器从一个物理服务器转移到另一个物理服务器。
  • Xen拥有广泛的第三方社区支持,包括备份、存储处理、容量规划、性能监控、过程控制等管理策略。

Xen虚拟机监控程序的缺点

尽管Xen是最佳虚拟机监控程序之一,但仍然存在一些缺点

  • Xen虚拟机监控程序不支持USB设备。
  • Xen虚拟机监控程序的免费版本提供的服务有限。用户必须选择付费版本才能享受Xen的全部优势。
  • 增加主机的存储空间是困难的。
  • 新用户不容易进行升级过程。
  • 虚拟网络不够稳定。

KVM

基于内核的虚拟机(Kernel-based Virtual Machine,KVM)是一种类型1的开源虚拟化技术,基于Linux。KVM允许用户将Linux转换为类型1虚拟机监控程序,从而使主机计算机能够运行多个隔离的虚拟机,这些虚拟机是分离的虚拟环境。KVM与大多数Linux操作系统兼容,包括Ubuntu、SUSE和Red Hat Enterprise Linux。它还支持其他操作系统,如Windows。

与其他Linux内核虚拟机监控程序一样,KVM具有操作虚拟机所需的所有基本操作系统级组件,包括内存管理器、进程调度器、输入/输出(I/O)堆栈、设备驱动程序、安全管理器、网络

堆栈等。每个虚拟机都被操作为常规的Linux进程,拥有专用的虚拟硬件,如网络卡、图形适配器、CPU、内存和磁盘。

除了半虚拟化和全虚拟化之外,KVM还提供硬件辅助的半虚拟化。在这种情况下,支持的硬件与处理器一起工作。由此可见,效率提高了,并且减少了对客户系统所需的修改数量。

基本上,KVM主机不是单独运行的。在Linux内核上,KVM与两个KVM内核模块一起运行(kvm.ko模块和kvm-intel.ko或kvm-amd.ko)。由于KVM与内核块和网络驱动程序的输入/输出连接的紧密集成,KVM为其客户提供了更无缝地访问所有复杂硬件和网络配置文件的能力。

由于将用于KVM开发的硬件虚拟化扩展合并到了现代CPU设计中,KVM客户可以安全地访问它们需要的硬件资源,而无需担心泄漏到更大的系统中。

在使用KVM时,您的主机操作系统必须是Linux。然而,它可以在Linux、Windows、Solaris和BSD客户上无缝运行。此外,KVM还在支持虚拟化扩展的x86和x86-64系统上运行。这意味着KVM不兼容于在虚拟化扩展建立之前制造的旧CPU,并且不适用于不具备虚拟化扩展的现代CPU,如Intel的Atom CPU。

KVM虚拟机监控程序的优点

 

目前,KVM似乎是用户在虚拟化方面的首选。以下是KVM提供的一些优势:

  • KVM提供了可靠的安全性,因为它基于Linux并具有Linux高级安全功能的全部优势。
  • 作为一种开源虚拟机监控程序,KVM允许用户根据个人或业务需求使用和修改其功能。
  • KVM具有Linux的内存管理,使其能够更好地了解更新。
  • 此外,KVM提供快速迁移时间。这意味着机器可以在线和离线迁移,而不会出现数据丢失或停机的风险。此功能进一步允许用户迁移到具有不同CPU框架的服务器,甚至通过外部服务(如Secure Shell)进行通道传输。

KVM虚拟机监控程序的缺点

  • KVM有复杂的设置过程。
  • KVM缺乏足够的处理器支持。
  • KVM缺乏内置的CPU虚拟化支持,因此其性能受到轻微影响。
  • 由于硬件集中,系统故障时丢失数据的风险更大。

Xen与KVM的区别

XEN KVM
Xen可以在计算机硬件上无缝运行,替代操作系统。因此,多个客户操作系统可以同时在计算机硬件上运行。 KVM有一个名为kvm.ko的内核模块,它利用CPU的虚拟化能力和Linux内存。kvm.ko有效地将虚拟CPU和内存分配为Linux进程。
Xen是归属于Linux的虚拟化实体。 KVM被视为基于Linux内核的表面虚拟机监控程序模块。
Xen的支持企业包括Citrix、Novell、Oracle、Red Hat(RHEL5)和Virtual Iron。 KVM支持Redhat、Ubuntu等
Xen有一个多样化的支持结构;它支持来自AMD(Advanced Micro Devices)、Fujitsu、IBM、x86/64 CPU供应商和Intel CPU嵌入支持等多个CPU的x86、IA64和ARM(Advanced RISC Machine)。 KVM兼容支持虚拟化的任何CPU。
Xen需要对内核进行打补丁。 KVM内置于内核中。

 

总之,虚拟化已经在IT世界中带来了重大变革,并使部署变得更加容易。随着Xen和KVM虚拟机监控程序的引入,虚拟化变得更加出色。

结论

KVM和Xen是两个用C语言编写的高效的Hypervisors。

它们的区别在于,KVM是Linux内核中的虚拟化模块,其操作方式类似于Hypervisor。与此同时,Xen是一种第一类型的Hypervisor,允许在同一台计算机硬件上同时运行多个操作系统。

Xen和KVM提供了特定的优势,主要包括在单个物理服务器上同时运行多个操作系统并实现网络灵活性的能力。选择在这两种Hypervisor之间的决策取决于组织的主要基础架构、员工资源和对使用云的兴趣等因素。

最后但同样重要的是,使用基于Xen或KVM的虚拟化的组织需要记住它们仍然容易受到勒索软件攻击和其他灾难的影响。因此,像Storware这样的可靠备份和恢复软件可能会派上用场。