




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、分布式系統(tǒng) Distributed Systems第 9 講 虛擬化LECTURE 9 VIRTUALIZATION王曉陽(yáng)、張 奇復(fù)旦大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院1目錄 7.1 虛擬化介紹 7.2 處理器虛擬化 7.3 內(nèi)存虛擬化 7.4 I/O虛擬化 7.5 實(shí)例2虛擬化技術(shù)的歷史資源池IBM推出虛擬化技術(shù),提高了昂貴的大型機(jī)的利用率;VMware公司解決了X86虛擬化問(wèn)題,推出了X86平臺(tái)的虛擬機(jī)軟件,使虛擬化技術(shù)開(kāi)始走向普通用戶。開(kāi)源虛擬化技術(shù)Xen推出,使虛擬化技術(shù)的研究和應(yīng)用更加普及;Intel和AMD推出支持虛擬化技術(shù)的處理器和芯片組,實(shí)現(xiàn)了硬件輔助虛擬化技術(shù);1960s1999200
2、32005Amazon采用虛擬化技術(shù)提供云計(jì)算平臺(tái),取得了商業(yè)上的成功,虛擬化技術(shù)成為云計(jì)算的基石;2006虛擬化技術(shù)將物理資源轉(zhuǎn)化為便于切分的資源池,符合云計(jì)算的基本條件;虛擬化給資源以動(dòng)態(tài)調(diào)配的能力,符合云計(jì)算按需分配的要求;來(lái)源: ZTE中興 虛擬化技術(shù)3虛擬化前虛擬化后虛擬化將硬件、操作系統(tǒng)和應(yīng)用程序一同封裝封裝一個(gè)可遷移的虛擬機(jī)檔案文件中 軟件必須與硬件相結(jié)合 每臺(tái)機(jī)器只能 運(yùn)行單一的操作系統(tǒng) 每個(gè)操作系統(tǒng)有一個(gè)或多個(gè)應(yīng)用程序負(fù)載(通常只有一個(gè)) 增加虛擬化層 裸金屬架構(gòu) 每臺(tái)機(jī)器上有多個(gè)操作系統(tǒng)和多個(gè)應(yīng)用負(fù)載未更改過(guò)的應(yīng)用未更改過(guò)的應(yīng)用未更改過(guò)的未更改過(guò)的OS虛擬硬件虛擬硬件服務(wù)器
3、虛擬化的基礎(chǔ)概念來(lái)源: ZTE中興 虛擬化技術(shù)4虛擬化計(jì)算系統(tǒng)體系結(jié)構(gòu)虛擬機(jī)管理器VMM單計(jì)算系統(tǒng)虛擬化多計(jì)算系統(tǒng)虛擬化操作系統(tǒng)應(yīng)用程序VMMVMMVMM應(yīng)用系統(tǒng)傳統(tǒng)計(jì)算系統(tǒng)計(jì)算模式虛擬化計(jì)算系統(tǒng)計(jì)算模式應(yīng)用系統(tǒng)應(yīng)用系統(tǒng)應(yīng)用系統(tǒng)操作系統(tǒng)操作系統(tǒng)操作系統(tǒng)操作系統(tǒng)來(lái)源: ZTE中興 虛擬化技術(shù)5虛擬技術(shù): 四大特性相對(duì)于硬件獨(dú)立相對(duì)于硬件獨(dú)立無(wú)需修改即可在任何服務(wù)器上運(yùn)行虛擬機(jī)分區(qū)分區(qū)在單一物理服務(wù)器上同時(shí)運(yùn)行多個(gè)虛擬機(jī)隔離隔離在同一服務(wù)器上的虛擬機(jī)之間相互隔離封裝封裝整個(gè)虛擬機(jī)都保存在文件中,而且可以通過(guò)移動(dòng)和復(fù)制這些文件的方式來(lái)移動(dòng)和復(fù)制該虛擬機(jī)來(lái)源: ZTE中興 虛擬化技術(shù)6虛擬化益處:實(shí)現(xiàn)
4、資源最優(yōu)利用通過(guò)虛擬化進(jìn)行服務(wù)器整合優(yōu)勢(shì):n 大大提高硬件利用率n 增加系統(tǒng)的可管理性n 簡(jiǎn)化服務(wù)器安裝過(guò)程,節(jié)約時(shí)間50%70%n 減少10倍或更多的硬件購(gòu)買需求,節(jié)約一半的購(gòu)買和維護(hù)成本HypervisorHypervisorHypervisorHypervisor虛擬機(jī)來(lái)源: ZTE中興 虛擬化技術(shù)7虛擬化益處:動(dòng)態(tài)負(fù)載均衡資源 當(dāng)VMM監(jiān)測(cè)到某個(gè)計(jì)算節(jié)點(diǎn)的負(fù)載過(guò)高時(shí),可以在不中斷業(yè)務(wù)的情況下,將其遷移到其它負(fù)載較輕的節(jié)點(diǎn)或者在節(jié)點(diǎn)內(nèi)通過(guò)重新分配計(jì)算資源 執(zhí)行緊迫計(jì)算任務(wù)的虛擬機(jī)得到更多的計(jì)算資源,保證關(guān)鍵任務(wù)的響應(yīng)能力HypervisorHypervisorHypervisor利用虛擬
5、機(jī)與硬件無(wú)關(guān)的特性的虛擬機(jī)遷移技術(shù),按需分配資源來(lái)源: ZTE中興 虛擬化技術(shù)8虛擬化益處:系統(tǒng)自愈功能提升可靠性 系統(tǒng)服務(wù)器硬件故障時(shí),可自動(dòng)重啟虛擬機(jī) 消除在不同硬件上恢復(fù)操作系統(tǒng)和應(yīng)用程序安裝所帶來(lái)的困難,其中任何物理服務(wù)器均可作為虛擬服務(wù)器的恢復(fù)目標(biāo) 減少硬件成本和維護(hù)成本HypervisorHypervisorHypervisor實(shí)現(xiàn)經(jīng)濟(jì)高效、獨(dú)立于硬件和操作系統(tǒng)的應(yīng)用程序高可用性來(lái)源: ZTE中興 虛擬化技術(shù)9虛擬化益處:提升系統(tǒng)節(jié)能減排能力 與服務(wù)器管理硬件配合實(shí)現(xiàn)智能電源管理 優(yōu)化虛擬機(jī)資源的實(shí)際運(yùn)行位置,達(dá)到耗電最小化 可為運(yùn)營(yíng)商節(jié)省大量電力資源,減少供電成本,節(jié)能減排Hyp
6、ervisorHypervisorHypervisor休眠來(lái)源: ZTE中興 虛擬化技術(shù)10虛擬化技術(shù)的驅(qū)動(dòng)力IT成本的消減 虛擬化技術(shù)能夠顯著提高硬件平臺(tái)的利用率,節(jié)省50%以上的IT投資; 硬件服務(wù)器的減少同時(shí)能夠節(jié)省機(jī)房電力、空間和制冷方面的投入;IDC統(tǒng)計(jì)的每用戶年度花費(fèi)11虛擬化技術(shù)的驅(qū)動(dòng)力管理和可用性的提升 虛擬機(jī)與物理服務(wù)器的隔離,使物理服務(wù)器的變化不波及虛擬機(jī),簡(jiǎn)化了管理難度; 虛擬機(jī)間能夠提供對(duì)上層透明災(zāi)難恢復(fù)機(jī)制,災(zāi)難恢復(fù)過(guò)程簡(jiǎn)單靈活,能顯著提高系統(tǒng)可用性;物理設(shè)備虛擬機(jī)OSApp虛擬機(jī)OSApp故障升級(jí)維護(hù)來(lái)源: ZTE中興 虛擬化技術(shù)12數(shù)據(jù)中心整合案例整合之前整合之后
7、服務(wù)器1,000 臺(tái)80 臺(tái)存儲(chǔ)270 TB DAS140 TB SAN 和 NAS網(wǎng)絡(luò)3,000 個(gè)電纜/端口300 個(gè)電纜/端口設(shè)備200 個(gè)服務(wù)器機(jī)架400 個(gè)電源開(kāi)關(guān)10 個(gè)服務(wù)器機(jī)架20 個(gè)電源開(kāi)關(guān)客戶示例:領(lǐng)先的北美公共設(shè)施公司客戶示例:領(lǐng)先的北美公共設(shè)施公司VMware 對(duì)其產(chǎn)生的影響對(duì)其產(chǎn)生的影響硬件成本節(jié)省硬件成本節(jié)省數(shù)據(jù)中心空間、電力和制冷成本節(jié)省 70-80%2 年節(jié)省 800 萬(wàn)美元運(yùn)營(yíng)效率運(yùn)營(yíng)效率服務(wù)器重建和應(yīng)用程序載入時(shí)間從 20-40 小時(shí)縮短到 15-30 分鐘每年節(jié)省 10,000 工時(shí)來(lái)源: ZTE中興 虛擬化技術(shù)13認(rèn)識(shí)虛擬化指令仿真全虛擬化半虛擬化操作系
8、統(tǒng)虛擬化LIB庫(kù)仿真低高性能QEMUKVM/VmwareXenVServerWine計(jì)算機(jī)系統(tǒng)硬件操作系統(tǒng)程序庫(kù)應(yīng)用程序指令集合ISA系統(tǒng)調(diào)用SysCall應(yīng)用編程接口API來(lái)源: ZTE中興 虛擬化技術(shù)14X86平臺(tái)虛擬化的三種方式全虛擬化全虛擬化客戶操作系統(tǒng)運(yùn)行在Ring 1級(jí),VMM運(yùn)行在Ring 0級(jí),對(duì)于不能虛擬化的特權(quán)指令,通過(guò)二進(jìn)制轉(zhuǎn)換方式轉(zhuǎn)換為同等效果的指令序列運(yùn)行,而用戶級(jí)指令可直接運(yùn)行。不需要修改操作系統(tǒng),虛擬機(jī)具有較好的隔離性和安全性。半虛擬化半虛擬化需要修改操作系統(tǒng)內(nèi)核,將不能虛擬化的指令替換為hypercall,hypercall直接與虛擬層通信;顯著減少了虛擬化開(kāi)銷
9、,性能較高,但是由于需要修改操作系統(tǒng)內(nèi)核,對(duì)于非開(kāi)放的操作系統(tǒng),如windows 2000/xp,則無(wú)法支持。硬件輔助虛擬化硬件輔助虛擬化CPU在Ring 0級(jí)之下還提供了一個(gè)Root Mode,VMM運(yùn)行在Root Mode下。特權(quán)指令自動(dòng)被VMM捕獲,不需要進(jìn)行二進(jìn)制轉(zhuǎn)換或調(diào)用Hypercall;效率較高,無(wú)需修改操作系統(tǒng)。ZTE最新的刀片支持硬件輔助虛擬化。來(lái)源: ZTE中興 虛擬化技術(shù)15X86平臺(tái) Full virtualization虛擬化技術(shù) 客戶操作系統(tǒng)運(yùn)行在Ring 1級(jí),VMM運(yùn)行在Ring 0級(jí),VMM提供給操作系統(tǒng)各種虛擬資源(虛擬BIOS、虛擬設(shè)備和虛擬內(nèi)存管理等)。
10、對(duì)于不能虛擬化的特權(quán)指令,通過(guò)二進(jìn)制轉(zhuǎn)換方式轉(zhuǎn)換為同等效果的指令序列運(yùn)行,而用戶級(jí)指令可直接運(yùn)行。 客戶操作系統(tǒng)與底層硬件資源完全隔離,操作系統(tǒng)不感知運(yùn)行在虛擬機(jī)上,也不需要修改操作系統(tǒng),虛擬機(jī)具有較好的隔離性和安全性。AppRing 3Ring 2Guest OSRing 1VMMRing 0X86 硬件平臺(tái)對(duì)特權(quán)指令進(jìn)行二進(jìn)制轉(zhuǎn)換用戶指令直接執(zhí)行來(lái)源: ZTE中興 虛擬化技術(shù)16X86平臺(tái) Para-virtualization虛擬化技術(shù) 這種方式需要修改操作系統(tǒng)內(nèi)核,將不能虛擬化的指令替換為hypercall,hypercall直接與虛擬層通信,虛擬層提供內(nèi)核操作的關(guān)鍵接口,如內(nèi)存管理、
11、中斷處理和時(shí)間管理等。 這樣顯著減少了虛擬化開(kāi)銷,性能較高,但是由于需要修改操作系統(tǒng)內(nèi)核,對(duì)于非開(kāi)放的操作系統(tǒng),如windows 2000/xp,則無(wú)法支持。VMMAppRing 3Ring 2Ring 1Guest OSRing 0X86 硬件平臺(tái)通過(guò)Hypercall調(diào)用虛擬層操作用戶指令直接執(zhí)行來(lái)源: ZTE中興 虛擬化技術(shù)17X86平臺(tái) 硬件輔助虛擬化 在Intel的VT-x技術(shù)中,CPU在Ring 0級(jí)之下還提供了一個(gè)Root Mode,VMM運(yùn)行在Root Mode下。特權(quán)指令自動(dòng)被VMM捕獲,不需要進(jìn)行二進(jìn)制轉(zhuǎn)換或調(diào)用Hypercall。 Intel還對(duì)外設(shè)提供了VT-d和VT-
12、c等技術(shù),提供對(duì)外設(shè)虛擬化的支持。VMMAppRing 3Ring 2Ring 1Guest OSRing 0X86 硬件平臺(tái)特權(quán)指令被VMM捕獲,不需要二進(jìn)制轉(zhuǎn)換用戶指令直接執(zhí)行非Root modeRoot mode來(lái)源: ZTE中興 虛擬化技術(shù)18VMM作為一個(gè)應(yīng)用程序運(yùn)行在主機(jī)操作系統(tǒng)上,兼容性好但效率低。虛擬化技術(shù)的關(guān)鍵組件VMM組織架構(gòu)Host OSVMMAPP Guest OS1AppGuest OS2Service OSVMMAPPGuest OS1APPGuest OS2HardwareHardwareOS-Hosted OS-Hosted 模式模式VMMAPPGuest OS
13、1APPGuest OS2HardwareVMM又稱為Hypervisor,負(fù)責(zé)為虛擬機(jī)統(tǒng)一分配CPU、內(nèi)存和外設(shè),調(diào)度虛擬資源;VMM直接運(yùn)行在物理硬件上,效率更高,但硬件兼容性差。Stand-alone HypervisorStand-alone Hypervisor 模式模式前兩種方式的綜合,VMM直接運(yùn)行在物理硬件上,但驅(qū)動(dòng)程序由Service OS提供。HybridHybrid模式模式來(lái)源: ZTE中興 虛擬化技術(shù)197.2 處理器虛擬化 CPU 背景 處理器虛擬化技術(shù) 系統(tǒng)ISA虛擬化 指令解釋 陷入模擬 二進(jìn)制翻譯 混合模型20計(jì)算機(jī)系統(tǒng)組成CPUMMU內(nèi)存內(nèi)存控制器控制器本地總
14、線本地總線I接口接口高速高速I/O總線總線NIC控制器控制器橋橋幀緩存幀緩存LAN低速低速I/O總線總線USBCD-ROM21CPU 組成 指令系統(tǒng)結(jié)構(gòu)(ISA)定義: 對(duì)編程人員可見(jiàn)的狀態(tài) 寄存器和內(nèi)存 在這些狀態(tài)上進(jìn)行的操作指令 典型ISA劃分為2部分 用戶 ISA 主要用來(lái)計(jì)算 系統(tǒng) ISA 主要用來(lái)管理系統(tǒng)資源22用戶 ISA 狀態(tài)用戶虛擬內(nèi)存用戶虛擬內(nèi)存程序計(jì)數(shù)器程序計(jì)數(shù)器條件碼寄存器條件碼寄存器Reg 0Reg 1Reg n-1FP 0FP 1FP n-1專用寄存器通用一般寄存器浮點(diǎn)寄存器23用戶 ISA 指令加減與比較載入字節(jié)載入字多路存儲(chǔ)壓棧跳轉(zhuǎn)相等跳轉(zhuǎn)調(diào)用返回單精度加雙精度乘
15、雙精度開(kāi)根號(hào)整數(shù)整數(shù)內(nèi)存內(nèi)存控制流控制流圖圖浮點(diǎn)數(shù)浮點(diǎn)數(shù)取指取指寄存器操作寄存器操作發(fā)射發(fā)射IntegerIntegerMemoryFP典型指令流水線典型指令流水線譯碼譯碼指令集指令集24系統(tǒng) ISA 特權(quán)級(jí)別 控制寄存器 陷入和中斷 硬編碼向量 分派表 系統(tǒng)時(shí)鐘 內(nèi)存管理單元MMU 頁(yè)表 TLB I/O 設(shè)備訪問(wèn)SystemUserUserExtensionKernelLevel 0Level 1Level 225Isomorphism形式上講,虛擬化就是從客戶機(jī)狀態(tài)到宿主機(jī)狀態(tài)的同構(gòu)構(gòu)造GuestSiSjHostSiSje(Si)e(Si)V(Si)V(Sj)26系統(tǒng)指令體系結(jié)構(gòu)的虛擬化
16、監(jiān)視器需要的硬件支持 例如: 監(jiān)視器必須能夠控制實(shí)際的硬件中斷 訪問(wèn)硬件使得虛擬機(jī)(VM)破壞隔離性 例如: 訪問(wèn)MMU使得VM能夠?qū)懭魏雾?yè) 因此 客戶機(jī)所有對(duì)虛擬系統(tǒng)ISA訪問(wèn)的操作必須由監(jiān)視器軟件模擬實(shí)現(xiàn)。 系統(tǒng)的狀態(tài)保存在內(nèi)存中。 系統(tǒng)指令都由虛擬機(jī)監(jiān)視器的相關(guān)函數(shù)實(shí)現(xiàn)相關(guān)函數(shù)實(shí)現(xiàn)在監(jiān)視器中27示例:CPU狀態(tài)static struct uint32 GPR16; uint32 LR; uint32 PC; int IE; int IRQ; CPUState;void CPU_CLI(void) CPUState.IE = 0;void CPU_STI(void) CPUState.IE
17、 = 1; CPU虛擬化技術(shù)的目標(biāo) 能夠盡可能快的處理一般指令 特權(quán)指令轉(zhuǎn)交給模擬例程28指令解釋 模擬 取指/譯碼/執(zhí)行 軟件流水線 優(yōu)點(diǎn) 容易實(shí)現(xiàn) 復(fù)雜度最低 缺點(diǎn) 慢!29實(shí)例: 虛擬化中斷標(biāo)識(shí)w/ 指令解釋器void CPU_Run(void) while (1) inst = Fetch(CPUState.PC); CPUState.PC += 4; switch (inst) case ADD: CPUState.GPRrd = GPRrn + GPRrm; break; case CLI: CPU_CLI(); break; case STI: CPU_STI(); break;
18、 if (CPUState.IRQ & CPUState.IE) CPUState.IE = 0; CPU_Vector(EXC_INT); void CPU_CLI(void) CPUState.IE = 0;void CPU_STI(void) CPUState.IE = 1;void CPU_Vector(int exc) CPUState.LR = CPUState.PC; CPUState.PC = disTabexc;30陷入和模擬客戶操作系統(tǒng)客戶操作系統(tǒng)+ 應(yīng)用應(yīng)用虛擬機(jī)監(jiān)視器虛擬機(jī)監(jiān)視器缺頁(yè)缺頁(yè)未定未定義指義指令令虛擬虛擬中斷中斷MMU模擬模擬CPU模擬模擬I/O模擬模
19、擬非特權(quán)態(tài)非特權(quán)態(tài)特權(quán)態(tài)特權(quán)態(tài)31陷入模擬的問(wèn)題 并不是所有的體系結(jié)構(gòu)都支持 陷入的代價(jià)比較高 監(jiān)視器在特權(quán)級(jí)別 需要虛擬化保護(hù)級(jí)別32二進(jìn)制翻譯翻譯器客戶代碼翻譯緩存調(diào)出翻譯緩存TC索引CPU 模擬例程33基本塊vPCmov ebx, eaxcliand ebx, 0 xfffmov ebx, cr3stiret客戶代碼客戶代碼Straight-line code控制流圖控制流圖基本塊基本塊34二進(jìn)制翻譯vPCmov ebx, eaxcliand ebx, 0 xfffmov ebx, cr3stiretmov ebx, eaxcall HANDLE_CLIand ebx, 0 xfffmo
20、v CO_ARG, ebxcall HANDLE_CR3call HANDLE_STIjmp HANDLE_RET開(kāi)始開(kāi)始客戶代碼客戶代碼翻譯緩存翻譯緩存35二進(jìn)制翻譯vPCmov ebx, eaxcliand ebx, 0 xfffmov ebx, cr3stiretmov ebx, eaxmov CPU_IE, 0and ebx, 0 xfffmov CO_ARG, ebxcall HANDLE_CR3mov CPU_IE, 1test CPU_IRQ, 1jnecall HANDLE_INTSjmp HANDLE_RETstart客戶代碼客戶代碼翻譯緩存翻譯緩存36基本二進(jìn)制翻譯器voi
21、d BT_Run(void) CPUState.PC = _start; BT_Continue();void BT_Continue(void) void *tcpc; tcpc = BTFindBB(CPUState.PC); if (!tcpc) tcpc = BTTranslate(CPUState.PC); RestoreRegsAndJump(tcpc);void *BTTranslate(uint32 pc) void *start = TCTop; uint32 TCPC = pc; while (1) inst = Fetch(TCPC); TCPC += 4; if (Is
22、Privileged(inst) EmitCallout(); else if (IsControlFlow(inst) EmitEndBB(); break; else /* ident translation */ EmitInst(inst); return start;37基本二進(jìn)制翻譯器 第二部分void BT_CalloutSTI(BTSavedRegs regs) CPUState.PC = BTFindPC(regs.tcpc); CPUState.GPR = regs.GPR; CPU_STI(); CPUState.PC += 4; if (CPUState.IRQ &am
23、p; CPUState.IE) CPUVector(); BT_Continue(); /* NOT_REACHED */ return;38控制流的控制vEPCtest eax, 1jeq add ebx, 18mov ecx, ebxmov ecx, eaxtest eax, 1jeqcall END_BBcall END_BB開(kāi)始開(kāi)始客戶代碼客戶代碼翻譯緩存翻譯緩存ret39控制流的控制vEPCtest eax, 1jeq add ebx, 18mov ecx, ebxmov ecx, eaxtest eax, 1jeqcall END_BBcall END_BB客戶代碼客戶代碼翻譯緩存
24、翻譯緩存retadd ebx, 18mov ecx, ebxmov ecx, eaxcall HANDLE_RETeax = 0查找查找下一下一個(gè)個(gè)40控制流的控制vEPCtest eax, 1jeq add ebx, 18mov ecx, ebxmov ecx, eaxtest eax, 1jeqjmpcall END_BB客戶代碼客戶代碼翻譯緩存翻譯緩存retadd ebx, 18mov ecx, ebxmov ecx, eaxcall HANDLE_RETeax = 041控制流的控制vEPCtest eax, 1jeq add ebx, 18mov ecx, ebxmov ecx, e
25、axtest eax, 1jeqjmpcall END_BB客戶代碼客戶代碼翻譯緩存翻譯緩存retadd ebx, 18mov ecx, ebxmov ecx, eaxcall HANDLE_RETeax = 1查找查找下一下一步步mov ecx, eaxcall HANDLE_RET42控制流的控制vEPCtest eax, 1jeq add ebx, 18mov ecx, ebxmov ecx, eaxtest eax, 1jeqjmpjmpGuest CodeTranslation Cacheretadd ebx, 18mov ecx, ebxmov ecx, eaxcall HANDL
26、E_RETeax = 1mov ecx, eaxcall HANDLE_RET43二進(jìn)制翻譯存在的問(wèn)題 翻譯緩存索引數(shù)據(jù)結(jié)構(gòu) PC(程序計(jì)數(shù)器) 在中斷上的同步 自我修改(Self-modifying )的代碼 將寫(xiě)操作轉(zhuǎn)給翻譯后的客戶機(jī)代碼在翻譯好的客戶代碼的寫(xiě)通知44二進(jìn)制翻譯的其他使用 ISA交叉翻譯器 Digital FX!32 優(yōu)化翻譯器 H.P. Dynamo 高級(jí)語(yǔ)言字節(jié)碼翻譯器 Java .NET/CLI45混合方式 內(nèi)核代碼為內(nèi)核的二進(jìn)制翻譯 用戶代碼為用戶的直接執(zhí)行(陷入模擬) U.S. Patent 6,397,242直接執(zhí)行直接執(zhí)行OK?直接執(zhí)行跳轉(zhuǎn)到客直接執(zhí)行跳轉(zhuǎn)到客
27、戶機(jī)戶機(jī)PCYes在在TC中執(zhí)行中執(zhí)行TC 驗(yàn)證驗(yàn)證處理特權(quán)指處理特權(quán)指令令No調(diào)出陷入46Translation Cache(TC) 背景 虛擬化技術(shù) TLB仿真 影子頁(yè)表 頁(yè)面保護(hù) 內(nèi)存追蹤 隱藏監(jiān)視器 硬件支持的內(nèi)存虛擬化 嵌套頁(yè)表7.3 內(nèi)存虛擬化47CPUMMUMemoryController本地本地 總線總線Interface高速高速I/O 總線總線NICControllerBridgeFrame BufferLAN低速低速I/O 總線總線USBCD-ROM計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)48傳統(tǒng)地址空間04GB物理地址空間物理地址空間RAMROM設(shè)備幀緩沖器49傳統(tǒng)地址空間04GB當(dāng)前進(jìn)程04GB
28、操作系統(tǒng)虛擬地址空間虛擬地址空間物理地址空間物理地址空間RAMROM設(shè)備幀緩沖器50Process Virtual Address Space04GB傳統(tǒng)地址空間04GBBackground ProcessOperating System當(dāng)前進(jìn)程04GB操作系統(tǒng)虛擬地址空間虛擬地址空間物理地址空間物理地址空間RAMROM設(shè)備幀緩沖器背景進(jìn)程操作系統(tǒng)51內(nèi)存管理單元(MMU) 虛擬地址到物理地址的轉(zhuǎn)換虛擬地址到物理地址的轉(zhuǎn)換 使用固定大小的頁(yè)面 頁(yè)保護(hù) 旁路轉(zhuǎn)換緩沖器旁路轉(zhuǎn)換緩沖器 TLB 緩存了最近的虛擬地址到物理地址的映射 控制寄存器控制寄存器 頁(yè)表位置 當(dāng)前ASID(地址空間標(biāo)識(shí)符) 對(duì)齊
29、檢查52MMUs的類型 硬件架構(gòu)的頁(yè)表硬件架構(gòu)的頁(yè)表 x86, x86-64, ARM, IBM System/370, PowerPC 硬件定義頁(yè)表布局 發(fā)生TLB失效時(shí)硬件遍歷頁(yè)表 硬件架構(gòu)的硬件架構(gòu)的 TLB MIPS, SPARC, Alpha 硬件定義 TLB的接口 TLB失效時(shí)由軟件重新裝入TLB 軟件定義頁(yè)表布局 分段分段/ 無(wú)無(wú)MMU 低端 ARM處理器, 微控制器 需要半虛擬化53傳統(tǒng)地址轉(zhuǎn)換 基于硬件架構(gòu)的頁(yè)表虛擬地址虛擬地址物理地址物理地址進(jìn)程進(jìn)程頁(yè)表頁(yè)表122345TLB操作系統(tǒng)的頁(yè)面失操作系統(tǒng)的頁(yè)面失效處理程序效處理程序54虛擬化的地址空間04GB當(dāng)前的客戶進(jìn)程04G
30、B客戶操作系統(tǒng)虛擬地址空間虛擬地址空間物理地址空間物理地址空間虛擬 RAM虛擬ROM虛擬設(shè)備虛擬幀緩沖器55虛擬化的地址空間04GB當(dāng)前的客戶進(jìn)程04GB客戶操作系統(tǒng)虛擬地址空間虛擬地址空間物理地址空間物理地址空間虛擬RAM虛擬ROM虛擬設(shè)備虛擬幀緩沖器04GB機(jī)器地址空間機(jī)器地址空間RAMROM設(shè)備幀緩沖器56虛擬化的地址空間基于硬件架構(gòu)的TLB虛擬地址空間04GB物理地址空間0機(jī)器地址空間0客戶機(jī)頁(yè)表VMM PhysMap4GB4GB硬件架構(gòu)的硬件架構(gòu)的 TLB頁(yè)表頁(yè)表57虛擬化的地址轉(zhuǎn)換基于 硬件架構(gòu)的 TLB虛擬地址虛擬地址機(jī)器地址機(jī)器地址Emulated TLBPage TableG
31、uestPage TablePMap12234536TLBA58TLB仿真的問(wèn)題 虛擬機(jī)頁(yè)表一致性 根據(jù)虛擬機(jī)的需要使TLB無(wú)效 監(jiān)視器引起虛擬機(jī)TLB失效 性能 虛擬機(jī)上下文切換沖洗整個(gè)軟件TLB59影子頁(yè)表GuestPage TableShadowPage TableGuestPage TableGuestPage TableShadowPage TableShadowPage Table虛擬虛擬 CR3真實(shí)真實(shí) CR360客戶寫(xiě)CR3GuestPage TableShadowPage TableGuestPage TableGuestPage TableShadowPage TableS
32、hadowPage Table虛擬虛擬CR3真實(shí)真實(shí)CR361客戶寫(xiě)CR3GuestPage TableShadowPage TableGuestPage TableGuestPage TableShadowPage TableShadowPage Table虛擬虛擬 CR3真實(shí)真實(shí) CR362未發(fā)現(xiàn)的客戶頁(yè)表GuestPage TableShadowPage TableGuestPage TableGuestPage TableShadowPage TableShadowPage Table虛擬虛擬CR3真實(shí)真實(shí)CR3GuestPage Table63未發(fā)現(xiàn)的客戶頁(yè)表GuestPage Ta
33、bleShadowPage TableGuestPage TableGuestPage TableShadowPage TableShadowPage Table虛擬虛擬CR3真實(shí)真實(shí) CR3GuestPage TableShadowPage Table64使用影子頁(yè)表的問(wèn)題 好處 使用和硬件架構(gòu)的TLB相同的方式處理頁(yè)面失效 快速的客戶進(jìn)程上下文切換 頁(yè)表一致性 客戶機(jī)在寫(xiě)離線頁(yè)表時(shí)不需要使TLB無(wú)效 需要記錄使頁(yè)表項(xiàng)失效的對(duì)影子頁(yè)表的寫(xiě)操作 內(nèi)存膨脹 緩存客戶頁(yè)表消耗內(nèi)存 需要確定客戶什么時(shí)候重用內(nèi)存657.4 I/O 虛擬化 設(shè)備虛擬化的類型 直接訪問(wèn) 仿真 半虛擬化 存儲(chǔ)虛擬化貯存虛擬
34、化 寫(xiě)時(shí)復(fù)制磁盤(pán)( Copy-on-Write )66計(jì)算機(jī)系統(tǒng)組織結(jié)構(gòu)CPUMMU內(nèi)存內(nèi)存控制器控制器本地總線本地總線接口接口高速高速I/O總線總線NIC控制器控制器Bridge幀幀緩存緩存緩緩沖器沖器局域局域網(wǎng)網(wǎng)低速低速I/O 總線總線USBCD-ROM67設(shè)備虛擬化 目標(biāo) 隔離 多路技術(shù) 速度 移動(dòng)性 干涉 設(shè)備虛擬化策略 直接訪問(wèn) 仿真 半虛擬化68直接訪問(wèn)設(shè)備CPUMMU內(nèi)存內(nèi)存控制器控制器本地總線本地總線接口接口高速高速I/O 總線總線NIC控制器控制器Bridge幀緩沖器幀緩沖器局域局域網(wǎng)網(wǎng)低速低速I/O 總線總線USBCD-ROMVMGuest OS69內(nèi)存隔離 w/ 直接訪問(wèn)
35、設(shè)備CPUMMU內(nèi)存內(nèi)存控制器控制器本地總線本地總線接口接口 IOMMU高速高速I/O 總線總線NIC控制器控制器Bridge幀緩沖器幀緩沖器局域局域網(wǎng)網(wǎng)低速低速I/O 總線總線USBCD-ROMVMGuest OS70 已啟用虛擬化的設(shè)備設(shè)備的虛擬化CPUMMU內(nèi)存內(nèi)存控制器控制器本地總線本地總線接口接口 IOMMU高速高速I/O 總線總線NIC控制器控制器Bridge幀緩沖器幀緩沖器局域局域網(wǎng)網(wǎng)低速低速I/O 總線總線USBCD-ROMVM1Guest OSvNIC 1VM2Guest OSvNIC 271直接訪問(wèn)設(shè)備虛擬化 允許客戶操作系統(tǒng)直接訪問(wèn)底層設(shè)備 優(yōu)點(diǎn) 速度快 簡(jiǎn)化了監(jiān)視器 只
36、需要有限的設(shè)備驅(qū)動(dòng)程序 缺點(diǎn) 安全性(IOMMU)需要硬件支持 多路需要硬件支持 硬件接口對(duì)客戶機(jī)可見(jiàn) 限制了VM的遷移性 根據(jù)定義很難干涉72仿真的設(shè)備 仿真設(shè)備 仿真寄存器 內(nèi)存映射的 I/O 或者 可編程的I/O 轉(zhuǎn)換 中間表示 每個(gè)真實(shí)設(shè)備的后端73串口示例監(jiān)視器宿主 操作系統(tǒng)串口串口芯片芯片 XYZ局域局域網(wǎng)網(wǎng)用戶應(yīng)用客戶機(jī)串口芯片串口芯片ABC驅(qū)動(dòng)程序驅(qū)動(dòng)程序串口芯片串口芯片ABC仿真仿真通用串口層通用串口層74仿真的設(shè)備 優(yōu)點(diǎn) 平臺(tái)穩(wěn)定 允許干涉 不需要特定的硬件支持 由虛擬機(jī)監(jiān)視器實(shí)現(xiàn)隔離和多路 缺點(diǎn) 速度慢 需要虛擬機(jī)監(jiān)視器或宿主機(jī)中的驅(qū)動(dòng)程序75半虛擬化的設(shè)備 客戶操作系統(tǒng)
37、在更高的抽象層把請(qǐng)求傳遞給監(jiān)視器 發(fā)起請(qǐng)求時(shí)進(jìn)行監(jiān)視器調(diào)用 客戶機(jī)和虛擬機(jī)監(jiān)視器共享緩沖器 優(yōu)點(diǎn) 簡(jiǎn)化了虛擬機(jī)監(jiān)視器 速度快 缺點(diǎn) 虛擬機(jī)監(jiān)視器需要提供客戶操作系統(tǒng)相關(guān)特定的驅(qū)動(dòng) (客戶操作系統(tǒng))自舉引導(dǎo)問(wèn)題76傳統(tǒng)體系結(jié)構(gòu)硬件硬件虛擬機(jī)監(jiān)視器虛擬機(jī)監(jiān)視器LinuxLinux (devel)XPVistaMacOS77基于宿主機(jī)的監(jiān)視器的體系結(jié)構(gòu)硬件硬件虛擬機(jī)監(jiān)視器虛擬機(jī)監(jiān)視器客戶操作系統(tǒng)客戶操作系統(tǒng) (Linux)宿主操作系統(tǒng)宿主操作系統(tǒng)(Window XP)用戶應(yīng)用用戶應(yīng)用內(nèi)核模塊內(nèi)核模塊78VMware ESX 2.0Source: http:/ Ex 2 - Xen 3.0 半虛擬化
38、Linux 客戶機(jī) 硬件支持的虛擬化 未修改的Windows 隔離的硬件驅(qū)動(dòng)程序Source: Ottawa Linux Symposium 2006 presentation. http:/www.cl.cam.ac.uk/netos/papers/80Hypervisor 硬件支持的單用監(jiān)視器 特征 輕量級(jí) 運(yùn)行在一個(gè)專門(mén)的硬件模式 客戶操作系統(tǒng)運(yùn)行在正常特權(quán)級(jí) 用途 安全性 系統(tǒng)管理 容錯(cuò)硬件硬件Hypervisor操作系統(tǒng)操作系統(tǒng)內(nèi)核模式內(nèi)核模式監(jiān)視器模式監(jiān)視器模式用戶模式用戶模式81虛擬磁盤(pán) 文件系統(tǒng)中的文件 宿主機(jī)文件系統(tǒng) Hypervisor 文件系統(tǒng) 文件的元數(shù)據(jù) 把磁盤(pán)塊映射成到文件偏移量 平面文件 索引文件 允許磁盤(pán)根據(jù)需
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年發(fā)酵合成控制系統(tǒng)合作協(xié)議書(shū)
- 企業(yè)用酒合同范例
- 廠區(qū)用地拆除合同范本
- 手寫(xiě)的借款合同范本
- 化糞池改造工程合同范本
- 縣城酒吧轉(zhuǎn)讓合同范例
- 吊柜出售轉(zhuǎn)讓合同范本
- 瓦片勞務(wù)合同范本
- 樹(shù)木移植合同范本
- 義齒公司員工合同范本
- 2025年山東泰山財(cái)產(chǎn)保險(xiǎn)股份有限公司招聘筆試參考題庫(kù)含答案解析
- 初中物理競(jìng)賽及自主招生講義:第7講 密度、壓強(qiáng)與浮力(共5節(jié))含解析
- 農(nóng)村自建房施工合同范本(包工包料)
- 高中主題班會(huì) 梁文鋒和他的DeepSeek-由DeepSeek爆火開(kāi)啟高中第一課-高中主題班會(huì)課件
- 污水處理設(shè)施運(yùn)維服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 一年級(jí)下冊(cè)書(shū)法教案 (一)
- 2025年復(fù)工復(fù)產(chǎn)安全開(kāi)工第一課專題培訓(xùn)
- 2025幼兒園疫情報(bào)告制度及流程
- GB/T 41869.3-2024光學(xué)和光子學(xué)微透鏡陣列第3部分:光學(xué)特性測(cè)試方法
- 2024年9月時(shí)事政治試題帶答案
- 2024年八年級(jí)語(yǔ)文下冊(cè)《經(jīng)典常談》第一章《說(shuō)文解字》練習(xí)題卷附答案
評(píng)論
0/150
提交評(píng)論