【文章內(nèi)容簡介】
化也稱為單操作系統(tǒng)鏡像虛擬化。 Virtualization for Linux and Windows NT Platforms 23 優(yōu)點 (1)VMs at the operating system level have minimal startup/shutdown costs, low resource requirements, and high scalability (2) for an OSlevel VM, it is possible for a VM and its host environment to synchronize state changes when necessary 缺點 all the VMs at operating system level on a single container must have the same kind of guest operating system 24 中間件對虛擬化的支持 — 庫級虛擬化 ? Librarylevel virtualization is also known as userlevel Application Binary Interface (ABI) or API emulation ? create execution environments for running alien programs on a platform rather than creating a VM to run the entire operating system ? API call interception and remapping are the key functions 25 中間件對虛擬化的支持 26 CPU、內(nèi)存和 I/O設備的虛擬化 為支持虛擬化,處理器利用硬件輔助虛擬化,引入一種特殊的運行模式和指令,使得 VMM和客戶操作系統(tǒng)可運行在不同模式中,客戶操作系統(tǒng)及其應用程序的所有敏感指令會 trap到 VMM中。 虛擬化的硬件支持 現(xiàn)代操作系統(tǒng)和處理器允許多個進程同時運行。如果處理器中沒有保護機制,那么不同進程的所有指令都可以直接訪問硬件,很容易導致系統(tǒng)崩潰。因此,所有處理器都至少需要兩種模式(用戶模式和管理模式)來確保對臨界區(qū)硬件的受控訪問。運行在管理模式的指令稱為特權指令,其他指令為非特權指令。 27 Intel對處理器、內(nèi)存和 I/O設備虛擬化的硬件支持 28 CPU虛擬化 虛擬機的非特權指令直接在物理主機中運行 關鍵指令可以分為三類:特權指令 、 控制敏感指令和行為敏感指令 。 特權指令需要在特權模式中執(zhí)行 , 當在特權模式之外執(zhí)行特權指令時會發(fā)生trap。 控制敏感指令嘗試改變使用資源的配置 。 行為敏感指令根據(jù)資源的配置情況會有不同的行為 ,包括在虛擬內(nèi)存中進行的負載和存儲操作 。 VMM運行在管理模式時 , CPU支持在用戶模式運行虛擬機的特權指令和非特權指令 , 則該 CPU體系結構是可虛擬化的 。 RISC的所有控制敏感指令和行為敏感指令都是特權指令 , 因此 , RISC的 CPU體系結構是天然可虛擬化的 。 29 Intel硬件輔助的 CPU虛擬化 VTx VTi VTx有助于提高基于軟件的虛擬化解決方案的靈活性與穩(wěn)定性 ?有效減少 VMM 干預 ?為 VMM 與客戶操作系統(tǒng)之間的傳輸平臺控制提供了有力的硬件支持 ?實現(xiàn)更加快速、可靠和安全的切換 兩種操作模式: ?VMX root operation(根虛擬化操作) VMM運行所處的模式 , 設計給 VMM/Hypervisor使用 ?VMX nonroot operation(非根虛擬化操作) 客戶機運行所處的模式 ,在 VMM控制之下的 IA32/64環(huán)境 VirtualMachine Control Structure( VMCS,虛擬機控制結構) 30 VMM與客戶機的切換 31 內(nèi)存虛擬化 客戶操作系統(tǒng)和 VMM分別維護從虛擬內(nèi)存到物理內(nèi)存的映射和從物理內(nèi)存到機器內(nèi)存的映射 ,共兩級映射 。 客戶操作系統(tǒng)仍舊負責從虛擬地址到虛擬機的物理內(nèi)存地址的映射 , VMM負責將客戶物理內(nèi)存映射到實際的機器內(nèi)存上 兩級內(nèi)存映射過程 32 shadow page table ? 在 TLB 和 CPU 緩存上緩存的是來自影子頁表中客戶機虛擬地址和宿主機物理地址之間的映射 ? Since modern operating systems maintain a set of page tables for every process, the shadow page tables will get flooded. Consequently, the perfor mance overhead and cost of memory will be very high 33 使用 Intel的 EPT的內(nèi)存虛擬化 34 I/O虛擬化 I/O虛擬化包括管理虛擬設備和共享的物理硬件之間 I/O請求的路由選擇 。 實現(xiàn) I/O虛擬化有三種方式: ?全設備模擬 : 一個設備的所有功能或總線結構( 如設備枚舉 、 識別 、 中斷和 DMA) 都可以在軟件中復制 。 ?半虛擬化 : 是 Xen所采用的方法 , 是廣為熟知的分離式驅(qū)動模型 , 由前端驅(qū)動和后端驅(qū)動兩部分構成 。 前端驅(qū)動運行在 Domain U中 , 而后端驅(qū)動運行在 Domain 0中 , 它們通過一塊共享內(nèi)存交互 。 ?直接 I/O虛擬化 : 讓虛擬機直接訪問設備硬件 。它能獲得近乎本地的性能 , 并且 CPU開銷不高 。 35 用于 I/O虛擬化的設備模擬,虛擬化在中間層實現(xiàn),將真實 I/O設備映射到客戶設備驅(qū)動使用的虛擬設備 36 虛擬集群和資源管理 物理集群與虛擬集群 虛擬集群由多個客戶虛擬機構成,這些客戶虛擬機安裝在由一個或多個物理集群構成的分布式服務器上。在邏輯上,處于一個虛擬集群的客戶虛擬機通過一個跨越了多個物理網(wǎng)絡的虛擬網(wǎng)絡互連在一起。 37 為虛擬集群提供虛擬機的過程可以動態(tài)進行: ?虛擬集群節(jié)點可以是物理機器或虛擬機器 ?主機操作系統(tǒng)管理物理機器的資源 , 虛擬機運行其上 , 并且可以運行與主機相異的操作系統(tǒng) 。 ?使用虛擬機的目的是整合同一臺物理服務器的多功能性 , 提高資源利用率 ?虛擬機可以在多個物理服務器上備份 , 以提高分布式并行度 、 容錯性 , 加快災難恢復速度 。 ?虛擬集群的節(jié)點數(shù)可以動態(tài)增減 。 ?物理節(jié)點的失效會使得運行在其上的虛擬機也失效 , 但是虛擬機的失效不會影響主機系統(tǒng) 。 38 基于應用程序劃分的虛擬集群 虛擬機的管理 virtual clu