云计算虚拟化技术基础与实践:虚拟化实现技术_第1页
云计算虚拟化技术基础与实践:虚拟化实现技术_第2页
云计算虚拟化技术基础与实践:虚拟化实现技术_第3页
云计算虚拟化技术基础与实践:虚拟化实现技术_第4页
云计算虚拟化技术基础与实践:虚拟化实现技术_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云计算虚拟化技术基础与实践虚拟化实现技术目录CONTENT01.系统虚拟化架构02.处理器虚拟化实现技术03.内存虚拟化实现技术04.I/O虚拟化实现技术本章重点了解系统虚拟化架构。掌握Intel处理器虚拟化实现技术VT-x。了解AMD处理器虚拟化实现技术AMDSVM。熟悉Intel和AMD的两种内存虚拟化实现技术。熟悉IntelVT-d、IOMMU和SR-IOV的I/O虚拟化实现技术。掌握Virtio的I/O虚拟化实现技术。系统虚拟化架构01系统虚拟化架构IntelVT是Intel在CPU层面提供的硬件虚拟化技术的总称,主要提供下列技术:在处理器虚拟化方面,提供了VT-x技术;在内存虚拟化方面,提供了EPT(ExtendedPageTable,扩展页表)技术;在I/O设备虚拟化方面,提供了VT-d技术。AMDSVM是AMD在CPU层面提供的硬件虚拟化技术的总称,主要提供下列技术:在处理器虚拟化方面,提供了AMDSVM技术;在内存虚拟化方面,提供了NPT技术;在I/O设备虚拟化方面,提供了IOMMU技术。系统虚拟化架构系统虚拟化的核心思想是指用虚拟化技术将一台物理计算机系统虚拟化为一台或多台逻辑独立的计算机系统。一般来说,虚拟环境由三部分组成:硬件、虚拟化层VMM和虚拟机。使用虚拟化技术,每个虚拟机中的操作系统可以完全不同,执行环境也可以完全独立,多个操作系统可以互不影响的在一台物理机上同时运行。虚拟机所具有的三个典型特征1974年,Popek和Goldberg的定义认为:虚拟机可以看作是物理机的一种高效隔离的复制,里面蕴涵了三层含义,即同质、高效和资源受控,这也是一个虚拟机所具有的三个典型特征。同质:虚拟机的运行环境和物理机的运行环境在本质上是相同的,但是在表现上有一些差异。高效:虚拟机中运行的软件必须和直接在物理机上运行的性能接近。资源受控:VMM需要对系统资源有完全控制能力和管理权限,包括资源的分配、监控和回收。特权指令和敏感指令特权指令敏感指令特权指令系统中操作和管理关键系统资源的指令。特权指令只能够在最高特权级上正确执行,如果在非最高特权级上执行,特权指令就会引发一个异常,使得处理器陷入到最高特权级,交由系统软件来处理。敏感指令虚拟化环境里操作特权资源的指令,包括修改虚拟机的运行模式或者物理机的状态,读写敏感的寄存器或者内存。处理器虚拟化实现技术02处理器虚拟化实现技术处理器虚拟化是VMM中最重要的部分,因为访问内存或者I/O的指令本身就是敏感指令,所以内存虚拟化和I/O虚拟化都依赖于处理器虚拟化。x86体系结构中,处理器有四个运行级别,分别是Ring0、Ring1、Ring2和Ring3。x86系统结构下的处理器虚拟化1.vCPUIntelVT-x的vCPU结构vCPU的基本操作如下:1.vCPU的创建:创建vCPU实际上是创建vCPU描述符,由于vCPU描述符是一个结构体,因此创建vCPU描述符就是分配相应大小的内存。2.vCPU的运行:vCPU创建并初始化好之后,就会被调度程序调度运行,调度程序会根据一定的策略算法来选择vCPU运行。3.vCPU的退出:对vCPU退出的处理是VMM进行CPU虚拟化的核心,例如模拟各种特权指令。4.vCPU的再运行:指VMM在处理完vCPU的退出后,会负责将vCPU投入再运行。2.IntelVT-xIntelVT-x的基本思想Intel设计了VT-x,提出了VMX模式,即VMXRootOperation和VMXNon-RootOperation,虚拟机监控器运行在VMXrootoperation模式,虚拟机运行在VMXnon-rootoperation模式。1.根操作模式(VMXRootOperation):VMM运行所处的模式。以下简称根模式。2.非根操作模式(VMXNon-RootOperation):客户机运行所处的模式,以下简称非根模式。2.IntelVT-xVMX操作模式1.VMM执行VMXON指令进人到VMX操作模式,此时CPU处于VMX根操作模式,VMM软件开始执行。2.VMM执行VMLAUNCH或VMRESUME指令产生VM-Entry,客户机软件开始执行,此时CPU从根模式转换成为非根模式。3.当客户机执行特权指令,或者当客户机运行时发生了中断或异常,VM-Exit被触发而陷入到VMM,CPU自动从非根模式转换切换到根模式。VMM根据VM-Exit的原因做相应处理,然后转到步骤2继续运行客户机。4.如果VMM决定退出,则执行VMXOFF关闭VMX操作模式。3.AMDSVM此外,AMD还增加了八个新指令操作码来支持SVM,VMM可以通过指令来配置VMCB映像CPU,如VMRUN指令会从VMCB中载入处理器状态,而VMSAVE指令会把处理器状态保存到VMCB中。VMM运行在非根模式上,而客户机运行在根模式上。在非根模式上,一些敏感指令会引起“陷入”,即VM-Exit,而VMM调动某个客户机运行时,CPU会由根模式切换到非根模式,即VM-Entry。AMD中引入了一个新的结构叫做VMCB(VirtualMachineControlBlock,虚拟机控制块)以更好的支持CPU的虚拟化。在AMD的SVM中,较多内容与IntelVT-x类似。但是技术上略有不同,在SVM中也有两种模式:根模式和非根模式。内存虚拟化实现技术03内存虚拟化面临的问题特权指令敏感指令1.物理内存要被多个客户机操作系统使用,但是物理内存只有一份,物理地址0也只有一个,无法同时满足所有客户机操作系统内存从0开始的需求。2.由于使用内存分区方式,把物理内存分给多个客户机操作系统使用,虽然可以保证虚拟机的内存访问时连续的,但是内存的使用效率低。内存虚拟化的主要任务实现地址空间的虚拟化,维护宿主机物理地址和客户机物理地址之间的映射关系。截获客户机对宿主机物理地址的访问,并根据所记录的映射关系,将其转换成宿主机物理地址。内存虚拟化示意图1.IntelEPT页表项格式图EPT是一个多级页表,各级页表的表项格式相同,页表各项含义如下:ADDR:下一级页表的物理地址。如果已经是最后一级页表,那么就是GPA对应的物理地址。SP:超级页(SuperPage)所指向的页是大小超过4KB的超级页,CPU在遇到SP=l时,就会停止继续往下查询。对于最后一级页表,这一位可以供软件使用。X:可执行,X=1表示该页是可执行的。R:可读,R=1表示该页是可读的。W:可写,W=1表示该页是可写的。1.IntelEPTEPT原理图2.AMDNPTNPT原理图在NPT中,宿主机和客户机都有自己的CR3寄存器,分别是nCR3(nestedCR3)和gCR3(guestCR3)。gPT负责客户机虚拟地址到客户机物理地址的映射。nPT负责客户机物理地址到宿主机物理地址的映射。客户机页表和嵌套页表分别是由客户机和宿主机创建。其中,客户机页表存在客户机物理内存里,由gCR3索引。而嵌套页表存在宿主机物理内存中,由nCR3索引。当使用客户机虚拟地址时,会自动调用两层页表(gPT和nPT)将客户机虚拟地址转换成宿主机物理地址。I/O虚拟化实现技术041.IntelVT-d使用VT-d后设备访问内存的架构IntelVT-d技术通过在北桥(MCH)引入DMA重映射硬件,以提供设备重映射和设备直接分配的功能。在启用VT-d的平台上,设备所有的DMA传输都会被DMA重映射硬件截获。根据设备对应的I/O页表,硬件可以对DMA中的地址进行转换,使设备只能访问到规定的内存。1.IntelVT-dVT-d还提供了两种数据结构来描述PCI架构,分别是根条目(RootEntry)和上下文条目(ContentEntry)根条目的结构上下文条目的结构1.IntelVT-d根条目表和上下文条目表构成的两级结构1.IntelVT-dDMA重映射的4KB页面地址转换过程2.IOMMUIOMMU技术示意图输入/输出内存管理单元IOMMU(Input/OutputMemoryManagementUnit)是一个内存管理单元,管理对系统内存的设备访问。它位于外围设备和主机之间,可以把DMAI/O总线连接到主内存上,将来自设备请求的地址转换为系统内存地址,并检查每个接入的适当权限。2.IOMMUIOMMU提供DMA地址转换,对设备读取和写入的权限检查的功能。IOMMU将页转译缓存在一个TLB(TranslationLookasideBuffer)中,当需要进入TLB时你需要键入保护域和设备请求地址。IOMMU提供的转译和保护双重功能提供了一种完全从用户代码、无需内核模式驱动程序操作设备的方式。IOMMU允许VMM直接将真实设备分配到客户机操作系统,让I/O虚拟化更有效。IOMMU避免设备模拟,取消转译层,允许本机驱动程序直接配合设备,极大的降低了I/O设备虚拟化的开销。3.SR-IOV具有SR-IOV功能的I/O设备SR-IOV是PCI-SIG组织公布的一个新规范,旨在消除VMM对虚拟化I/O操作的干预,以提高数据传输的性能。它继承了PassthroughI/O技术,绕过虚拟机监视器直接发送和接收I/O数据,同时还利用IOMMU减少内存保护和内存地址转换的开销。一个具有SR-IOV功能的I/O设备是基于PCIe规范的,具有一个或多个物理设备(PF,PhysicalFunction),PF是标准的PCIe设备,具有唯一的申请标识RID。而每一个PF可以用来管理并创建一个或多个虚拟设备(VF,VirtualFunction),VF是“轻量级”的PCIe设备。3.SR-IOVSR-IOV实现模型PF驱动,运行在宿主机上,可以直接访问PF的所有资源。PF驱动主要用来创建、配置和管理虚拟设备,即VF。VF驱动是运行在客户机上的普通设备驱动,VF驱动只有操作相应VF的权限。SR-IOV管理器运行在宿主机,用于管理PCIe拓扑的控制点以及每一个VF的配置空间。3.SR-IOV具有SR-IOV功能的设备具有以下优点:提高系统性能。采用Passthrough技术,将设备分配给指定的虚拟机,可以达到基于本机的性能。利用IOMMU技术,改善了中断重映射技术,减少客户及从硬件中断到虚拟中断的处理延迟。安全性优势。通过硬件辅助,数据安全性得到加强。可扩展性优势。系统管理员可以利用单个高宽带的I/O设备代替多个低带宽的设备达到带宽的要求。利用VF将带宽进行隔离,使得单个物理设备好像是隔离的多物理设备。此外,这还可以为其他类型的设备节省插槽。4.VirtioVirtio的基本架构前端驱动程序(front-enddriver),即virtio-blk、virtio-net、virtio-pci、virtio-ballon和virtio-console,是在客户机操作系统中实现的。后端驱动程序(back-enddriver),是在Hypervisor中实现的。另外,Virtio还定义了两个层来支持客户机操作系统与Hypervisor之间的通信。Virtio是虚拟队列接口,它在概念上将前端驱动程序附加到后端驱动程序。数据传输时使用了环形缓冲区,用于保存前端驱动和后端处理程序的执行信息4.Virtio以CentOS7为例,相关的内核模块包括virtio.ko、virtio_ring.ko、virtio_pci.ko、virtio_balloon.ko、virtio_net.ko、virtio_blk.ko等。以CentOS7的内核配置文件为例,其中与Virtio相关的内核模块如下:[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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论