分类导航  
山东华为总代理  (13292)
山东华为存储总代理  (0)
山东华为防火墙总代理  (2866)
山东华为路由器总代理  (30)
山东华为交换机总代理  (494)
山东华为服务器总代理  (0)
山东华为无线设备总代理  (9)
山东华为UPS总代理  (0)
山东华三防火墙总代理  (10)
山东华三路由器总代理  (0)
山东华三交换机总代理  (28)
山东华三无线总代理  (0)
山东H3C总代理  (3384)
山东思科总代理  (1526)
山东思科无线设备总代理  (0)
山东思科交换机总代理  (347)
山东思科路由器总代理  (0)
山东思科防火墙总代理  (0)
山东HP服务器总代理  (2138)
山东惠普存储总代理  (0)
山东IBM服务器总代理  (2911)
山东IBM存储总代理  (0)
山东网强网管软件  (7)
山东桌面管理产品  (2)
山东杀毒软件产品  (5)
山东PIUSWELL代理  (1)
山东系统集成产品  (32)
山东浪潮产品代理  (1525)
山东JUNIPER代理商  (319)
山东DELL服务器代理  (3834)
山东德盛机柜总代理  (3)
山东上网行为管理设备  (16)
山东DELL服务器总代理  (152)
山东联想服务器总代理  (3874)
山东华为智能手环总代理  (943)
山东华为平板电脑总代理  (1732)
山东华为视频会议总代理  (33)
山东oracle总代理  (0)
山东华三金牌总代理-潘雪  (0)
山东HP服务器总代理-马玲玲  (11)
山东HP服务器总代理-王翠翠  (38)
山东华为数通总代理-马玲玲  (36)
山东华为数通总代理-王翠翠  (0)
山东浪潮服务器总代理-潘雪  (1)
山东华为服务器总代理-潘雪  (273)
山东HP服务器产品总代理-房金凤  (4887)
山东IBM、联想总代理-马玲玲  (0)
山东IBM、联想总代理-王翠翠  (181)
山东DELL服务器总代理-房金凤  (3045)
山东华为安全产品代理-房金凤  (2916)
山东VMware代理  (33)
山东IBM存储总代理  (0)
山东华为光伏产品总代理  (7)
海康威视产品  (18)
大华产品  (24)
山东虚拟化技术挑战面临的挑战
简单描述
相关参数
详细介绍
虚拟化挑战

确保 VMM 控制所有的系统资源

  x86 处理器有 4 个特权级别,Ring 0 ~ Ring 3,只有运行在 Ring 0 ~ 2 级时,处理器才可以访问特权资源或执行特权指令;运行在 Ring 0 级时,处理器可以访问所有的特权状态。x86 平台上的操作系统一般只使用 Ring 0 和 Ring 3 这两个级别,操作系统运行在 Ring 0 级,用户进程运行在 Ring 3 级。为了满足上面的第一个充分条件-资源控制,VMM 自己必须运行在 Ring 0 级,同时为了避免 Guest OS 控制系统资源,Guest OS 不得不降低自身的运行级别,运行在 Ring 1 或 Ring 3 级(Ring 2 不使用)。

特权级压缩

  (Ring Compression)。
  VMM 使用分页或段限制的方式保护物理内存的访问,但是 64 位模式下段限制不起作用,而分页又不区分 Ring 0,1,2。为了统一和简化 VMM的设计,Guest OS 只能和 Guest 进程一样运行在 Ring 3 级。VMM 必须监视 Guest OS 对 GDT、IDT 等特权资源的设置,防止 Guest OS 运行在 Ring 0级,同时又要保护降级后的 Guest OS 不受 Guest 进程的主动攻击或无意破坏。

特权级别名

  (Ring Alias)
  
  特权级别名是指 Guest OS 在虚拟机中运行的级别并不是它所期望的。VMM 必须保证 Guest OS 不能获知正在虚拟机中运行这一事实,否则可能打破等价性条件。例如,x86 处理器的特权级别存放在 CS 代码段寄存器内,Guest OS 可以使用非特权 push 指令将 CS 寄存器压栈,然后 pop 出来检查该值。又如,Guest OS 在低特权级别时读取特权寄存器 GDT、LDT、IDT 和 TR,并不发生异常,从而可能发现这些值与自己期望的不一样。为了解决这个挑战,VMM 可以使用动态二进制翻译的技术,例如预先把 “push %%cs” 指令替换,在栈上存放一个影子 CS 寄存器值;又如,可以把读取 GDT 寄存器的操作“sgdt dest”改为“movl fake_gdt,dest”。

地址空间压缩

  (Address Space Compression)
  
  地址空间压缩是指 VMM 必须在Guest OS 的地址空间中保留一部分供其使用。例如,中断描述表寄存器(IDT Register)中存放的是中断描述表的线性地址,如果 Guest OS 运行过程中来了外部中断或触发处理器异常,必须保证运行权马上转移到 VMM 中,因此 VMM 需要将 Guest OS 的一部分线性地址空间映射成自己的中断描述表的主机物理地址。VMM 可以完全运行在 Guest OS 的地址空间中,也可以拥有独立的地址空间,后者的话,VMM 只占用 Guest OS 很少的地址空间,用于存放中断描述表和全局描述符表(GDT)等重要的特权状态。无论如何哪种情况,VMM 应该防止 Guest OS 直接读取和修改这部分地址空间。

处理 Guest OS 的缺页异常

  内存是一种非常重要的系统资源,VMM 必须全权管理,Guest OS 理解的物理地址只是客户机物理地址(Guest Physical Address),并不是最终的主机物理地址(Host Physical Address)。当 Guest OS 发生缺页异常时,VMM 需要知道缺页异常的原因,是 Guest 进程试图访问没有权限的地址,或是客户机线性地址(Guest Linear Address)尚未翻译成 Guest Physical Address,还是客户机物理地址尚未翻译成主机物理地址。一种可行的解决方法是 VMM 为 Guest OS 的每个进程的页表构造一个影子页表,维护 Guest Linear Address 到 Host Physical Address 的映射,主机 CR3 寄存器存放这个影子页表的物理内存地址。VMM 同时维护一个 Guest OS 全局的 Guest Physical Address 到 Host Physical Address 的映射表。发生缺页异常的地址总是Guest Linear Address,VMM 先去 Guest OS 中的页表检查原因,如果页表项已经建立,即对应的Guest Physical Address 存在,说明尚未建立到 Host Physical Address的映射,那么 VMM 分配一页物理内存,将影子页表和映射表更新;否则,VMM 返回到 Guest OS,由 Guest OS 自己处理该异常。

处理 Guest OS 中的系统调用

  系统调用是操作系统提供给用户的服务例程,使用非常频繁。最新的操作系统一般使用 SYSENTER/SYSEXIT 指令对来实现快速系统调用。SYSENTER 指令通过IA32_SYSENTER_CS,IA32_SYSENTER_EIP 和 IA32_SYSENTER_ESP 这 3 个 MSR(Model Specific Register)寄存器直接转到 Ring 0级;而 SYSEXIT 指令不在 Ring 0 级执行的话将触发异常。因此,如果 VMM 只能采取 Trap-And-Emulate 的方式处理这 2 条指令的话,整体性能将会受到极大损害。

转发虚拟的中断和异常

  所有的外部中断和主机处理器的异常直接由VMM 接管,VMM 构造必需的虚拟中断和异常,然后转发给 Guest OS。VMM 需要模拟硬件和操作系统对中断和异常的完整处理流程,例如 VMM 先要在 Guest OS 当前的内核栈上压入一些信息,然后找到 Guest OS 相应处理例程的地址,并跳转过去。VMM 必须对不同的 Guest OS 的内部工作流程比较清楚,这增加了 VMM 的实现难度。同时,Guest OS 可能频繁地屏蔽中断和启用中断,这两个操作访问特权寄存器 EFLAGS,必须由 VMM 模拟完成,性能因此会受到损害。Guest OS 重新启用中断时,VMM 需要及时地获知这一情况,并将积累的虚拟中断转发。

Guest OS 频繁访问特权资源

  
  Guest OS对特权资源的每次访问都会触发处理器异常,然后由 VMM 模拟执行,如果访问过于频繁,则系统整体性能将会受到极大损害。比如对中断的屏蔽和启用,cli(Clear Interrupts)指令在 Pentium 4 处理器上需要花费 60 个时钟周期(cycle)。又如,处理器本地高级可编程中断处理器(Local APIC)上有一个操作系统可修改的任务优先级寄存器(Task-Priority Register),IO-APIC 将外部中断转发到 TPR 值最低的处理器上(期望该处理器正在执行低优先级的线程),从而优化中断的处理。TPR 是一个特权寄存器,某些操作系统会频繁设置(Linux Kernel只在初始化阶段为每个处理器的 TPR 设置相同的值)。
  软件 VMM 所遇到的以上挑战从本质上来说是因为 Guest OS 无法运行在它所期望的最高特权级,传统的 Trap-And-Emulate 处理方式虽然以透明的方式基本解决上述挑战,但是带来极大的设计复杂性和性能下降。当前比较先进的虚拟化软件结合使用二进制翻译和超虚拟化的技术,核心思想是动态或静态地改变 Guest OS 对特权状态访问的操作,尽量减少产生不必要的硬件异常,同时简化 VMM 的设计。
最新评论
更多评论
发表评论
标题
内容
表情
 

山东百谷信息技术有限公司立足济南面向山东致力于倾听客户需求,提供客户所信赖和注重的创新技术与服务。鲁ICP09058378Copyright © 2009-2012|H3C CISCO | HUAWEI HP IBM DELLJUNIPER |

@历下软件园创新型企业@ @山东省政府采购中心中标供货商@山东省第十一届全运会网络安全维护技术保障单位@

@山东专业网络信息技术服务商@专业网络设备分销商@系统集成服务商@网络方案设计及咨询@服务器及数据安全建设

@山东H3C核心代理商@星级认证服务中心@山东IBM服务器区域代理商@山东思科解决方案供应商山东思科技术支持中心

@山东HP服务器核心分销商@山东华为数据通信设备核心合作伙伴@山东JUNIPER精英代理商@山东华赛银牌代理@山东DELL服务器@

@了解百谷信息@组建和谐网络@立足济南服务山东@青岛烟台威海日照潍坊东营莱芜滨州德州聊城泰安菏泽日照济宁枣庄临沂@

地址:山东济南市花园路189-2号历下软件园 电子地图:http://edizhi.edushi.com/sdbaigu   邮箱:sdbaigu@sdbaigu.com

本商店顾客个人信息将不会被泄漏给其他任何机构和个人。本商店logo和图片都已经申请保护,不经授权不得使用 
山东百谷信息技术有限公司© 20012009 All rights reserved  有任何购物问题请联系我们在线客服 电话:13608928216