- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
知识模块0-4-虚拟化关键技术
知识模块 0-4系统虚拟化关键技术;主要内容;Workload Isolation(隔离);;O3;Platform Hardware;Platform Hardware;VMM 能够在客户端软件运行特权指令前抢先执行;Intel VT-x操作模式;指令;VM Entry and VM Exit;IA-32
Operation;虚拟机控制结构?(VMCS);II.内存虚拟化;页表虚拟化;MMU泛虚拟化与影子页表的比较;气球驱动最早来源于VMware ESX Server系统。当系统内存被过量使用或有多余时,通过客户机上的气球驱动实现内存页面的回收和再分配。
每个Domain在建立之初,Xen根据其配置文件中的定义为Domain分配固定数量的物理内存。但是,1)由于Guest OS运行的应用程序过多会导致其内存严重不足;2)由于Guest OS工作量不大而使得内存被闲置。Xen实现了气球驱动来调节各Domain之间的物理内存分布。
当Xen/VMM需要回收内存时,给ballon充气,即:让客户机中的气球驱动向Guest OS申请内存空间(气球膨胀),ballon再把分配到的物理内存给VMM,从而使得Guest OS使用的内存空间减少。
当Guest OS需要更多内存空间时,客户机中的气球驱动可以向Guest OS释放内存空间(气球缩小),从而使得Guest OS实际使用的内存空间增大。 ;内存共享---内存页面的写时复制机制
被共享的页面对于所有虚拟机都是只读的,当某一个虚拟机需要对其进行修改时,需要先复制出一份页面,然后在复制出的页面上进行修改。
为了减少扫描相同页面的开销,VMware采取先对页面计算的Hash值做比较,如果二者Hash值相同再对页面内容进行比较。
内存可写工作集(writable working sets) 的使用
应用于虚拟机迁移和克隆等场景。
在虚拟机运行过程中,有一大部分内存很少或从来不被修改,那些频繁被修改的内存即为内存可写工作集。
虚拟机内存管理中,如何获取内存可写工作集呢?如:将虚拟机中所有内存页面设置为只读,虚拟机所有对内存的写操作都会引起一个页面失效,页面失效处理程序中把对该页面的写操作通过位图等方法记录下来。
硬件辅助内存虚拟化
Intel 虚拟处理器标识(VPIDs), 防止每次VM exit和VM entry导致的TLB清空。
Intel 扩展页表EPT,将物理地址转换为机器地址,避免了页面失效带来的VM exit开销。;CPU;硬件辅助内存虚拟化- Intel 扩展页表EPT;32位线性地址 (VA: Virtual Address);扩展页表(EPT);字段名称;3. I/O虚拟化;模拟I/O设备
VMM 对 虚拟机 摸拟一个I/O设备,通过 完全模拟设备的功能,虚拟机可以使用对应 真实的驱动程序,这个方式可以提供完美的兼容性,但是显然这种模拟会影响到性能。;目前的I/O虚拟化存在的问题:
均要求虚拟机监控器VMM直接参与I/O的交互。
不仅会减缓数据传输的速度,还会由于频繁的?VMM?活动而增大处理器的负载。
Intel VT-d?:
提供了客户操作系统直接访问真实硬件的机制
极大的减少了处理器的负载;;VT-d设计;之一:DMA?重映射;新设计的IOMMU;I/O设备会产生非常多的中断请求,I/O虚拟化必须正确地分离这些请求,并路由到不同的虚拟机上。
传统设备的中断请求具有两种方式:一种是,由I/O中断控制器实现路由,另一种是,通过DMA写请求直接发送出去的MSI(message signaled interrupts,消息中断),它需要在DMA请求内嵌入目标内存地址,因此需要完全访问所有的内存地址,不能实现中断的隔离。
VT-d实现的中断重映射(interrupt-remapping)架构通过重新定义MSI的格式来解决上述问题,新的MSI仍然是一个DMA写请求的形式,不过并不嵌入目标内存地址,取而代之的是一个消息ID,通过维护一个表结构,硬件可以通过不同的消息ID辨认不同的虚拟机区域。VT-d实现的中断重映射可以支持所有的I/O源和所有的中断类型。;谢谢!
文档评论(0)