版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、hypervisor : 一種運(yùn)行在物理服務(wù)器和操作系統(tǒng)之間的中間層軟件,可以允許多個(gè)操作系統(tǒng)和應(yīng)用共享一套基礎(chǔ)物理硬件。可以將hypervisor看做是虛擬環(huán)境中的“元”操作系統(tǒng),可以協(xié)調(diào)訪問(wèn)服務(wù)器上的所有物理設(shè)備和虛擬機(jī),所 以又稱為虛擬機(jī)監(jiān)視器(virtual machine monitor ) 。 hypervisor是所有虛擬 化技術(shù)的核心,非中斷的支持多工作負(fù)載遷移是hypervisor的基本功能。當(dāng)服務(wù)器啟動(dòng)并執(zhí)行hypervisor時(shí),會(huì)給每一臺(tái)虛擬機(jī)分配適量的內(nèi)存,cpu ,網(wǎng) 絡(luò)和磁盤資源,并且加載所有虛擬機(jī)的客戶操作系統(tǒng)。以下內(nèi)容來(lái)自非常不錯(cuò)的介紹,分享給大家。hyper
2、visor之于操作系統(tǒng)類似于操作系統(tǒng)之于進(jìn)程。它們?yōu)閳?zhí)行提供獨(dú)立 的虛擬硬件平臺(tái),而虛擬硬件平臺(tái)反過(guò)來(lái)又提供對(duì)底層機(jī)器的虛擬的完整訪問(wèn)。 但并不是所有hypervisor都是一樣的,這是件好事,因?yàn)?Linux就是以靈活 性和選擇性著稱。本文首先簡(jiǎn)要介紹虛擬化和hypervisor ,然后探索兩個(gè)基于Linux 的 hypervisor 。虛擬化和 hypervisor我們首先花一點(diǎn)時(shí)間理解為什么虛擬化很重要,以及hypervisor的扮演的角色。(要更多地了解這兩個(gè)主題,請(qǐng)參見(jiàn)參考資料)。在本文中,虛擬化就是通過(guò)某種方式隱藏底層物理硬件的過(guò)程,從而讓多個(gè)操作系統(tǒng)可以透明地使用和共享它這種架構(gòu)
3、的另一個(gè)更常見(jiàn)的名稱是 平臺(tái)虛擬化。在典型的分層架構(gòu)中,提供平臺(tái)虛擬化的層稱為 hypervisor (有時(shí)稱為 虛擬機(jī)管理程序或VMM )。來(lái)賓操作系統(tǒng)稱為虛擬機(jī)(VM ),因?yàn)閷?duì)這些VM 而言,硬件是專門針對(duì)它們虛擬化的。圖 1簡(jiǎn)單的展示了這個(gè)分層架構(gòu)。圖1.顯示常用硬件虛擬化的簡(jiǎn)單分層架構(gòu)GuesIVirtual hancMare HypervisorPlattonm Hardware)Physical hardware平臺(tái)虛擬化的好處很多。美國(guó)環(huán)境保護(hù)署(EPA)報(bào)告的一組有趣的統(tǒng)計(jì)數(shù) 據(jù)就證明了其好處。EPA研究服務(wù)器和數(shù)據(jù)中心的能源效率時(shí)發(fā)現(xiàn),實(shí)際上服 務(wù)器只有5%的時(shí)間是在工作的
4、。在其他時(shí)間,服務(wù)器都處于 “休眠”狀態(tài)。 在單個(gè)服務(wù)器上的虛擬化平臺(tái)能夠改善服務(wù)器的利用率,但是減少服務(wù)器的數(shù)量 才是它的最大功用。減少服務(wù)器數(shù)量意味著減少不動(dòng)資產(chǎn)、能耗、冷卻和管理成 本。使用更少的硬件還能提高可靠性??傊?,平臺(tái)虛擬化不僅帶來(lái)技術(shù)優(yōu)勢(shì),還 能創(chuàng)造成本和能源優(yōu)勢(shì)。在圖1中可以看到,hypervisor是提供底層機(jī)器虛擬化的軟件層(在某些 情況下需要處理器支持)。并不是所有虛擬化解決方案都是一樣的,您可以在參 考資料中了解更多的虛擬化方式。繼續(xù)討論進(jìn)程,操作系統(tǒng)將對(duì)機(jī)器的底層資 源的訪問(wèn)虛擬化為進(jìn)程。hypervisor也做一樣的事情,但其對(duì)象不是進(jìn)程,而 是整個(gè)來(lái)賓操作系統(tǒng)h
5、ypervisor 分類hypervisor 可以劃分為兩大類。首先是類型1,這種hypervisor 是直接運(yùn)行在物理硬件之上的。其次是類型2,這種hypervisor運(yùn)行在另一個(gè)操作系 統(tǒng)(運(yùn)行在物理硬件之上)中。類型 1 hypervisor 的一個(gè)例子是基于內(nèi)核的虛 擬機(jī)(KVM它本身是一個(gè)基于操作系統(tǒng)的hypervisor )。類型2hypervisor 包括 QEMU 和 WINE。hypervisor 的構(gòu)成hypervisor (不管是什么類型)僅是一個(gè)從其來(lái)賓操作系統(tǒng)抽象機(jī)器硬件的 分層應(yīng)用程序。通過(guò)這種方式,每個(gè)來(lái)賓操作系統(tǒng)看到的僅是一個(gè)VM而不是真實(shí)的硬件機(jī)器。我們大致看
6、一下hypervisor的內(nèi)部組成,以及它在VM (來(lái) 賓操作系統(tǒng))上的表示。在較高級(jí)別上,hypervisor需要少量設(shè)施啟動(dòng)來(lái)賓操作系統(tǒng):一個(gè)需要驅(qū) 動(dòng)的內(nèi)核映像、一個(gè)配置(比如IP地址和所需的內(nèi)存量)、一個(gè)磁盤盒一個(gè)網(wǎng) 絡(luò)設(shè)備。磁盤和網(wǎng)絡(luò)設(shè)備通常映射到機(jī)器的物理磁盤和網(wǎng)絡(luò)設(shè)備(如圖2所示)。最后,需要使用一組來(lái)賓操作系統(tǒng)工具啟動(dòng)和管理來(lái)賓操作系統(tǒng)。圖2.在假設(shè)hypervisor中的最小資源映射然后,一個(gè)簡(jiǎn)化的hypervisor架構(gòu)實(shí)現(xiàn)最后的關(guān)鍵功能,從而使來(lái)賓操作 系統(tǒng)可以和宿主操作系統(tǒng)同時(shí)運(yùn)行。實(shí)現(xiàn)這個(gè)功能需要一些特定的要素,如圖3一個(gè)所示。首先,類似于將用戶空間應(yīng)用程序和內(nèi)核函數(shù)
7、連接起來(lái)的系統(tǒng)調(diào)用,通??捎玫奶摂M化調(diào)用(hapercall , hypervisor對(duì)操作系統(tǒng)進(jìn)行的系統(tǒng)調(diào)用) 層允許來(lái)賓系統(tǒng)向宿主操作系統(tǒng)發(fā)出請(qǐng)求??梢栽趦?nèi)核中虛擬化I/O ,或通過(guò)來(lái)賓操作系統(tǒng)的代碼支持它。故障必須由hypervisor親自處理,從而解決實(shí)際的 故障,或?qū)⑻摂M設(shè)備故障發(fā)送給來(lái)賓操作系統(tǒng)。hypervisor還必須處理在來(lái)賓操作系統(tǒng)內(nèi)部發(fā)生的異常。(畢竟,來(lái)賓操作系統(tǒng)發(fā)生的錯(cuò)誤僅會(huì)停止該系統(tǒng), 而不會(huì)影響hypervisor 或其他來(lái)賓操作系統(tǒng))。hypervisor的核心要素之一 是頁(yè)映射器,它將硬件指向特定操作系統(tǒng)(來(lái)賓或 hypervisor )的頁(yè)。最后, 需要使用
8、一個(gè)高級(jí)別的調(diào)度器在 hypervisor和來(lái)賓操作系統(tǒng)之間傳輸控制。圖3,簡(jiǎn)化的基于Linux 的hypervisorAppSGuestHypercall interfaceI/OimermptsPage mapperSctiedulerHypervisor elements§悟血MLinux kern elPlatform (Hardar&jLinux hypervisor本文探索兩個(gè)基于 Linux的hypervisor 解決方案。首先是 KVM ,它是 首個(gè)被集成到Linux內(nèi)核的hypervisor解決方案,并且實(shí)現(xiàn)了完整的虛擬化。其次是Lguest ,這是一個(gè)實(shí)驗(yàn)
9、hypervisor ,它通過(guò)少量的更改提高準(zhǔn)虛擬化。KVMKVM針對(duì)運(yùn)行在x86硬件硬件上的、駐留在內(nèi)核中的虛擬化基礎(chǔ)結(jié)構(gòu)。KVM是第一個(gè)成為原生 Linux內(nèi)核(2.6.20 )的一部分的 hypervisor ,它是 由Avi Kivity 開(kāi)發(fā)和維護(hù)的,現(xiàn)在歸 Red Hat所有。這個(gè)hypervisor 提供x86虛擬化,同時(shí)擁有到 PowerPC? 和IA64的 通道。另外,KVM最近還添加了對(duì)對(duì)稱多處理(SMP)主機(jī)(和來(lái)賓)的支持, 并且支持企業(yè)級(jí)特性,比如活動(dòng)遷移(允許來(lái)賓操作系統(tǒng)在物理服務(wù)器之間遷 移)KVM是作為內(nèi)核模塊實(shí)現(xiàn)的,因此 Linux只要加載該模塊就會(huì)成為一個(gè)h
10、ypervisor 。KVM 為支持hypervisor 指令的硬件平臺(tái)提供完整的虛擬化(比 如 Intel? Virtualization Technology Intel VT 或 AMD Virtualization AMD-V產(chǎn)品)。KVM還支持準(zhǔn)虛擬化來(lái)賓操作系統(tǒng),包括 Linux和 Windows?。這種技術(shù)由兩個(gè)組件實(shí)現(xiàn)。第一個(gè)是可加載的 KVM模塊,當(dāng)在Linux內(nèi) 核安裝該模塊之后,它就可以管理虛擬化硬件,并通過(guò) /proc文件系統(tǒng)公開(kāi)其 功能(見(jiàn)圖4) o第二個(gè)組件用于 PC平臺(tái)模擬,它是由修改版 QEMU提供 的。QEMU作為用戶空間進(jìn)程執(zhí)行,并且在來(lái)賓操作系統(tǒng)請(qǐng)求方面與
11、內(nèi)核協(xié)調(diào)。圖4. KVM hypervisor 的高級(jí)別視圖kvm的實(shí)用程序),它就成為宿主操作系統(tǒng)的一個(gè)進(jìn)程,因此就可以像其他進(jìn)程一樣調(diào)度它。但與傳統(tǒng) 的Linux進(jìn)程不一樣,來(lái)賓操作系統(tǒng)被 hypervisor標(biāo)識(shí)為處于“來(lái)賓”模 式(獨(dú)立于內(nèi)核和用戶模式)。每個(gè)來(lái)賓操作系統(tǒng)都是通過(guò)/dev/kvm設(shè)備映射的,它們擁有自己的虛擬地 址空間,該空間映射到主機(jī)內(nèi)核的物理地址空間。如前所述,KVM使用底層硬 件的虛擬化支持來(lái)提供完整的(原生)虛擬化。I/O請(qǐng)求通過(guò)主機(jī)內(nèi)核映射到在 主機(jī)上(hypervisor )執(zhí)行的 QEMU 進(jìn)程。KVM在Linux環(huán)境中以主機(jī)的方式運(yùn)行,不過(guò)只要底層硬件虛
12、擬化支持, 它就能夠支持大量的來(lái)賓操作系統(tǒng)。您可以在 參考資料部分找一個(gè)到受支持的 來(lái)賓操作系統(tǒng)的列表。Lguest(以前的 lhype )Lguest hypervisor由澳大利亞舊M 的Rusty Russell開(kāi)發(fā),它采用完全不同的方式實(shí)現(xiàn)虛擬化。Lguest并沒(méi)有為運(yùn)行任意操作系統(tǒng)提供完整的虛擬化 支持,而是為支持x86的Linux來(lái)賓操作系統(tǒng)(也稱為L(zhǎng)inux-on-Linux 虛擬 化)提供輕量級(jí)準(zhǔn)虛擬化。這意味著來(lái)賓操作系統(tǒng)知道自己正在被虛擬化,并且這同時(shí)還會(huì)改進(jìn)性能。但是,Lguest不需要QEMU提供平臺(tái)虛擬化(像在 KVM中一樣)來(lái)改進(jìn)性能。使用Lguest這種方法還減少
13、了總代碼需求,僅需 在來(lái)賓操作系統(tǒng)和宿主操作系統(tǒng)中使用一個(gè)瘦層?,F(xiàn)在,我們探索這些變化,并查看Lguest環(huán)境的高級(jí)別架構(gòu)。如圖5所示,來(lái)賓操作系統(tǒng)包含一個(gè) Lguest代碼瘦層(根據(jù)定義,就是 準(zhǔn)虛擬化)。這段代碼提供許多服務(wù)。在最高的級(jí)別,有一些代碼可以決定正在 啟動(dòng)的內(nèi)核是否被虛擬化。止匕外,還有一個(gè)通過(guò)虛擬化調(diào)用將特權(quán)操作發(fā)送給宿 主操作系統(tǒng)的抽象層(通過(guò)paravirt_ops實(shí)現(xiàn))。例如,來(lái)賓操作系統(tǒng)不能禁用 中斷,以使這些請(qǐng)求在宿主操作系統(tǒng)中執(zhí)行。您還可找到一個(gè)為來(lái)賓操作系統(tǒng)實(shí) 現(xiàn)設(shè)備抽象的總線,以及一組實(shí)現(xiàn)控制臺(tái)、虛擬塊驅(qū)動(dòng)器和虛擬網(wǎng)絡(luò)驅(qū)動(dòng)器 (允 許與其他來(lái)賓通信)的簡(jiǎn)單驅(qū)動(dòng)
14、器。圖5,實(shí)現(xiàn)x86準(zhǔn)虛擬化的Lguest的架構(gòu)內(nèi)核部分被實(shí)現(xiàn)為可加載的模塊,即Ig.ko o這個(gè)模塊包含來(lái)賓操作系統(tǒng)通向宿主內(nèi)核的接口。第一個(gè)組件是切換器,它實(shí)現(xiàn)一種方法,讓來(lái)賓操作系統(tǒng)在執(zhí)行時(shí)根據(jù)上下文進(jìn)行切換。這個(gè)模塊還實(shí)現(xiàn)/proc文件系統(tǒng)代碼(針對(duì)/dev/lguest),該代碼實(shí)現(xiàn)到內(nèi)核和驅(qū)動(dòng)器(包括虛擬化調(diào)用)的用戶空間接口。還有一些代碼通過(guò)使用影子頁(yè)表(shadow page-table )和管理x86區(qū)段 來(lái)提供內(nèi)存映射。最后,內(nèi)核中的Documentation子目錄包含啟動(dòng)實(shí)用程序(lguest),用于啟動(dòng)新的來(lái)賓操作系統(tǒng)實(shí)例。這個(gè)文件負(fù)責(zé)兩項(xiàng)任務(wù),即使用和記錄。Lgues
15、t從2.6.23 (2007年10月)開(kāi)始就成為主流內(nèi)核,并且由RustyRussell開(kāi)發(fā)和維護(hù)。它大約包含 5000行源代碼,包括用戶空間實(shí)用程序。盡管Lguest很簡(jiǎn)單(據(jù)說(shuō)是這樣的),但它能提供真正的準(zhǔn)虛擬化。不過(guò)簡(jiǎn) 單性往往與局限性相隨。例如,Lguest僅虛擬化其他支持Lguest的來(lái)賓操作 系統(tǒng),并且目前僅能用于 x86架構(gòu)。盡管存在這些限制,Lguest仍然提供一種有趣的虛擬化方式,并且對(duì)任何希望研究Rusty的代碼的人員公開(kāi)Linux hypervisor 的益處使用Linux作為內(nèi)核開(kāi)發(fā)hypervisor有實(shí)實(shí)在在的好處。最明顯的是, 以Linux為基礎(chǔ)開(kāi)發(fā)hypervi
16、sor 受益于穩(wěn)步前進(jìn)的 Linux ,以及為改進(jìn) Linux投入的大量工作。從典型的優(yōu)化、bug修復(fù)、調(diào)度和內(nèi)存管理創(chuàng)新到支 持不同處理器架構(gòu),Linux都是一個(gè)不斷進(jìn)步的平臺(tái)(引自 Salisbury市的 John的“站在巨人的肩膀上”一文)。不久前已經(jīng)證明,通過(guò)向 KVM添加一個(gè)內(nèi)核模塊,就可以將 Linux內(nèi)核 轉(zhuǎn)變?yōu)閔ypervisor。Lguest進(jìn)一步改進(jìn)了這種方法,并且通過(guò)受限制的準(zhǔn)虛 擬化進(jìn)一步簡(jiǎn)化了該解決方案。使用Linux作為平臺(tái)的另一個(gè)奇特好處是,除了可以將該平臺(tái)用作 hypervisor 之外,您還可以將其用作操作系統(tǒng)。因此,除了可以在Linuxhypervisor上
17、運(yùn)行多個(gè)來(lái)賓操作系統(tǒng)之外,您還可以在該級(jí)別上運(yùn)行其他傳統(tǒng) 的應(yīng)用程序。所以,不必?fù)?dān)心帶有新的應(yīng)用編程接口( API)的新平臺(tái),因?yàn)槟?擁有用于開(kāi)發(fā)應(yīng)用程序的標(biāo)準(zhǔn) Linux平臺(tái)(如果需要監(jiān)控應(yīng)用程序或 hypervisor )。標(biāo)準(zhǔn)協(xié)議(TCP/IP)和其他有用的應(yīng)用程序(Web服務(wù)器)和 來(lái)賓操作系統(tǒng)都是可用的?;仡櫼幌掠懻揔VM時(shí)的圖4:除了來(lái)賓操作系統(tǒng)之外,還使用了修改了 KVM的QEMU。這是一個(gè)標(biāo)準(zhǔn)進(jìn)程,并展示了 Linux 作為hypervisor的強(qiáng)大之處。KVM在平臺(tái)虛擬化中利用 QEMU ,并使用 Linux作為hypervisor ,因此實(shí)現(xiàn)了這個(gè)構(gòu)思,即讓來(lái)賓操作系統(tǒng)能夠和其他Linux
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024個(gè)人的簡(jiǎn)單借款合同
- 國(guó)際貿(mào)易協(xié)議樣本
- 廠房租賃合同范例
- 特色農(nóng)產(chǎn)品胡柚購(gòu)銷合同法律問(wèn)題探討
- 共同投資開(kāi)設(shè)武術(shù)館協(xié)議
- 標(biāo)準(zhǔn)入職協(xié)議書(shū)范例
- 旅行社與導(dǎo)游勞動(dòng)合同范本
- 2023年高考地理第一次模擬考試卷-(湖南A卷)(全解全析)
- 房地產(chǎn)代理合同模板
- 2024年建筑渣土運(yùn)輸合同范文
- 山西省太原市2024-2025學(xué)年高三上學(xué)期期中物理試卷(含答案)
- 酒店崗位招聘面試題與參考回答2025年
- (統(tǒng)編2024版)道德與法治七上10.1愛(ài)護(hù)身體 課件
- GB/T 30391-2024花椒
- 供電線路維護(hù)合同
- 胸部術(shù)后護(hù)理科普
- 鞋子工廠供貨合同模板
- 2024碼頭租賃合同范本
- 木材采運(yùn)智能決策支持系統(tǒng)
- 【產(chǎn)業(yè)圖譜】2024年青島市重點(diǎn)產(chǎn)業(yè)規(guī)劃布局全景圖譜(附各地區(qū)重點(diǎn)產(chǎn)業(yè)、產(chǎn)業(yè)體系布局、未來(lái)產(chǎn)業(yè)發(fā)展規(guī)劃等)
- 上海市市轄區(qū)(2024年-2025年小學(xué)四年級(jí)語(yǔ)文)部編版期末考試(下學(xué)期)試卷及答案
評(píng)論
0/150
提交評(píng)論