




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
知识模块0 4系统虚拟化关键技术 沈晴霓教授北京大学软件与微电子学院 2020 3 21 1 主要内容 系统虚拟化主要作用CPU虚拟化内存虚拟化I O虚拟化 2020 3 21 2 WorkloadIsolation 隔离 系统虚拟化的主要用途 WorkloadConsolidation 合并 WorkloadMigration 迁移 WorkloadEmbedding 个性化 HW App2 App1 OS HW1 HW2 App2 App1 OS1 OS2 VMM HW App2 App1 OS1 OS2 VMM HW1 App HW2 VMM OS VMM HW1 App HW2 VMM OS VMM HW App App OS1 OS2 VMM HW App1 App2 OS OS 2020 3 21 3 CPU VCPU取代进程 成为处理器的抽象 VCPUn VCPU2 VCPU1 必须解决两个问题 虚拟CPU的正确运行虚拟CPU的调度 保证虚拟机的指令正确执行 各虚拟机之间不互相影响 现有实现技术 模拟执行和监控执行 本质 为每个虚拟机提供一个或多个虚拟CPU VCPU 多个VCPU复用物理CPUs 任何时刻一个物理CPU只能被一个VCPU使用 I CPU虚拟化 模拟执行是指由VMM模拟所有指令的执行效果 包括解释执行和二进制代码翻译执行 效率较低 监控执行是指虚拟机的绝大多数指令都在物理主机上直接执行 少量可能影响虚拟机运行或影响其虚拟机状态的指令 敏感指令 必须由VMM监控并模拟其执行效果 执行效率较高 取决于模拟执行指令数量 复杂度和算法性能 由VMM决定当前哪一个VCPU实际在物理CPU上运行 保证VCPU的性能 调度的公平性 2020 3 21 4 O3 O2 O1 U3 U2 U1 B1 运行的VCPU 被阻塞的VCPU credits 0 active OVER UNDER BOOST 基于额度的调度算法 weight cap credit 初始化时credit weight 运行一次后credit credit 100 30 n 是 否 是 否 被唤醒时credit为0 被唤醒时还有credit 如果没有Boost状态的虚拟机 under队列为空时 over队列中的所有vcpu更新额度 移入under队列credit credit weight 5 2020 3 21 PlatformHardware VM1 VMMonitor VM0 GuestOS0 GuestOS1 在VMM中处理GuestOS运行敏感指令时所产生的错误 对于当前IA架构 CPU的虚拟化需要很复杂的软件设计 软件解决 客户端降权 IA架构虚拟化漏洞 环级重命名非陷入指令越界错误 异常 中断虚拟化CPU状态上下文切换地址空间压缩复杂软件技巧源代码修改二进制代码修改 App App App App App App 在0环以上运行GuestOS时 敏感指令运行会出错 2020 3 21 6 PlatformHardware VM1 VMMonitor VM0 GuestOS0 App App App GuestOS1 App App App 操作系统和应用程序不应该知道他们正在和别人共享CPU资源 VMM应该能够自我保护不受其他客户端软件威胁 CPU虚拟化挑战 VMM应该能使虚拟机内软件栈互相独立 VMM应该给客户机软件提供虚拟的硬件平台接口 2020 3 21 7 VMM能够在客户端软件运行特权指令前抢先执行 IntelVT x移除了虚拟化漏洞和复杂软件的设计 硬件辅助CPU虚拟化 基本思想 引入新的指令和处理器运行模式 使得虚拟机监控器和客户操作系统运行在不同的模式下 由硬件支持模式之间的切换 提高了虚拟化的性能 也极大地方便了VMM的设计和开发 2020 3 21 8 IntelVT x操作模式 VMXroot模式 拥有全部权限 用于VMM的运行VMXnon root模式 只拥有部分权限 用于运行客户机软件GUESTOS依靠环级的设置来减少客户及软件的权限通过环重命名和压缩来完成 2020 3 21 9 VMX指令集 2020 3 21 10 VMEntryandVMExit VMEntry从VMM进入GuestOS从VMCS中获得VM状态进入非根模式VMLAUNCH指令 启动一个VMVMRESUME指令 从VMM返回到VM继续运行 VMExit从GuestOS进入VMM从VMCS中保存VM状态 并进入VMX根模式从VMCS中导入VMM状态 2020 3 21 11 IA 32Operation VMXRootOperation VMXNon rootOperation VMXON VMLAUNCH VMRESUME VMExit 2020 3 21 12 虚拟机控制结构 VMCS 针对VMX操作 Intel定义了虚拟机控制结构 它只能够被VMCLEAR VMPTRLD VMREAD 和VMWRITE操作 GUEST STATE域 虚拟机从根操作模式进入非根操作模式时 处理器所处的状态 HOST STATE域 虚拟机从非根操作模式退出到根操作模式时 处理器所处的状态 VM执行控制域 虚拟机在非根操作模式运行的时候 控制处理器非根操作模式退出到根操作模式 比如某些敏感指令 异常和中断是否产生VM Exit操作 VM退出控制域 虚拟机从非根操作模式下退出时 需要保存的信息 VM进入控制域 虚拟机从根操作模式进入非根操作模式时 需要读取的信息 VM退出信息域 虚拟机从非根操作模式退出到根操作模式时 将退出的原因保存到该域中 2020 3 21 13 II 内存虚拟化 机器地址 真实硬件的机器地址 HPA hostphysicaladdress 物理地址 经过VMM抽象的虚拟机所见伪物理地址 GPA guestphysicaladdress 虚拟地址 GuestOS提供给应用程序使用的线性地址 GVA guestvirtualaddress 虚拟地址 物理地址 机器地址 g f GuestOS VMM 虚拟机1 虚拟机2 进程A 进程B 虚拟地址空间 物理地址空间 机器地址空间 2020 3 21 14 页表虚拟化 MMU MemoryManagementUnit 操作系统通过配置多级页表建立虚拟地址到物理地址的映射关系 并将页表的指针载入处理器的内存管理单元MMU 由硬件在必要时通过查询页表以完成虚拟地址到物理地址的映射 在虚拟化环境下 MMU只能完成g映射 如何让VMM介入而又不会带来软件模拟映射开销 采取的实现思想 由VMM根据映射f和g生成复合的映射f g 并直接将这个映射关系交给MMU 从而利用现有的MMU机制实现虚拟地址到机器地址的高效转换 两种不同的实现方法 MMU泛虚拟化影子页表 2020 3 21 15 MMU泛虚拟化与影子页表的比较 MMU泛虚拟化方法 如左图 VMM将映射关系f g直接写入guestOS的页表中 并替换原来的映射g这实际上违背了 f map对于虚拟机不可见 的原则 影子页表方法 如右图 为guestOS的每个页表维护一个影子页表 并将合成后的映射关系f g写入到 影子 中 guestOS的页表内容保持不变 最后 VMM将影子页表交给MMU进行地址转换 MMU MMU GuestOS GuestOS VMM VMM HW HW f g f g g 机器页面 机器页面 泛虚拟化技术 直接将f g映射关系更新到GuestOS页表项中 例如 Xen 全虚拟化环境下 虚拟地址到机器地址的转换必须使用影子页表来实现 例如 VMWareWorkStation VMWareESXServer KVM 2020 3 21 16 气球驱动最早来源于VMwareESXServer系统 当系统内存被过量使用或有多余时 通过客户机上的气球驱动实现内存页面的回收和再分配 每个Domain在建立之初 Xen根据其配置文件中的定义为Domain分配固定数量的物理内存 但是 1 由于GuestOS运行的应用程序过多会导致其内存严重不足 2 由于GuestOS工作量不大而使得内存被闲置 Xen实现了气球驱动来调节各Domain之间的物理内存分布 当Xen VMM需要回收内存时 给ballon充气 即 让客户机中的气球驱动向GuestOS申请内存空间 气球膨胀 ballon再把分配到的物理内存给VMM 从而使得GuestOS使用的内存空间减少 当GuestOS需要更多内存空间时 客户机中的气球驱动可以向GuestOS释放内存空间 气球缩小 从而使得GuestOS实际使用的内存空间增大 按需取页与虚拟存储 两种方案 在VMM层实现内存页面的swap机制 问题 存在频繁的换页操作 在虚拟机之间使用气球驱动 BalloonDriver 的思想 如 VMWareESXServer 内存虚拟化优化机制 2020 3 21 17 内存共享 内存页面的写时复制机制被共享的页面对于所有虚拟机都是只读的 当某一个虚拟机需要对其进行修改时 需要先复制出一份页面 然后在复制出的页面上进行修改 为了减少扫描相同页面的开销 VMware采取先对页面计算的Hash值做比较 如果二者Hash值相同再对页面内容进行比较 内存可写工作集 writableworkingsets 的使用应用于虚拟机迁移和克隆等场景 在虚拟机运行过程中 有一大部分内存很少或从来不被修改 那些频繁被修改的内存即为内存可写工作集 虚拟机内存管理中 如何获取内存可写工作集呢 如 将虚拟机中所有内存页面设置为只读 虚拟机所有对内存的写操作都会引起一个页面失效 页面失效处理程序中把对该页面的写操作通过位图等方法记录下来 硬件辅助内存虚拟化Intel虚拟处理器标识 VPIDs 防止每次VMexit和VMentry导致的TLB清空 Intel扩展页表EPT 将物理地址转换为机器地址 避免了页面失效带来的VMexit开销 2020 3 21 18 分页机制 页表项缓存机制TLB TranslationLookasideBuffer 硬件辅助内存虚拟化 Intel虚拟处理器标识 VPIDs 2020 3 21 19 硬件辅助内存虚拟化 Intel扩展页表EPT 2020 3 21 20 32位线性地址 VA VirtualAddress 页目录表 页表 物理页 CR3 客户机物理地址 GPA GuestPhysicalAddress 机器内存页 EPTP 扩展页表 EPT ExtendedPageTable EPT页表是由 四级页映射表 PML4table pagemaplevel4table 页目录指针表 PDPT page directory pointertable 页目录表 PD page direetory 和页表 PT pagetable 共四级页表组成 硬件辅助内存虚拟化 Intel扩展页表EPT 2020 3 21 21 扩展页表 EPT 客户机线性地址 GVA 页目录表 页表 机器内存页 EPTP gCR3 EPTP EPTP 扩展页表 EPT 扩展页表 EPT 客户机物理地址 GPA 硬件辅助内存虚拟化 Intel扩展页表EPT GVA GPA HPA地址翻译技术 2020 3 21 22 硬件辅助内存虚拟化 Intel扩展页表EPT EPT页表的表项格式 2020 3 21 23 3 I O虚拟化 CPU的能力提升虽然可以更快地处理数据 但是其前提是 数据能够顺畅的到达CPU 因此 I O的能力提升是一个重要的部分 由于I O设备具有异构性强 内部状态不易控制等特点 I O设备的虚拟化一直是虚拟化技术的难点所在 2020 3 21 24 模拟I O设备VMM对虚拟机摸拟一个I O设备 通过完全模拟设备的功能 虚拟机可以使用对应真实的驱动程序 这个方式可以提供完美的兼容性 但是显然这种模拟会影响到性能 两种I O虚拟化方式 额外软件接口VMM软件将提供一系列直通的设备接口给虚拟机 这个方式可以提升虚拟化的性能 但兼容性有所降低 2020 3 21 25 目前的I O虚拟化存在的问题 均要求虚拟机监控器VMM直接参与I O的交互 不仅会减缓数据传输的速度 还会由于频繁的VMM活动而增大处理器的负载 IntelVT d 提供了客户操作系统直接访问真实硬件的机制极大的减少了处理器的负载 IntelVT d硬件辅助I O虚拟化技术 2020 3 21 26 基于软件的I O虚拟化 I O设备的直接分配 VT dI O设备模型的优势 这个模型几乎完全消除了在VMM中运行驱动程序的需求 2020 3 21 27 VT d设计 I O虚拟化的关键在于解决 DMA 直接内存存取 IRQ中断请求IntelVT d技术是基于NorthBridge北桥芯片的硬件辅助虚拟化技术 在北桥中内置提供DMA虚拟化和IRQ虚拟化硬件 大大地提升了I O的可靠性 灵活性与性能 2020 3 21 28 之一 DMA重映射 传统的IOMMUs I Omemorymanagementunits I O内存管理单元 通过在内存地址范围来区别设备 易实现 但难实现DMA隔离 VT d通过更新设计的IOMMU架构 实现了多个DMA保护区域 最终实现了DMA虚拟化 也叫做DMARemappingDMA重映射为设备访问内存提供硬件隔离 通过不同的I O页表 使得每个硬件设备分配到特定的域 当设备尝试访问系统内存时 DMA拦截访问 并且判断是否允许该访问 同时它还决定真实的访问位置 频繁的使用I O表数据结构 该数据结构能够被缓存 DMA重映射机制能够被每个设备
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业设计与智能制造技术融合应用
- 工业设计与制造技术的创新融合
- 工作中的心理疲劳与对策研究
- 工作中的数据分析软件使用指南
- 工业设计的美学与实 用性探讨
- 工作中的法律风险防范与应对
- 工作流程标准化与管理提升
- 工作与生活平衡的企业政策实践
- 工程塑料模架设计与优化
- 工作汇报的逻辑框架
- FFU龙骨吊顶防坠研究及应用-2023.12.11王国栋修
- 多层钢结构厂房施工方案
- 知道网课智慧《艺术与科学理论基础》测试答案
- 清拆劳务合同范本
- DL-T5366-2014发电厂汽水管道应力计算技术规程
- (高清版)JTST 273-2024 水运工程测量定额
- 《纸牌国》阅读指导
- 公路工程设计设计的质量保证措施、进度保证措施
- 【同步训练】《血液循环-体循环和肺循环》(解析版)
- 智能护理数字化驱动医护智能管理
- 小学数学《比例》大单元教学设计
评论
0/150
提交评论