幾大開(kāi)源虛擬機(jī)管理程序技術(shù)
譯文【51CTO.com快譯】虛擬機(jī)管理程序監(jiān)控虛擬機(jī)的創(chuàng)建和運(yùn)行,它允許大量操作系統(tǒng)各異的機(jī)器在單個(gè)主機(jī)上運(yùn)行。本文介紹了虛擬機(jī)管理程序的幾種類型,并描述了幾大虛擬機(jī)管理程序技術(shù)。
虛擬機(jī)管理程序是一個(gè)軟件層,提供了在同一物理主機(jī)上運(yùn)行多個(gè)虛擬機(jī)的功能。它通常分兩種類型:Type1虛擬機(jī)管理程序和Type2虛擬機(jī)管理程序。
Type1虛擬機(jī)管理程序直接在物理硬件上運(yùn)行,它控制硬件并管理虛擬機(jī)。Type1又叫裸機(jī)虛擬機(jī)管理程序。
Type2虛擬機(jī)管理程序作為一個(gè)應(yīng)用程序在現(xiàn)有操作系統(tǒng)(又叫主機(jī)操作系統(tǒng))上運(yùn)行,該操作系統(tǒng)安裝在裸機(jī)上。這里增添了一層復(fù)雜性:訪客操作系統(tǒng)調(diào)用在到達(dá)硬件之前需要通過(guò)主機(jī)操作系統(tǒng)堆棧來(lái)傳輸。
不妨看一下系統(tǒng)管理員可以使用的流行的免費(fèi)虛擬機(jī)管理程序,包括Type1和Type2。但愿本文可幫助他們根據(jù)需求選擇最適合的虛擬機(jī)管理程序技術(shù),并有助于評(píng)估其他的商業(yè)虛擬機(jī)管理程序。
Type1虛擬機(jī)管理程序
Linux KVM
KVM(基于內(nèi)核的虛擬機(jī))是為x86機(jī)器開(kāi)發(fā)的基于GNU/Linux的項(xiàng)目。它使用名為kvm.ko的可加載內(nèi)核模塊來(lái)運(yùn)行,該模塊可將Linux內(nèi)核本身轉(zhuǎn)變成虛擬機(jī)管理程序,因此虛擬機(jī)可以直接訪問(wèn)硬件。KVM還包含針對(duì)特定處理器的內(nèi)核模塊,比如kvm-intel.ko和kvm-amd.ko。virt-manager和virsh應(yīng)用程序通常用于管理使用KVM創(chuàng)建的虛擬機(jī)。virt-manager提供GUI,而virsh是命令行實(shí)用程序。有一種誤解以為KVM是操作系統(tǒng)托管的Type2虛擬機(jī)管理程序,而不是裸機(jī)虛擬機(jī)管理程序。而事實(shí)上,KVM實(shí)際上直接在x86硬件上運(yùn)行。
VMware免費(fèi)ESXi
我們可能認(rèn)為VMware產(chǎn)品是專有而非免費(fèi),但并非總是如此。VMware的高級(jí)虛擬機(jī)管理程序產(chǎn)品名為VMware ESXi,可以免費(fèi)下載。雖然它不是開(kāi)源,但一些組件軟件可供下載。然而,即便未輸入免費(fèi)版本的序列號(hào),用戶仍可以選擇用60天,所有高級(jí)功能都被啟用??梢詮膆ttps://my.vmware.com/web/vmware/evalcenter?p=free-esxi6試用免費(fèi)的VMware ESXi。
圖1:Type 1虛擬機(jī)管理程序
Xen
Xen項(xiàng)目是領(lǐng)先的開(kāi)源虛擬化平臺(tái)之一。Xen虛擬機(jī)管理程序采用GPLv2許可證。與許多競(jìng)爭(zhēng)對(duì)手一樣,Xen還提供來(lái)自思杰的商業(yè)版。Oracle VM是實(shí)現(xiàn)Xen的另一種商業(yè)產(chǎn)品。Xen項(xiàng)目平臺(tái)支持許多云平臺(tái),比如Openstack和Cloudstack等。Xen虛擬機(jī)管理程序?yàn)閄86、IA64、ARM及其他CPU架構(gòu)的虛擬化提供了高效安全的功能特性,已用于虛擬化眾多訪客端操作系統(tǒng),包括Windows、Linux、Solaris和各種版本的BSD操作系統(tǒng)。
微軟Hyper-V
微軟推出的Hyper-V是其他許多虛擬化產(chǎn)品的競(jìng)爭(zhēng)對(duì)手。它提供了免費(fèi)下載版本,可供評(píng)估。免費(fèi)的獨(dú)立Hyper-V Server 2012擁有Windows Server 2012中的Hyper-V角色集成的所有功能,比如無(wú)共享(shared nothing)實(shí)時(shí)遷移和故障切換集群等。Hyper-V的架構(gòu)在維基百科中有清晰的解釋(https://en.wikipedia.org/wiki/Hyper-V)。
Type2虛擬機(jī)管理程序
Xvisor
Xvisor是一種Type2整體式開(kāi)源虛擬機(jī)管理程序,旨在提供輕量級(jí)、便攜式又靈活的虛擬化解決方案。它在X86和ARM CPU架構(gòu)上得到支持。一個(gè)主要的區(qū)別是,Xvisor是完全整體式的;因此它有一款用于硬件訪問(wèn)、CPU虛擬化和訪客IO仿真的通用軟件。然而,KVM和Xen等其他虛擬化技術(shù)分別部分基于整體式和微內(nèi)核。部分整體式的虛擬機(jī)管理程序(比如KVM)是通用整體式操作系統(tǒng)(比如Linux)的擴(kuò)展,它在內(nèi)核中提供主機(jī)硬件訪問(wèn)和CPU虛擬化,并通過(guò)在用戶空間中運(yùn)行的應(yīng)用程序提供訪客IO仿真(比如Qemu)。微內(nèi)核虛擬機(jī)管理程序通常是輕量級(jí)微內(nèi)核,在內(nèi)核中提供了基本的主機(jī)硬件訪問(wèn)和CPU虛擬化,其余有賴于管理訪客(比如Xen的Dom0)。想了解更多的詳細(xì)信息并下載,請(qǐng)參閱Xvisor官網(wǎng)(http://xhypervisor.org/)。
Oracle VirtualBox
Oracle VirtualBox是一種Type2虛擬機(jī)管理程序,可以在Linux、Windows、Macintosh和Solaris主機(jī)上運(yùn)行。它可移植,因?yàn)榭梢栽诒姸?2位和64位主機(jī)操作系統(tǒng)上運(yùn)行。它之所以被稱為托管虛擬機(jī)管理程序,是由于它需要安裝現(xiàn)有的操作系統(tǒng)。VirtualBox的一項(xiàng)優(yōu)秀功能是可以使用OVF(開(kāi)放虛擬化格式),輕松導(dǎo)入和導(dǎo)出虛擬機(jī),甚至可以導(dǎo)入不同虛擬化軟件創(chuàng)建的OVF。詳細(xì)功能列表可在http://download.virtualbox.org/virtualbox/UserManual.pdf上找到。
VMware Workstation Player
VMware Workstation Player是一種Type2桌面虛擬化應(yīng)用程序,提供了簡(jiǎn)化的用戶界面,用于運(yùn)行和評(píng)估在Windows或Linux機(jī)器上的虛擬機(jī)中的操作系統(tǒng)和應(yīng)用程序。簡(jiǎn)單的UI使其成為向員工、合同工或客戶交付虛擬桌面的最簡(jiǎn)單方法。它可從https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0下載。
Lguest
Lguest是一種內(nèi)置于Linux內(nèi)核中的非常輕量級(jí)的虛擬機(jī)管理程序。Lguest的核心是Linux內(nèi)核2.6.23及更高版本提供的驅(qū)動(dòng)程序模塊(名為“lg”)。Lguest為L(zhǎng)inux提供了準(zhǔn)虛擬化解決方案。“lg”驅(qū)動(dòng)程序模塊在初始化期間分配一段內(nèi)存,映射到內(nèi)核的地址空間,一個(gè)小小的虛擬機(jī)管理程序被加載到該內(nèi)存區(qū)域。它還提供虛擬化的I/O子系統(tǒng)。話雖如此,它并不提供其他虛擬機(jī)管理程序提供的任何花哨功能;然而如果你需要開(kāi)發(fā)和測(cè)試內(nèi)核引導(dǎo),它是不錯(cuò)的選擇。若想試用Lguest,用戶可以看看LWN的文章(https://lwn.net/Articles/218766/)。說(shuō)明文檔和下載詳細(xì)信息可在http://lguest.ozlabs.org/上找到。
圖2. Type 2虛擬機(jī)管理程序
LinuX Containers(LXC)/Docker
LinuX Containers(LXC)是一種操作系統(tǒng)級(jí)虛擬化方法,用于在單個(gè)控制主機(jī)(LXC主機(jī))上運(yùn)行多個(gè)隔離的Linux系統(tǒng)(容器)。它不提供虛擬機(jī),而是提供有自己的CPU、內(nèi)存、塊I/O和網(wǎng)絡(luò)等資源的虛擬環(huán)境。它利用Linux內(nèi)核的cgroups功能,該功能提供了隔離的命名空間來(lái)運(yùn)行隔離的應(yīng)用程序。容器的一個(gè)優(yōu)點(diǎn)是,它們不需要像虛擬機(jī)那樣的完整訪客操作系統(tǒng)。請(qǐng)參閱該鏈接(https://linuxcontainers.org/),以了解有關(guān)容器的更多信息。
Linux-VServer
Linux-VServer是一種操作系統(tǒng)級(jí)虛擬化解決方案。它是基于安全上下文的軟分區(qū)概念技術(shù)。它基本上創(chuàng)建虛擬專用服務(wù)器(VPS),通過(guò)共享硬件資源在單個(gè)物理服務(wù)器上同時(shí)運(yùn)行。每個(gè)VPS都有自己的數(shù)據(jù)庫(kù)帳戶和root密碼,因而與其他虛擬服務(wù)器隔離開(kāi)來(lái)。請(qǐng)參閱Linux-VServer官網(wǎng)(http://linux-vserver.org/),進(jìn)一步了解該解決方案并下載。
原文標(biāo)題:The Top Open Source Hypervisor Technologies,作者:Krishnaprasad K和Avinash Bendigeri
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】