1、什么是虛擬化
虛擬化(Virtualization)技術最早出現(xiàn)在20世紀60年代的IBM大型機系統(tǒng),在70年代的System 370系列中逐漸流行起來,這些機器通過一種叫虛擬機監(jiān)控器(Virtual Machine Moni-tor, VMM)的程序在物理硬件之上生成許多可以運行獨立操作系統(tǒng)軟件的虛擬機(Virtual Machine)實例。
2、虛擬化技術的分類
這里的服務器虛擬化指的是通過虛擬化軟件來實現(xiàn)計算機和服務器虛擬化,通過使用控制程序(Control Program,也被稱為Virtual Machine Monitor或Hypervisor)隱藏特定計算平臺的實際物理特性,為用戶提供抽象的、統(tǒng)一的、模擬的計算環(huán)境(稱為虛擬機)。虛擬機中運行的操作系統(tǒng)被稱為客戶機操作系統(tǒng)(Guest OS),運行虛擬機監(jiān)控器的操作系統(tǒng)被稱為主機操作系統(tǒng)(Host OS),當然某些虛擬機監(jiān)控器可以脫離操作系統(tǒng)直接運行在硬件之上(如VMWARE的ESX產(chǎn)品)。
2.1全虛擬化((Full Virtualization)。
全虛擬化是指虛擬機模擬了完整的底層硬件,包括處理器、物理內(nèi)存、時鐘、外設等,使得為原始硬件設計的操作系統(tǒng)或其它系統(tǒng)軟件完全不做任何修改就可以在虛擬機中運行。操作系統(tǒng)與真實硬件之間的交互可以看成是通過一個預先規(guī)定的硬件接口進行的。全虛擬化VMM以完整模擬硬件的方式提供全部接口(同時還必須模擬特權(quán)指令的執(zhí)行過程)。
2.2超虛擬化(Paravirtualization)。
這是一種修改Guest OS部分訪問特權(quán)狀態(tài)的代碼以便直接與VMM交'_的技術。在超虛擬化虛擬機中,部分硬件接口以軟件的形式提供給客戶機操作系統(tǒng),這可以通過Hypercall(VMM提供給Guest OS的直接調(diào)用,與系統(tǒng)調(diào)用類似)的方式來提供。
2.3部分虛擬化((Partial Virtualization)。
VMM只模擬部分底層硬件,因此客戶機操作系統(tǒng)不做修改是無法在虛擬機中運行的,其它程序可能也需要進行修改。在歷史上,部分虛擬化是通往全虛擬化道路上的重要里程碑。
2.4操作系統(tǒng)級虛擬化(Operating System Level Virtualiza-tian)。
在傳統(tǒng)操作系統(tǒng)中,所有用戶的進程本質(zhì)上是在同一個操作系統(tǒng)的實例中運行,因此內(nèi)核或應用程序的缺陷可能影響到其它進程。操作系統(tǒng)級虛擬化是一種在服務器操作系統(tǒng)中使用的輕量級的虛擬化技術,內(nèi)核通過創(chuàng)建多個虛擬的操作系統(tǒng)實例(內(nèi)核和庫)來隔離不同的進程,不同實例中的進程完全不了解對方的存在。
3.Linux虛擬化技術解決方案
3.1 Linux-VServer(操作系統(tǒng)級虛擬化)。
Linux-VServer是一個操作系統(tǒng)級虛擬化解決方案。Linux-VServer對Linux內(nèi)核進行虛擬化,這樣多個用戶空間環(huán)境又稱為Virtual Private server(VPS),就可以單獨運行,而不需要互相了解。Linux-VServer通過修改Linux內(nèi)核實現(xiàn)用戶空間的隔離。
3.2 Xen(超虛擬化)。
Xen是一個來自于XenSource的操作系統(tǒng)級超虛擬化的免費開源解決方案。回想一下在超虛擬化中,hypervisor和操作系統(tǒng)會共同協(xié)作,雖然操作系統(tǒng)需要進行一些更改,但卻可以帶來接近于原始系統(tǒng)的性能。就像Xen需要進行協(xié)作(對客戶操作系統(tǒng)進行修改)一樣,只有那些修補過的操作系統(tǒng)才可以通過Xen進行虛擬化。Linux本身就是開源的,所以從Linux角度來看,這是一個很合理的折衷,因為最終可以獲得比完全虛擬化更好的性能。但是從廣泛支持的角度來看(例如對其他非開源操作系統(tǒng)的支持),這顯然是一個缺點。
Windows可以在Xen上作為一個客戶操作系統(tǒng)運行,但是它只能在運行Intel VandERPool或AMD Pacifica的系統(tǒng)上使用。支持Xen的其他操作系統(tǒng)包括NetBSD, FreeBSD和OpenSolaris。
3.3 VMware(完全虛擬化)。
VMware是完全虛擬化的一個商業(yè)解決方案。在客戶操作系統(tǒng)和裸硬件之間有一個hypervisor作為抽象層使用。這個抽象層允許任何操作系統(tǒng)在硬件上運行,而不需要了解任何其他客戶操作系統(tǒng)。VMware也會對可用的I/O硬件進行虛擬化,并將一些高性能的設備驅(qū)動程序加入到hy-pervisor中。整個虛擬化后的環(huán)境都作為一個文件保存,這意味著整個系統(tǒng)(包括客戶操作系統(tǒng)、VM和虛擬硬件)可以很容易地快速遷移到新宿主機器上進行負載均衡。
3.4 KVM(內(nèi)核虛擬機)。
KVM是指基于Linux內(nèi)核的虛擬機(Kernel-based Virtual Machine);趦(nèi)核的虛擬機是針對包含虛擬化擴展(Intel VT或AMD-V)的x86硬件上的Linux的完全原生的虛擬化解決方案。對半虛擬化(parauirtualization)的有限支持也可以通過半虛擬網(wǎng)絡驅(qū)動程序的形式用于Linux和Windows來賓系統(tǒng)。KVM目前設計為通過可加載的內(nèi)核模塊連接內(nèi)核。支持的操作系統(tǒng)版本包括廣泛的操作系統(tǒng),比如Linux, BSD, Solaris, Windows。
虛擬化是趨勢所在。它所帶來的諸多好處和利益都讓廠商和用戶為之著迷,但虛擬化也存在不少問題。當然,我們也有理由相信,隨著時間的推移和各方的努力,這些問題都會得到不同程度的解決。也許,在這種不斷解決種種麻煩的過程中,虛擬化正迎來燦爛的明天。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標題:Linux服務器虛擬化技術
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112158163.html