第2章 虚拟化实现技术架构2ppt课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第2章 虚拟化实现技术架构2ppt课件.ppt》由会员分享,可在线阅读,更多相关《第2章 虚拟化实现技术架构2ppt课件.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、在此输入您的封面副标题第2章 虚拟化实现技术架构2第2章 虚拟化实现技术架构虚拟化技术第1节 处理器虚拟化实现技术第2节 内存虚拟化实现技术第3节 I/O设备虚拟化实现技术第4节 网络虚拟化技术第5节 主流虚拟方案及特点目录处理器虚拟化是VMM中最重要的部分,因为访问内存或者I/O的指令本身就是敏感指令,所以内存虚拟化和I/O虚拟化都依赖于处理器虚拟化。在x86体系结构中,处理器有四个运行级别,分别是Ring0,Ring1,Ring2和Ring3。其中,Ring0级别拥有最高的权限,可以执行任何指令而没有限制。运行级别从Ring0到Ring3依次递减。操作系统内核态代码运行在Ring0级别,因
2、为它需要直接控制和修改CPU状态,而类似于这样的操作需要在Ring0级别的特权指令才能完成,而应用程序一般运行在Ring3级别。CPU虚拟化虚拟化虚拟虚拟CPU的正确运行是要保证虚拟机指令正确运行,现有的实现技术的正确运行是要保证虚拟机指令正确运行,现有的实现技术包括模拟执行和监控执行包括模拟执行和监控执行调度问题是指调度问题是指VMM决定当前哪个虚拟决定当前哪个虚拟CPU在物理在物理CPU上运行,要保上运行,要保证隔离性、公平性和性能。证隔离性、公平性和性能。物理CPU虚拟CPU抽象客户操作系统物理CPU虚拟CPU抽象物理CPU虚拟CPU抽象12CPU虚拟化实现技术虚拟化实现技术Intel
3、VT可以让一个CPU工作起来像多个CPU在并行运行,从而使得在一部电脑内同时运行多个操作系统成为可能AMD SVM在处理器上提供了硬件资源,允许单个机器高效地运行多个操作系统,并维护安全和资源相互隔离。硬件虚拟化使用vCPU(Virtual CPU)描述符来描述虚拟CPU。2.1.1 Intel VT-XRing3Ring0VMCS1VMCSnVMCS2Ring3Ring3Ring3Ring0Ring0Ring0Vmlaunch/VmrcsumeVMX非根操作模式VM ExitVMX根操作模式VM 1VM 2VM nVT-x的基本思想客户机运行时所处的模式,客户机运行时所处的模式,在此模式下,
4、所有敏感指在此模式下,所有敏感指令的行为都被重新定义,令的行为都被重新定义,使得它们能不经过虚拟化使得它们能不经过虚拟化就直接运行或者通过就直接运行或者通过“陷陷入再模式入再模式”的方式来处理。的方式来处理。VMM运行时所处的模式,运行时所处的模式,在根模式下,所有指令在根模式下,所有指令的行为和传统的的行为和传统的IA32一一样,因此,原来的软件样,因此,原来的软件都可以正常运行。都可以正常运行。2.1.2 vCPU类似于操作系统中的进程描述符,其本质是一个结构体,其组成部分如下:vCPU描述符vCPU标识信息虚拟寄存器信息vCPU状态信息额外寄存器其他信息用于标识vCPU的一些属性,如vC
5、PU的ID号、vCPU属于哪个客户机等。虚拟的寄存器资源,在使用Intel VT-x的情况下,这些内容包含在VMCS中,在使用AMD SVM的情况下,这些内容包含在VMCB中。类似于进程的状态信息,标识该vCPU当前所处的状态,主要供调度器使用。主要指未包含在VMCS/VMCB中的一些寄存器或CPU部件。例如,浮点寄存器和虚拟的LAPIC等。用于VMM进行优化或存储额外信息的字段,例如,存放该vCPU私有数据的指针。n 硬件虚拟化使用vCPU(Virtual CPU)描述符来描述虚拟CPU。 vCPU可以划分为两个部分当VMM创建客户机时,首先要为客户机创建vCPU,整个客户机的运行实际上可以
6、看做是VMM调度不同的vCPU运行。一个是以VMCS为主,由硬件来使用和更新的部分,这主要是虚拟寄存器;一个是除VMCS之外,由VMM来使用和更新的部分,主要指VMCS以外的部分。vCPU的基本操作(1)vCPU的创建(2)vCPU的运行(3)vCPU的推出(4)vCPU的再运行2.1.3 AMD SVM2.2 内存虚拟化实现技术内存虚拟化实现技术内存虚拟化技术把物理内存统一管理,包装成多个虚拟的物理内存提供给若干虚内存虚拟化技术把物理内存统一管理,包装成多个虚拟的物理内存提供给若干虚拟机使用,每个虚拟机拥有各自独立的内存空间。拟机使用,每个虚拟机拥有各自独立的内存空间。虚拟内存的管理包括3种
7、地址机器地址虚拟地址VMMGuestOS影子页表影子页表宿主机物理内存空间宿主机物理地址客户机物理内存空间虚拟内存空间客户机物理地址虚拟地址客户机操作系统内的页表客户机物理地址与宿主机物理地址映射表影子页表影子页表的作用通过“影子页表”的方式将两次转换合并为一次转换的方式解决内存虚拟化两次转换的问题影子页表影子页表-MMU的虚拟化的虚拟化VMM在物理MMU中载入的是影子页表。其原理如下图所示硬件硬件页表基地址寄存器页目录项页目录页表页表项宿主机物理页页目录项页表客户机物理页页表项页目录虚拟页表基地址寄存器客户机操作系统内的页表影子页表VMM客户机操作系统页表与影子页表影子页表的建立与维护影子页
8、表的建立与维护VMM对客户机对客户机操作系统操作系统INVLPG指令指令的截获与处理的截获与处理VMM对客户对客户机操作系统修机操作系统修改客户机改客户机CR3寄存器的截获寄存器的截获与处理与处理VMM对因客户机对因客户机页表和影子页表页表和影子页表不一致而触发的不一致而触发的缺页异常的截获缺页异常的截获与处理与处理影子页表的建立与维护过程交织在一起,贯穿于VMM针对客户机操作系统修改客户机页表和刷新TLB所做的操作中,只要包括三种:VMM对客户机对客户机操作系统操作系统INVLPG指令指令的截获与处理的截获与处理VMM对客户对客户机操作系统修机操作系统修改客户机改客户机CR3寄存器的截获寄存
9、器的截获与处理与处理VMM对因客户机对因客户机页表和影子页表页表和影子页表不一致而触发的不一致而触发的缺页异常的截获缺页异常的截获与处理与处理影子页表的建立与维护影子页表的建立与维护影子页表和客户机页表之间并不是时刻同步的,只有在需要的时候才进行同步。影子页表可以看做是客户机页表巨大的TLB,称之为虚拟TLB。客户机上的缺页异常影子页表初始化时的缺页异常VMM将宿主机物理页换出到硬盘上引发的缺页异常缺页异常的分类缺页异常的分类影子页表的缺点影子页表的缺点 影子页表解决了传统的IA32架构下的内存虚拟化问题,但是也有缺点:实现非常复杂,需要考虑各种各样的页表同步情况影子页表的内存开销也很大,需要
10、为每个客户机进程对应的页表都维护一个“影子页表”122.2.1 Intel EPTIntel EPT是Intel VT-x提供的内存虚拟化支持技术。EPT页表存在于VMM内核空间中,由VMM来维护。EPT 页表的基地址是由VMCS“VM-Execution”控制域的Extended Page Table Pointer字段指定的,它包含了EPT页表的宿主机系统物理地址。EPT是一个多级页表,各级页表的表项格式相同,Intel EPT是Intel VT-x提供的内存虚拟化支持技术。EPT页表存在于VMM内核空间中,由V M M 来 维 护 。 E P T 页 表 的 基 地 址 是 由VMCS“
11、VM-Execution”控制域的Extended Page Table Pointer字段指定的,它包含了EPT页表的宿主机系统物理地址。EPT是一个多级页表,各级页表的表项格式相同2.2.1 Intel EPT2.2.1 Intel EPT是Intel VT-x提供的内存虚拟化支持技术,其基本原理如下图所示在原有的CR3页表地址映射的基础上,EPT引入EPT页表来实现另一次映射。这里假设客户机页表和EPT页表都是4级页表,CPU完成一次地址转换的基本过程如右。2.2.2 AMD NPT传统的分页技术下的地址转化是直接将逻辑地址空间上的线性地址转换为物理地址空间上的物理地址。传统分页技术下的
12、地址转换嵌套分页技术下的地址转换AMD NPT转换步骤转换步骤客户机和宿主机都有自己的CR3寄存器,分别记为gCR3(guest CR3)和nCR3(nested CR3)。真正的 CR3由VMM所控制和使用。gPT(guest Page Table,客户机页表)负责将客户机线性地址转换为客户机物理地址。客户机页表存在于客户机物理内存中,并由gCR3索引。nPT(guest Page Table,客户机页表)负责将客户机物理地址转换为系统物理地址。嵌套页表存在于系统物理内存中,并由nCR3引索。最常用到的客户机线性地址到系统物理地址的映射关系在TLB中缓存。gCR3和客户机页表中存放的都是客户
13、机物理地址,所以,在访问客户机页表钱需要将客户机物理地址转换为系统物理地址。2.3 I/O虚拟化实现技术虚拟化实现技术I/O设备虚拟化同样是由VMM进行管理的全虚拟化半虚拟化软件模拟I/O设备虚拟化技术把真实的设备统一管理起来,包装成多个虚拟设备给若干个虚设备虚拟化技术把真实的设备统一管理起来,包装成多个虚拟设备给若干个虚拟机使用,响应每个虚拟机的设备访问请求和拟机使用,响应每个虚拟机的设备访问请求和I/O请求。请求。I/O设备虚拟化实现技术设备虚拟化实现技术I/O设备虚拟化面临以下两个基本问题让客户机直接访问到设备真实的I/O地址空间让设备的DMA操作直接访问到客户机的内存空间2.3.1 I
14、ntel VT-d在启用VT-d的平台上,设备所有的DMA传输都会被DMA重映射硬件截获在(a)中,是没有VT-d的平台,此时设备的DMA可以访问整个物理内存。在(b)中,是启用VT-d的情况,此时,设备只能访问指定的物理内存DMA重映射技术是VT-d技术提供的最关键的功能之一,在进行DMA操作时,设备需要做的就是向(从)驱动程序告知的“物理地址”复制(读取)数据。然而,在虚拟机环境下,客户机使用的是GPA,那么客户机驱动操作设备也用GPA。但是设备在进行DMA操作时,需要使用MPA(Memory Physical Address,内存物理地址),于是I/O虚拟化的关键问题就是如何在操作DMA
15、时将GPA转换成MPA。VT-d技术提供了DMA重映射技术就是来解决这个在进行DMA操作时将GPA转换成MPA的问题。PCI总线结构通过设备标示符(BDF)可以索引到任何一条总线上的任何一个设备,而VT-d中的DMA总线传输中也包含一个BDF用于标识DMA操作发起者。除了BDF外,VT-d还提供了两种数据结构来描述PCI架构,分别是根条目(Root Entry)和上下文条目(Content Entry)。下面,将分别介绍一下这两种数据结构。(1)根条目根条目根条目用于描述PCI总线,每条总线对应一个根条目。由于PCI架构支持最多256条总线,故最多可以有256个根条目。这些根条目一起构成一张表
16、,称为根条目表(Root Entry Table)。有了根条目表,系统中每一条总线都会被描述到。P:存在位。P为0时,条目无效,来自该条目所代表总线的所有DMA传输被屏蔽。P为1时,该条目有效。CTP(Context Table Point,上下文表指针):指向上下文条目表。(2)上下文条目上下文条目上下文条目用于描述某个具体的PCI设备,这里的PCI设备是指逻辑设备(BDF中function字段)。一条PCI总线上最多有256个设备,故有256个上下文条目,它们一起组成上下文条目表(Context Entry Table)通过上下文条目表,可描述某条PCI总线上的所有设备。P:存在位。为0时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 虚拟化实现技术架构2ppt课件 虚拟 实现 技术 架构 ppt 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内