




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
云計(jì)算虛擬化技術(shù)基礎(chǔ)與實(shí)踐虛擬化實(shí)現(xiàn)技術(shù)目錄CONTENT01.系統(tǒng)虛擬化架構(gòu)02.處理器虛擬化實(shí)現(xiàn)技術(shù)03.內(nèi)存虛擬化實(shí)現(xiàn)技術(shù)04.I/O虛擬化實(shí)現(xiàn)技術(shù)本章重點(diǎn)了解系統(tǒng)虛擬化架構(gòu)。掌握Intel處理器虛擬化實(shí)現(xiàn)技術(shù)VT-x。了解AMD處理器虛擬化實(shí)現(xiàn)技術(shù)AMDSVM。熟悉Intel和AMD的兩種內(nèi)存虛擬化實(shí)現(xiàn)技術(shù)。熟悉IntelVT-d、IOMMU和SR-IOV的I/O虛擬化實(shí)現(xiàn)技術(shù)。掌握Virtio的I/O虛擬化實(shí)現(xiàn)技術(shù)。系統(tǒng)虛擬化架構(gòu)01系統(tǒng)虛擬化架構(gòu)IntelVT是Intel在CPU層面提供的硬件虛擬化技術(shù)的總稱,主要提供下列技術(shù):在處理器虛擬化方面,提供了VT-x技術(shù);在內(nèi)存虛擬化方面,提供了EPT(ExtendedPageTable,擴(kuò)展頁表)技術(shù);在I/O設(shè)備虛擬化方面,提供了VT-d技術(shù)。AMDSVM是AMD在CPU層面提供的硬件虛擬化技術(shù)的總稱,主要提供下列技術(shù):在處理器虛擬化方面,提供了AMDSVM技術(shù);在內(nèi)存虛擬化方面,提供了NPT技術(shù);在I/O設(shè)備虛擬化方面,提供了IOMMU技術(shù)。系統(tǒng)虛擬化架構(gòu)系統(tǒng)虛擬化的核心思想是指用虛擬化技術(shù)將一臺(tái)物理計(jì)算機(jī)系統(tǒng)虛擬化為一臺(tái)或多臺(tái)邏輯獨(dú)立的計(jì)算機(jī)系統(tǒng)。一般來說,虛擬環(huán)境由三部分組成:硬件、虛擬化層VMM和虛擬機(jī)。使用虛擬化技術(shù),每個(gè)虛擬機(jī)中的操作系統(tǒng)可以完全不同,執(zhí)行環(huán)境也可以完全獨(dú)立,多個(gè)操作系統(tǒng)可以互不影響的在一臺(tái)物理機(jī)上同時(shí)運(yùn)行。虛擬機(jī)所具有的三個(gè)典型特征1974年,Popek和Goldberg的定義認(rèn)為:虛擬機(jī)可以看作是物理機(jī)的一種高效隔離的復(fù)制,里面蘊(yùn)涵了三層含義,即同質(zhì)、高效和資源受控,這也是一個(gè)虛擬機(jī)所具有的三個(gè)典型特征。同質(zhì):虛擬機(jī)的運(yùn)行環(huán)境和物理機(jī)的運(yùn)行環(huán)境在本質(zhì)上是相同的,但是在表現(xiàn)上有一些差異。高效:虛擬機(jī)中運(yùn)行的軟件必須和直接在物理機(jī)上運(yùn)行的性能接近。資源受控:VMM需要對系統(tǒng)資源有完全控制能力和管理權(quán)限,包括資源的分配、監(jiān)控和回收。特權(quán)指令和敏感指令特權(quán)指令敏感指令特權(quán)指令系統(tǒng)中操作和管理關(guān)鍵系統(tǒng)資源的指令。特權(quán)指令只能夠在最高特權(quán)級上正確執(zhí)行,如果在非最高特權(quán)級上執(zhí)行,特權(quán)指令就會(huì)引發(fā)一個(gè)異常,使得處理器陷入到最高特權(quán)級,交由系統(tǒng)軟件來處理。敏感指令虛擬化環(huán)境里操作特權(quán)資源的指令,包括修改虛擬機(jī)的運(yùn)行模式或者物理機(jī)的狀態(tài),讀寫敏感的寄存器或者內(nèi)存。處理器虛擬化實(shí)現(xiàn)技術(shù)02處理器虛擬化實(shí)現(xiàn)技術(shù)處理器虛擬化是VMM中最重要的部分,因?yàn)樵L問內(nèi)存或者I/O的指令本身就是敏感指令,所以內(nèi)存虛擬化和I/O虛擬化都依賴于處理器虛擬化。x86體系結(jié)構(gòu)中,處理器有四個(gè)運(yùn)行級別,分別是Ring0、Ring1、Ring2和Ring3。x86系統(tǒng)結(jié)構(gòu)下的處理器虛擬化1.vCPUIntelVT-x的vCPU結(jié)構(gòu)vCPU的基本操作如下:1.vCPU的創(chuàng)建:創(chuàng)建vCPU實(shí)際上是創(chuàng)建vCPU描述符,由于vCPU描述符是一個(gè)結(jié)構(gòu)體,因此創(chuàng)建vCPU描述符就是分配相應(yīng)大小的內(nèi)存。2.vCPU的運(yùn)行:vCPU創(chuàng)建并初始化好之后,就會(huì)被調(diào)度程序調(diào)度運(yùn)行,調(diào)度程序會(huì)根據(jù)一定的策略算法來選擇vCPU運(yùn)行。3.vCPU的退出:對vCPU退出的處理是VMM進(jìn)行CPU虛擬化的核心,例如模擬各種特權(quán)指令。4.vCPU的再運(yùn)行:指VMM在處理完vCPU的退出后,會(huì)負(fù)責(zé)將vCPU投入再運(yùn)行。2.IntelVT-xIntelVT-x的基本思想Intel設(shè)計(jì)了VT-x,提出了VMX模式,即VMXRootOperation和VMXNon-RootOperation,虛擬機(jī)監(jiān)控器運(yùn)行在VMXrootoperation模式,虛擬機(jī)運(yùn)行在VMXnon-rootoperation模式。1.根操作模式(VMXRootOperation):VMM運(yùn)行所處的模式。以下簡稱根模式。2.非根操作模式(VMXNon-RootOperation):客戶機(jī)運(yùn)行所處的模式,以下簡稱非根模式。2.IntelVT-xVMX操作模式1.VMM執(zhí)行VMXON指令進(jìn)人到VMX操作模式,此時(shí)CPU處于VMX根操作模式,VMM軟件開始執(zhí)行。2.VMM執(zhí)行VMLAUNCH或VMRESUME指令產(chǎn)生VM-Entry,客戶機(jī)軟件開始執(zhí)行,此時(shí)CPU從根模式轉(zhuǎn)換成為非根模式。3.當(dāng)客戶機(jī)執(zhí)行特權(quán)指令,或者當(dāng)客戶機(jī)運(yùn)行時(shí)發(fā)生了中斷或異常,VM-Exit被觸發(fā)而陷入到VMM,CPU自動(dòng)從非根模式轉(zhuǎn)換切換到根模式。VMM根據(jù)VM-Exit的原因做相應(yīng)處理,然后轉(zhuǎn)到步驟2繼續(xù)運(yùn)行客戶機(jī)。4.如果VMM決定退出,則執(zhí)行VMXOFF關(guān)閉VMX操作模式。3.AMDSVM此外,AMD還增加了八個(gè)新指令操作碼來支持SVM,VMM可以通過指令來配置VMCB映像CPU,如VMRUN指令會(huì)從VMCB中載入處理器狀態(tài),而VMSAVE指令會(huì)把處理器狀態(tài)保存到VMCB中。VMM運(yùn)行在非根模式上,而客戶機(jī)運(yùn)行在根模式上。在非根模式上,一些敏感指令會(huì)引起“陷入”,即VM-Exit,而VMM調(diào)動(dòng)某個(gè)客戶機(jī)運(yùn)行時(shí),CPU會(huì)由根模式切換到非根模式,即VM-Entry。AMD中引入了一個(gè)新的結(jié)構(gòu)叫做VMCB(VirtualMachineControlBlock,虛擬機(jī)控制塊)以更好的支持CPU的虛擬化。在AMD的SVM中,較多內(nèi)容與IntelVT-x類似。但是技術(shù)上略有不同,在SVM中也有兩種模式:根模式和非根模式。內(nèi)存虛擬化實(shí)現(xiàn)技術(shù)03內(nèi)存虛擬化面臨的問題特權(quán)指令敏感指令1.物理內(nèi)存要被多個(gè)客戶機(jī)操作系統(tǒng)使用,但是物理內(nèi)存只有一份,物理地址0也只有一個(gè),無法同時(shí)滿足所有客戶機(jī)操作系統(tǒng)內(nèi)存從0開始的需求。2.由于使用內(nèi)存分區(qū)方式,把物理內(nèi)存分給多個(gè)客戶機(jī)操作系統(tǒng)使用,雖然可以保證虛擬機(jī)的內(nèi)存訪問時(shí)連續(xù)的,但是內(nèi)存的使用效率低。內(nèi)存虛擬化的主要任務(wù)實(shí)現(xiàn)地址空間的虛擬化,維護(hù)宿主機(jī)物理地址和客戶機(jī)物理地址之間的映射關(guān)系。截獲客戶機(jī)對宿主機(jī)物理地址的訪問,并根據(jù)所記錄的映射關(guān)系,將其轉(zhuǎn)換成宿主機(jī)物理地址。內(nèi)存虛擬化示意圖1.IntelEPT頁表項(xiàng)格式圖EPT是一個(gè)多級頁表,各級頁表的表項(xiàng)格式相同,頁表各項(xiàng)含義如下:ADDR:下一級頁表的物理地址。如果已經(jīng)是最后一級頁表,那么就是GPA對應(yīng)的物理地址。SP:超級頁(SuperPage)所指向的頁是大小超過4KB的超級頁,CPU在遇到SP=l時(shí),就會(huì)停止繼續(xù)往下查詢。對于最后一級頁表,這一位可以供軟件使用。X:可執(zhí)行,X=1表示該頁是可執(zhí)行的。R:可讀,R=1表示該頁是可讀的。W:可寫,W=1表示該頁是可寫的。1.IntelEPTEPT原理圖2.AMDNPTNPT原理圖在NPT中,宿主機(jī)和客戶機(jī)都有自己的CR3寄存器,分別是nCR3(nestedCR3)和gCR3(guestCR3)。gPT負(fù)責(zé)客戶機(jī)虛擬地址到客戶機(jī)物理地址的映射。nPT負(fù)責(zé)客戶機(jī)物理地址到宿主機(jī)物理地址的映射??蛻魴C(jī)頁表和嵌套頁表分別是由客戶機(jī)和宿主機(jī)創(chuàng)建。其中,客戶機(jī)頁表存在客戶機(jī)物理內(nèi)存里,由gCR3索引。而嵌套頁表存在宿主機(jī)物理內(nèi)存中,由nCR3索引。當(dāng)使用客戶機(jī)虛擬地址時(shí),會(huì)自動(dòng)調(diào)用兩層頁表(gPT和nPT)將客戶機(jī)虛擬地址轉(zhuǎn)換成宿主機(jī)物理地址。I/O虛擬化實(shí)現(xiàn)技術(shù)041.IntelVT-d使用VT-d后設(shè)備訪問內(nèi)存的架構(gòu)IntelVT-d技術(shù)通過在北橋(MCH)引入DMA重映射硬件,以提供設(shè)備重映射和設(shè)備直接分配的功能。在啟用VT-d的平臺(tái)上,設(shè)備所有的DMA傳輸都會(huì)被DMA重映射硬件截獲。根據(jù)設(shè)備對應(yīng)的I/O頁表,硬件可以對DMA中的地址進(jìn)行轉(zhuǎn)換,使設(shè)備只能訪問到規(guī)定的內(nèi)存。1.IntelVT-dVT-d還提供了兩種數(shù)據(jù)結(jié)構(gòu)來描述PCI架構(gòu),分別是根條目(RootEntry)和上下文條目(ContentEntry)根條目的結(jié)構(gòu)上下文條目的結(jié)構(gòu)1.IntelVT-d根條目表和上下文條目表構(gòu)成的兩級結(jié)構(gòu)1.IntelVT-dDMA重映射的4KB頁面地址轉(zhuǎn)換過程2.IOMMUIOMMU技術(shù)示意圖輸入/輸出內(nèi)存管理單元IOMMU(Input/OutputMemoryManagementUnit)是一個(gè)內(nèi)存管理單元,管理對系統(tǒng)內(nèi)存的設(shè)備訪問。它位于外圍設(shè)備和主機(jī)之間,可以把DMAI/O總線連接到主內(nèi)存上,將來自設(shè)備請求的地址轉(zhuǎn)換為系統(tǒng)內(nèi)存地址,并檢查每個(gè)接入的適當(dāng)權(quán)限。2.IOMMUIOMMU提供DMA地址轉(zhuǎn)換,對設(shè)備讀取和寫入的權(quán)限檢查的功能。IOMMU將頁轉(zhuǎn)譯緩存在一個(gè)TLB(TranslationLookasideBuffer)中,當(dāng)需要進(jìn)入TLB時(shí)你需要鍵入保護(hù)域和設(shè)備請求地址。IOMMU提供的轉(zhuǎn)譯和保護(hù)雙重功能提供了一種完全從用戶代碼、無需內(nèi)核模式驅(qū)動(dòng)程序操作設(shè)備的方式。IOMMU允許VMM直接將真實(shí)設(shè)備分配到客戶機(jī)操作系統(tǒng),讓I/O虛擬化更有效。IOMMU避免設(shè)備模擬,取消轉(zhuǎn)譯層,允許本機(jī)驅(qū)動(dòng)程序直接配合設(shè)備,極大的降低了I/O設(shè)備虛擬化的開銷。3.SR-IOV具有SR-IOV功能的I/O設(shè)備SR-IOV是PCI-SIG組織公布的一個(gè)新規(guī)范,旨在消除VMM對虛擬化I/O操作的干預(yù),以提高數(shù)據(jù)傳輸?shù)男阅?。它繼承了PassthroughI/O技術(shù),繞過虛擬機(jī)監(jiān)視器直接發(fā)送和接收I/O數(shù)據(jù),同時(shí)還利用IOMMU減少內(nèi)存保護(hù)和內(nèi)存地址轉(zhuǎn)換的開銷。一個(gè)具有SR-IOV功能的I/O設(shè)備是基于PCIe規(guī)范的,具有一個(gè)或多個(gè)物理設(shè)備(PF,PhysicalFunction),PF是標(biāo)準(zhǔn)的PCIe設(shè)備,具有唯一的申請標(biāo)識(shí)RID。而每一個(gè)PF可以用來管理并創(chuàng)建一個(gè)或多個(gè)虛擬設(shè)備(VF,VirtualFunction),VF是“輕量級”的PCIe設(shè)備。3.SR-IOVSR-IOV實(shí)現(xiàn)模型PF驅(qū)動(dòng),運(yùn)行在宿主機(jī)上,可以直接訪問PF的所有資源。PF驅(qū)動(dòng)主要用來創(chuàng)建、配置和管理虛擬設(shè)備,即VF。VF驅(qū)動(dòng)是運(yùn)行在客戶機(jī)上的普通設(shè)備驅(qū)動(dòng),VF驅(qū)動(dòng)只有操作相應(yīng)VF的權(quán)限。SR-IOV管理器運(yùn)行在宿主機(jī),用于管理PCIe拓?fù)涞目刂泣c(diǎn)以及每一個(gè)VF的配置空間。3.SR-IOV具有SR-IOV功能的設(shè)備具有以下優(yōu)點(diǎn):提高系統(tǒng)性能。采用Passthrough技術(shù),將設(shè)備分配給指定的虛擬機(jī),可以達(dá)到基于本機(jī)的性能。利用IOMMU技術(shù),改善了中斷重映射技術(shù),減少客戶及從硬件中斷到虛擬中斷的處理延遲。安全性優(yōu)勢。通過硬件輔助,數(shù)據(jù)安全性得到加強(qiáng)??蓴U(kuò)展性優(yōu)勢。系統(tǒng)管理員可以利用單個(gè)高寬帶的I/O設(shè)備代替多個(gè)低帶寬的設(shè)備達(dá)到帶寬的要求。利用VF將帶寬進(jìn)行隔離,使得單個(gè)物理設(shè)備好像是隔離的多物理設(shè)備。此外,這還可以為其他類型的設(shè)備節(jié)省插槽。4.VirtioVirtio的基本架構(gòu)前端驅(qū)動(dòng)程序(front-enddriver),即virtio-blk、virtio-net、virtio-pci、virtio-ballon和virtio-console,是在客戶機(jī)操作系統(tǒng)中實(shí)現(xiàn)的。后端驅(qū)動(dòng)程序(back-enddriver),是在Hypervisor中實(shí)現(xiàn)的。另外,Virtio還定義了兩個(gè)層來支持客戶機(jī)操作系統(tǒng)與Hypervisor之間的通信。Virtio是虛擬隊(duì)列接口,它在概念上將前端驅(qū)動(dòng)程序附加到后端驅(qū)動(dòng)程序。數(shù)據(jù)傳輸時(shí)使用了環(huán)形緩沖區(qū),用于保存前端驅(qū)動(dòng)和后端處理程序的執(zhí)行信息4.Virtio以CentOS7為例,相關(guān)的內(nèi)核模塊包括virtio.ko、virtio_ring.ko、virtio_pci.ko、virtio_balloon.ko、virtio_net.ko、virtio_blk.ko等。以CentOS7的內(nèi)核配置文件為例,其中與Virtio相關(guān)的內(nèi)核模塊如下:[root@localhost~]#cat/boot/config-3.10.0-1160.11.1.el7.x86_64|grep-ivirtioCONFIG_VIRTIO_VSOCKETS=mCONFIG_VIRTIO_VSOCKETS_COMMON=mCONFIG_VIRTIO_BLK=mCONFIG_SCSI_VIRTIO=mCONFIG_VIRTIO_NET=mCONFIG_VIRTIO_CONSOLE=mCONFIG_HW_RANDOM_VIR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中數(shù)學(xué)省級課題申報(bào)書
- 寧波課題立項(xiàng)申報(bào)書
- 生物小課題立項(xiàng)申報(bào)書
- 藝術(shù)規(guī)劃課題申報(bào)書范本
- 風(fēng)濕課題申報(bào)書
- 賣車位定金合同范本
- 行為習(xí)慣養(yǎng)成課題申報(bào)書
- 合同范本文化傳播
- 課題成果申報(bào)書范文
- 精準(zhǔn)教學(xué) 課題申報(bào)書
- 法院生活費(fèi)申請書
- 2025年湖南工藝美術(shù)職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年江西機(jī)電職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 2025年江蘇旅游職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 【課件】學(xué)校后勤管理工作
- 2025-2030年中國聚丙烯酰胺(PAM)市場發(fā)展?fàn)顩r及未來投資戰(zhàn)略決策報(bào)告新版
- 2025年上海市租房合同標(biāo)準(zhǔn)樣本(2篇)
- 課題申報(bào)書:產(chǎn)教融合背景下護(hù)理專業(yè)技能人才“崗課賽證”融通路徑研究
- 《新媒體概論》課件
- EMS能源管理系統(tǒng)V1.4.0用戶需求說明書V1.0-20160916
- 《工業(yè)機(jī)器人現(xiàn)場編程》課件-任務(wù)3.1 涂膠機(jī)器人工作站工程現(xiàn)場
評論
0/150
提交評論