前面小編已經(jīng)分享了三篇關(guān)于虛擬化的內(nèi)容,后臺看見很多朋友們的私信,感謝大家的支持!今天我們將進(jìn)一步深入探討虛擬化技術(shù)的相關(guān)內(nèi)容,希望能夠?yàn)槟峁└?、更深入的理解。通過本次探討,您將能夠了解到更多關(guān)于虛擬化技術(shù)的基本知識,從而更好地認(rèn)識和利用這一重要的計算機(jī)技術(shù)。
可以認(rèn)為是一種對物理資源抽象化,進(jìn)而形成虛擬化的版本的技術(shù)。在計算機(jī)科學(xué)中,虛擬化技術(shù)(Virtualization)是一種資源管理(優(yōu)化)技術(shù),將計算機(jī)的各種物理資源(e.g. CPU、內(nèi)存以及磁盤空間、網(wǎng)絡(luò)適配器等 I/O 設(shè)備)予以抽象、轉(zhuǎn)換,然后呈現(xiàn)出來的一個可供分割并任意組合為一個或多個(虛擬)計算機(jī)的配置環(huán)境。虛擬化技術(shù)打破了計算機(jī)內(nèi)部實(shí)體結(jié)構(gòu)間不可切割的障礙,使用戶能夠以比原本更好的配置方式來應(yīng)用這些計算機(jī)硬件資源。而這些資源的虛擬形式將不受現(xiàn)有架設(shè)方式,地域或物理配置所限制。全虛擬化(Full virtualization)也稱原始虛擬化技術(shù),是使用Hypervisor這種中間軟件在虛擬服務(wù)器和底層硬件之間建立一個抽象層,這個抽象層在底層起到了中介的作用,用于傳遞指令。在實(shí)現(xiàn)完全虛擬化的過程中,Hypervisor運(yùn)行在裸硬件上,充當(dāng)?shù)氖侵鳈C(jī)的操作系統(tǒng),由Hypervisor管理的虛擬服務(wù)器來運(yùn)行客戶端操作系統(tǒng)(Guest OS),ESXI就是通過這種方式實(shí)現(xiàn)的。全虛擬化為客戶操作系統(tǒng)提供完整的虛擬平臺(包括處理器、內(nèi)存和外設(shè)等虛擬化),這種平臺支持運(yùn)行任何理論上可在真實(shí)物理平臺上運(yùn)行的操作系統(tǒng),并為虛擬機(jī)的配置提供了最大程度的靈活性。另外,在全虛擬化平臺運(yùn)行的客戶操作系統(tǒng),可以不做任何修改就可以遷移到任何非虛擬化環(huán)境中基于平臺上運(yùn)行。半虛擬化(ParaVirtualization)是另一種類似于全虛擬化的技術(shù),它使用Hypervisor分享存取底層的硬件,但是它的Guest操作系統(tǒng)集成了虛擬化方面的代碼。該方法無需重新編譯或引起陷阱,因?yàn)椴僮飨到y(tǒng)自身能夠與虛擬進(jìn)程進(jìn)行很好的協(xié)作。半虛擬化需要Guest操作系統(tǒng)做一些修改,使Guest操作系統(tǒng)意識到自己是處于虛擬化環(huán)境的,但是半虛擬化提供了與原操作系統(tǒng)相近的性能。
硬件本身支持虛擬化技術(shù),大大提升了虛擬化的性能。如Intel VT、AMD-VT技術(shù),它們在CPU中加入了新的指令集和處理器運(yùn)行模式,以完成Guest OS對硬件資源的直接調(diào)用。通過硬件輔助虛擬化,可提高虛擬機(jī)的運(yùn)行效率和穩(wěn)定性,減少虛擬機(jī)與宿主機(jī)之間的干擾,從而實(shí)現(xiàn)更加高效的虛擬化工作。? 宿主模型(OS-Hosted VMM) 物理服務(wù)器上需要安裝如Windows、Linux等操作系統(tǒng),這些傳統(tǒng)操作系統(tǒng)并不是為虛擬化而設(shè)計的,因此本身并不具備虛擬化功能,所有的虛擬化功能都由VMM來提供。VMM通常是宿主機(jī)操作系統(tǒng)獨(dú)立的內(nèi)核模塊,有些實(shí)現(xiàn)中還包括用戶態(tài)進(jìn)程,如負(fù)責(zé)I/O虛擬化的用戶態(tài)設(shè)備模型。VMM通過調(diào)用宿主機(jī)操作系統(tǒng)的服務(wù)來獲得資源,實(shí)現(xiàn)處理器、內(nèi)存和I/O設(shè)備的虛擬化。? 虛擬化體系架構(gòu)-原生架構(gòu)模型(Hypervisor VMM)? 在原生架構(gòu)模型(Hypervisor VMM)中,VMM首先可以被看作是一個完備的操作系統(tǒng),與傳統(tǒng)操作系統(tǒng)不同的是,VMM是為虛擬化而設(shè)計的,因此其本身就具備虛擬化功能。? 從架構(gòu)上來看,首先所有的物理資源如處理器、內(nèi)存和I/O設(shè)備等都?xì)w于VMM所有,因此,VMM承擔(dān)著管理物理資源的責(zé)任;其次,VMM需要向上提供虛擬機(jī)用于運(yùn)行客戶機(jī)操作系統(tǒng),因此,VMM還負(fù)責(zé)虛擬環(huán)境的創(chuàng)建和管理。?虛擬化體系架構(gòu)-混合模型(Hybrid VMM)? 混合模型(Hybrid VMM)是上述兩種模式的混合體。VMM依然位于最底層,擁有所有的物理資源,包括處理器、內(nèi)存和I/O設(shè)備等。與Hypervisor模型不同的是,VMM會騰讓出大部分I/O設(shè)備的控制權(quán),將它們交由一個運(yùn)行在特權(quán)虛擬機(jī)中的特權(quán)操作系統(tǒng)來控制,相應(yīng)的,VMM虛擬化的職責(zé)也會被分擔(dān)。處理器、內(nèi)存虛擬化依然由VMM來完成,I/O設(shè)備虛擬化則由VMM和特權(quán)操作系統(tǒng)共同來完成。
KVM (全稱是Kernel-based Virtual Machine) 是Linux 下x86 硬件平臺上的全功能虛擬化解決方案,包含一個可加載的內(nèi)核模塊kvm.ko 提供和虛擬化核心架構(gòu)和處理器規(guī)范模塊。使用KVM 可允許多個包括Linux 和Windows 每個虛擬機(jī)有私有的硬件,包括網(wǎng)卡、磁盤以及圖形適配卡等。
Xen 是一個開放源代碼虛擬機(jī)監(jiān)視器,由劍橋大學(xué)開發(fā)。它打算在單個計算機(jī)上運(yùn)行多達(dá)100個滿特征的操作系統(tǒng)。操作系統(tǒng)必須進(jìn)行顯式地修改(“移植”)以在Xen上運(yùn)行(但是提供對用戶應(yīng)用的兼容性)。這使得Xen無需特殊硬件支持,就能達(dá)到高性能的虛擬化。
OpenVZ是基于Linux內(nèi)核和作業(yè)系統(tǒng)的操作系統(tǒng)級虛擬化技術(shù)。OpenVZ允許物理服務(wù)器運(yùn)行多個操作系統(tǒng),被稱虛擬專用服務(wù)器(VPS,Virtual Private Server)或虛擬環(huán)境(VE, Virtual Environment)。與VMware這種虛擬機(jī)和Xen這種半虛擬化技術(shù)相比,OpenVZ的host OS和guest OS都必需是Linux(雖然在不同的虛擬環(huán)境里可以用不同的Linux發(fā)行版)。但是,OpenVZ聲稱這樣做有性能上的優(yōu)勢。根據(jù)OpenVZ網(wǎng)站的說法,使用OpenVZ與使用獨(dú)立的服務(wù)器相比,性能只會有1-3%的損失。OpenVZ是SWsoft, Inc.公司開發(fā)的專有軟件Virtuozzo的基礎(chǔ)。OpenVZ的授權(quán)為GPLv2。OpenVZ由兩部分組成,一個經(jīng)修改過的操作系統(tǒng)核心與及用戶工具。
VirtualBox 是一款功能強(qiáng)大的x86 虛擬機(jī)軟件,它不僅具有豐富的特色,而且性能也很優(yōu)異。更可喜的是,VirtualBox 于數(shù)日前走向開源,成為了一個發(fā)布在GPL 許可之下的自由軟件。
Lguest 是由IBM工程師Rusty Russell(澳大利亞開發(fā)者)發(fā)起的虛擬化項(xiàng)目,是一個只有5000行代碼的精簡hypervisor(虛擬機(jī)管理程序),它已經(jīng)包括在最近版本的內(nèi)核里了。和KVM相似,它支持Intel和AMD芯片的最新虛擬化技術(shù)。但又與VMware公司的ESX Server不同,在Lguest創(chuàng)建的虛擬機(jī)里的操作系統(tǒng)知道自己是被虛擬出來的。所以在調(diào)用CPU周期時它可以直接向真正的硬件發(fā)出請求,而不是作為中間媒介而降低了效率,因此這種架構(gòu)大大提高了效率。Lguest采用GPL授權(quán)。1. VMware公司的VMware Server、VMware ESX/ESXi Server、VMwareWorkstation和VMware Player。2. Microsoft公司的Hyper-V、Virtual PC和Virtual Server。6. 開源虛擬化軟件Docker、KVM、Xen等。