幾大開源虛擬機管理程序技術
譯文【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】