【51CTO.com快译】虚拟机管理程序监控虚拟机的创建和运行,它允许大量操作系统各异的机器在单个主机上运行。本文介绍了虚拟机管理程序的几种类型,并描述了几大虚拟机管理程序技术。
虚拟机管理程序是一个软件层,提供了在同一物理主机上运行多个虚拟机的功能。它通常分两种类型:Type1虚拟机管理程序和Type2虚拟机管理程序。
Type1虚拟机管理程序直接在物理硬件上运行,它控制硬件并管理虚拟机。Type1又叫裸机虚拟机管理程序。
Type2虚拟机管理程序作为一个应用程序在现有操作系统(又叫主机操作系统)上运行,该操作系统安装在裸机上。这里增添了一层复杂性:访客操作系统调用在到达硬件之前需要通过主机操作系统堆栈来传输。
不妨看一下系统管理员可以使用的流行的免费虚拟机管理程序,包括Type1和Type2。但愿本文可帮助他们根据需求选择最适合的虚拟机管理程序技术,并有助于评估其他的商业虚拟机管理程序。
Type1虚拟机管理程序
Linux KVM
KVM(基于内核的虚拟机)是为x86机器开发的基于GNU/Linux的项目。它使用名为kvm.ko的可加载内核模块来运行,该模块可将Linux内核本身转变成虚拟机管理程序,因此虚拟机可以直接访问硬件。KVM还包含针对特定处理器的内核模块,比如kvm-intel.ko和kvm-amd.ko。virt-manager和virsh应用程序通常用于管理使用KVM创建的虚拟机。virt-manager提供GUI,而virsh是命令行实用程序。有一种误解以为KVM是操作系统托管的Type2虚拟机管理程序,而不是裸机虚拟机管理程序。而事实上,KVM实际上直接在x86硬件上运行。
VMware免费ESXi
我们可能认为VMware产品是专有而非免费,但并非总是如此。VMware的高级虚拟机管理程序产品名为VMware ESXi,可以免费下载。虽然它不是开源,但一些组件软件可供下载。然而,即便未输入免费版本的序列号,用户仍可以选择用60天,所有高级功能都被启用。可以从https://my.vmware.com/web/vmware/evalcenter?p=free-esxi6试用免费的VMware ESXi。
图1:Type 1虚拟机管理程序
Xen
Xen项目是领先的开源虚拟化平台之一。Xen虚拟机管理程序采用GPLv2许可证。与许多竞争对手一样,Xen还提供来自思杰的商业版。Oracle VM是实现Xen的另一种商业产品。Xen项目平台支持许多云平台,比如Openstack和Cloudstack等。Xen虚拟机管理程序为X86、IA64、ARM及其他CPU架构的虚拟化提供了高效安全的功能特性,已用于虚拟化众多访客端操作系统,包括Windows、Linux、Solaris和各种版本的BSD操作系统。
微软Hyper-V
微软推出的Hyper-V是其他许多虚拟化产品的竞争对手。它提供了免费下载版本,可供评估。免费的独立Hyper-V Server 2012拥有Windows Server 2012中的Hyper-V角色集成的所有功能,比如无共享(shared nothing)实时迁移和故障切换集群等。Hyper-V的架构在维基百科中有清晰的解释(https://en.wikipedia.org/wiki/Hyper-V)。
Type2虚拟机管理程序
Xvisor
Xvisor是一种Type2整体式开源虚拟机管理程序,旨在提供轻量级、便携式又灵活的虚拟化解决方案。它在X86和ARM CPU架构上得到支持。一个主要的区别是,Xvisor是完全整体式的;因此它有一款用于硬件访问、CPU虚拟化和访客IO仿真的通用软件。然而,KVM和Xen等其他虚拟化技术分别部分基于整体式和微内核。部分整体式的虚拟机管理程序(比如KVM)是通用整体式操作系统(比如Linux)的扩展,它在内核中提供主机硬件访问和CPU虚拟化,并通过在用户空间中运行的应用程序提供访客IO仿真(比如Qemu)。微内核虚拟机管理程序通常是轻量级微内核,在内核中提供了基本的主机硬件访问和CPU虚拟化,其余有赖于管理访客(比如Xen的Dom0)。想了解更多的详细信息并下载,请参阅Xvisor官网(http://xhypervisor.org/)。
Oracle VirtualBox
Oracle VirtualBox是一种Type2虚拟机管理程序,可以在Linux、Windows、Macintosh和Solaris主机上运行。它可移植,因为可以在众多32位和64位主机操作系统上运行。它之所以被称为托管虚拟机管理程序,是由于它需要安装现有的操作系统。VirtualBox的一项优秀功能是可以使用OVF(开放虚拟化格式),轻松导入和导出虚拟机,甚至可以导入不同虚拟化软件创建的OVF。详细功能列表可在http://download.virtualbox.org/virtualbox/UserManual.pdf上找到。
VMware Workstation Player
VMware Workstation Player是一种Type2桌面虚拟化应用程序,提供了简化的用户界面,用于运行和评估在Windows或Linux机器上的虚拟机中的操作系统和应用程序。简单的UI使其成为向员工、合同工或客户交付虚拟桌面的最简单方法。它可从https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0下载。
Lguest
Lguest是一种内置于Linux内核中的非常轻量级的虚拟机管理程序。Lguest的核心是Linux内核2.6.23及更高版本提供的驱动程序模块(名为“lg”)。Lguest为Linux提供了准虚拟化解决方案。“lg”驱动程序模块在初始化期间分配一段内存,映射到内核的地址空间,一个小小的虚拟机管理程序被加载到该内存区域。它还提供虚拟化的I/O子系统。话虽如此,它并不提供其他虚拟机管理程序提供的任何花哨功能;然而如果你需要开发和测试内核引导,它是不错的选择。若想试用Lguest,用户可以看看LWN的文章(https://lwn.net/Articles/218766/)。说明文档和下载详细信息可在http://lguest.ozlabs.org/上找到。
图2. Type 2虚拟机管理程序
LinuX Containers(LXC)/Docker
LinuX Containers(LXC)是一种操作系统级虚拟化方法,用于在单个控制主机(LXC主机)上运行多个隔离的Linux系统(容器)。它不提供虚拟机,而是提供有自己的CPU、内存、块I/O和网络等资源的虚拟环境。它利用Linux内核的cgroups功能,该功能提供了隔离的命名空间来运行隔离的应用程序。容器的一个优点是,它们不需要像虚拟机那样的完整访客操作系统。请参阅该链接(https://linuxcontainers.org/),以了解有关容器的更多信息。
Linux-VServer
Linux-VServer是一种操作系统级虚拟化解决方案。它是基于安全上下文的软分区概念技术。它基本上创建虚拟专用服务器(VPS),通过共享硬件资源在单个物理服务器上同时运行。每个VPS都有自己的数据库帐户和root密码,因而与其他虚拟服务器隔离开来。请参阅Linux-VServer官网(http://linux-vserver.org/),进一步了解该解决方案并下载。
原文标题:The Top Open Source Hypervisor Technologies,作者:Krishnaprasad K和Avinash Bendigeri
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】