下载此文档

x86平台三种不同的虚拟化.docx


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
x86平台三种不同的虚拟化之路
从1998年开始,VMware创造性的将虚拟化弓|入x86平台,通过二进制翻译(BT, Binary Translation)和直接执行的模式,让x86芯片可以同时运行不同的几种操作系统,并且确保 性能、稳可以直接在CPU上执行来确保虚拟化的性能。每个 VMM为每个虚拟机提供完整的硬件支持服务,包括虚拟BIOS、虚拟设备和虚拟内存管理。
执户求
接用请
直行的
图5. BT实现x86架构虚拟化
BT和直接执行技术的结合实现了全虚拟化,此时客户操作系统可以通过虚拟化层从物 理硬件上完全抽取出来,客户操作系统感知不到是否发生了虚拟化,完全不需要进行修改。 全虚拟化是迄今为止唯一不需要硬件或操作系统协助来进行敏感和特权指令虚拟化的技术, Hypervisor (管理程序)可以翻译所有的操作系统特权指令,并保存在缓存里备用,而用户 级的指令完全可以全速直接执行。
全虚拟化提供了最好的虚拟机隔离和安全性,简化了客户操作系统迁移和移植能力。 VMware ESX Server就是通过全虚拟化技术来实现的最好案例。
-半虚拟化
该文中我们将Para-Virtualization翻译为半虚拟化。Para是来自希腊语的英语前缀,意 指“和”、“在边上”、“一道”等。因此,“半虚拟化”指得是客户操作系统和hypervisor之 间的通讯如何提高性能和有效性。如图6所示,半虚拟化需要修改操作系统内核,替换掉不
能虚拟化的指令,通过超级调用(hypercall)直接和底层的虚拟化层hypervisor来通讯, hypervisor同时也提供了超级调用接口来满足其他关键内核操作,比如内存管理、中断和时
间保持。
直接执 行用户 的请求
超级调用
虚拟化层 来替换不 可虚拟的 操作系统 指令

半虚拟化和全虚拟化不同,全虚拟化不需要修改上面的操作系统,敏感的操作系统指令 直接通过BT进行处理。半虚拟化的价值在于降低了虚拟化的损耗,但是半虚拟化的性能优 势很大程度上依赖于运行的负载。由于半虚拟化不支持未修改的操作系统:例如:Windows 2000/XP),它的兼容性和可移植性差。在实际的生产环境中,半虚拟化也会导致操作系统支 持和维护的艰难,因为半虚拟化往往要深入修改操作系统内核。开源的Xen项目是半虚拟 化的代表,它可以通过修改Linux的内核来实现CPU和内存的虚拟化,通过定制的操作系 统驱动来实现I/O的虚拟化。
为了实现全虚拟化,需要构建复杂的BT技术,这往往比直接修改客户操作系统来启用 半虚拟化更艰难。VMware实际上已经在产品中使用了半虚拟化的一些技术,来构建VMware Tools和优化虚拟设备驱动。VMware tools服务为VMM Hypervisor提供了 一个后门服务, 用来同步时间、记录日志和客户操作系统关机等。Vmxnet是半虚拟化的I/O设备驱动程序, 它可以和hypervisor共享数据结构。这些半虚拟化技术的应用改善了设备的兼容能力,提高 了数据吞吐速率,降低了 CPU利用率。需要重点澄清的是:VMware tools服务和vmxnet 设备驱动并不是CPU半虚拟化解决方案,它们紧紧对客户操作系统进行了微小的、非关键 的修改,

x86平台三种不同的虚拟化 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
最近更新