虚拟化技术漫谈(3)

来源:developerWorks 中国 作者:林 昊翔
  

  • 优化翻译后援缓冲器(TLB)的性能。

    每次 VM entry 和 VM exit 发生时,由于需要重新加载 CR3 寄存器,因此 TLB(Translation Lookaside Buffer)被完全清空。虚拟化系统中操作模式的转换发生频率相当高,因此系统的整体性能受到明显损害。一种可行的方案是为 VMM 和每个虚拟机分配一个全局唯一 ID,TLB 的每一项附加该 ID 信息来索引线性地址的翻译。

  • 提供内存管理单元(MMU)虚拟化的硬件支持。

    即使使用 Intel-VT 技术,VMM 还是得用老办法来处理 Guest OS 中发生的缺页异常以及Guest OS 的客户机物理地址到主机物理地址的翻译,本质原因是 VMM 完全控制主机物理内存,因此 Guest OS 中的线性地址的翻译同时牵涉到 VMM 和 Guest OS 的地址空间,而硬件只能看到其中的一个。Intel 和 AMD 提出了各自的解决方案,分别叫做 EPT(Extended Page Table)和 Nested Paging。这两种技术的基本思想是,无论何时遇到客户机物理地址,硬件自动搜索 VMM 提供的关于该 Guest OS 的一个页表,翻译成主机物理地址,或产生缺页异常来触发 VM exit。

  • 支持高效的 I/O 虚拟化。

    I/O 虚拟化需要考虑性能、可用性、可扩展性、可靠性和成本等多种因素。最简单的方式是 VMM为虚拟机模拟一个常见的 I/O 设备,该设备的功能由 VMM 用软件或复用主机 I/O 设备的方法实现。例如 Virtual PC 虚拟机提供的是一种比较古老的 S3 Trio64显卡。这种方式提高了兼容性,并充分利用 Guest OS 自带的设备驱动程序,但是虚拟的 I/O 设备功能有限且性能低下。为了提高性能,VMM 可以直接将主机 I/O 设备分配给虚拟机,这会带来两个主要挑战:1. 如果多个虚拟机可以复用同一个设备,VMM 必须保证它们对设备的访问不会互相干扰。2. 如果 Guest OS 使用 DMA 的方式访问 I/O 设备,由于 Guest OS 给出的地址并不是主机物理地址,VMM 必须保证在启动 DMA 操作前将该地址正确转换。Intel 和 AMD 分别提出了各自的解决方案,分别称为 Direct I/O(VT-d)和 IOMMU,希望用硬件的手段解决这些问题,降低 VMM 实现的难度。





  • 结束语

    本文针对 x86 平台,介绍虚拟化技术的基本知识,希望对读者的工作和学习有所裨益,更多详细信息请参阅参考资料一节。(责任编辑:A6)


    时间:2009-08-18 16:41 来源:developerWorks 中国 作者:林 昊翔 原文链接

    好文,顶一下
    (21)
    95.5%
    文章真差,踩一下
    (1)
    4.5%
    ------分隔线----------------------------


    把开源带在你的身边-精美linux小纪念品
    无觅相关文章插件,快速提升流量