Intel虚拟化技术-从VT-x到VT-d

上传人:M****1 文档编号:564569053 上传时间:2022-12-05 格式:DOC 页数:8 大小:397.50KB
返回 下载 相关 举报
Intel虚拟化技术-从VT-x到VT-d_第1页
第1页 / 共8页
Intel虚拟化技术-从VT-x到VT-d_第2页
第2页 / 共8页
Intel虚拟化技术-从VT-x到VT-d_第3页
第3页 / 共8页
Intel虚拟化技术-从VT-x到VT-d_第4页
第4页 / 共8页
Intel虚拟化技术-从VT-x到VT-d_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《Intel虚拟化技术-从VT-x到VT-d》由会员分享,可在线阅读,更多相关《Intel虚拟化技术-从VT-x到VT-d(8页珍藏版)》请在金锄头文库上搜索。

1、Intel 虚拟化技术-VT从-x 到 VT-d(来自网络,如有错误,概不负责,仅供参考)当前非常热门的Virtualization虚拟化技术的出现和应用其实已经有数十年的历史了,在早期,这个技术主要应用在服务器以及大型主机上面,现在,随着PC 性能的不断增长,Virtualization 也开始逐渐在x86 架构上流行起来。虚拟化技术将各种资源虚拟出多台主机,以提高这些资源的共享率和利用率虚拟化可以将IT 环境改造成为更加强大、更具弹性、更富有活力的架构。通过把多个操作系统整合到一台高性能服务器上,最大化利用硬件平台的所有资源,用更少的投入实现更多的应用,还可以简化IT 架构,降低管理资源的

2、难度,避免IT 架构的非必要扩张。客户虚拟机的真正硬件无关性还可以实现虚拟机的运行时迁移,可以实现真正的不间断运行,从而最大化保持业务的持续性,而不用为购买超高可用性平台而付出高昂的代价。和 Sun 上的虚拟化技术( CPU 分区)比起来, x86 上的虚拟化要落后不少的,然而确实在不断进步着,在数年前, x86 上还没有什么硬件支持,甚至连指令集都不是为虚拟化而设计,这时主要靠完全的软件来实现虚拟化,当时的代表是VMware的产品,以及尚未被Microsoft 收购 Connectix 开发的 Virtual PC ,在服务器市场上应用的主要是 VMware 的产品,包括 GSX Serve

3、r 和稍后的 ESX Server ,这些软件虚拟化产品在关键指令上都采用了二进制模拟 /翻译的方法,开销显得比较大,后期出现了Para-Virtualization部分虚拟化技术,避免了一些二进制转换,性能得到了提升,不过仍然具有隔离性的问题。今天,虚拟化技术的各方面都有了进步,虚拟化也从纯软件逐深入到处理器级虚拟化,再到平台级虚拟化乃至输入/输出级虚拟化,代表性技术就是Intel Virtualization Technologyfor Directed I/O ,简写为 Intel VT-d ,在介绍这个 Intel VT-d 之前,我们先来看看x86 硬件虚拟化的第一步:处理器辅助虚拟

4、化技术,也就是Intel Virtualization Technology,分为对应Itanium 平台的 VT-i 和对应 x86 平台的 VT-x两个版本。 AMD 公司也有对应的技术AMD-V ,用于 x86 平台。我们介绍的是x86 平台上的VT-x 技术, VT-i 技术原理上略为相近。纯软件虚拟化主要的问题是性能和隔离性。Full Virtualization 完全虚拟化技术可以提供较好的客户操作系统独立性,不过其性能不高, 在不同的应用下, 可以消耗掉主机10%30%的资源。而 OS Virtualization可以提供良好的性能,然而各个客户操作系统之间的独立性并不强。无论是

5、何种软件方法,隔离性都是由Hypervisor 软件提供的, 过多的隔离必然会导致性能的下降。1这些问题主要跟x86 设计时就没有考虑虚拟化有关。我们先来看看x86 处理器的Privilege 特权等级设计。x86 架构为了保护指令的运行,提供了指令的4 个不同Privilege 特权级别,术语称为Ring ,从 Ring 0 Ring 3 。 Ring 0 的优先级最高,Ring 3 最低。各个级别对可以运行的指令有所限制, 例如, GDT ,IDT ,LDT ,TSS 等这些指令就只能运行于Privilege 0 ,也就是 Ring0。要注意Ring/Privilege 级别和我们通常认知

6、的进程在操作系统中的优先级并不同。操作系统必须要运行一些 Privilege 0 的特权指令,因此 Ring 0 是被用于运行操作系统内核, Ring 1 和 Ring 2 是用于操作系统服务, Ring 3 则是用于应用程序。然而实际上并没有必要用完4 个不同的等级, 一般的操作系统实现都仅仅使用了两个等级,即 Ring 0 和 Ring3,如图所示:也就是说, 在一个常规的 x86 操作系统中, 系统内核必须运行于 Ring 0 ,而 VMM 软件以及其管理下的 Guest OS 却不能运行于 Ring 0 因为那样就无法对所有虚拟机进行有效的管理,就像以往的协同式多任务操作系统(如,Wi

7、ndows 3.1 )无法保证系统的稳健运行一样。在没有处理器辅助的虚拟化情况下,挑战就是采用Ring 0之外的等级来运行VMM(Virtual Machine Monitor,虚拟机监视器)或 Hypervisor ,以及 Guest OS。2现在流行的解决方法是Ring Deprivileging (暂时译为特权等级下降),并具有两种选择:客户 OS 运行于 Privilege 1 ( 0/1/3 模型),或者 Privilege 3 ( 0/3/3 模型)。无论是哪一种模型,客户OS 都无法运行于Privilege 0 ,这样,如GDT , IDT , LDT ,TSS 这些特权指令就必

8、须通过模拟的方式来运行,这会带来很明显的性能问题。特别是在负荷沉重、这些指令被大量执行的时候。同时,这些特权指令是真正的“特权”,隔离不当可以严重威胁到其他客户OS,甚至主机 OS。 Ring Deprivileging 技术使用 IA32 架构的 Segment Limit (限制分段)和 Paging(分页)来隔离 VMM 和 Guest OS,不幸的是 EM64T 的 64bit 模式并不支持 Segment Limit 模式,要想运行 64bit 操作系统,就必须使用 Paging 模式。对于虚拟化而言,使用Paging 模式的一个致命之处是它不区分Privileg 0/1/2模式,因

9、此客户机运行于Privileg 3就成为了必然(0/3/3 模型),这样 Paging 模式才可以将主机OS和客户 OS 隔离开来,然而在同一个Privileg 模式下的不同应用程序(如,不同的虚拟机)是无法受到Privileg 机构保护的, 这就是目前IA32 带来的隔离性问题, 这个问题被称为RingCompression 。IA32 不支持 VT ,就无法虚拟64-bit 客户操作系统这个问题的实际表现是:VMware 在不支持 Intel VT 的 IA32 架构 CPU 上无法虚拟64-bit客户操作系统,因为无法在客户OS 之间安全地隔离。作为一个芯片辅助(Chip-Assiste

10、d )的虚拟化技术,VT可以同时提升虚拟化效率和虚拟机的安全性,下面我们就来看看Intel VT带来了什么架构上的变迁。我们谈论的主要是IA32 上的 VT 技术,一般称之为VT-x ,而在 Itanium 平台上的VT 技术,被称之为VT-i 。VT-x 将 IA32 的 CU 操作扩展为两个forms (窗体): VMX root operation(根虚拟化操作)和VMX non-root operation(非根虚拟化操作), VMX root operation设计来供给VMM/Hypervisor使用,其行为跟传统的IA32 并无特别不同,而VMX non-root operati

11、on则是另一个处在VMM控制之下的IA32 环境。所有的forms 都能支持所有的四个Privilegeslevels,这样在 VMX non-root operation环境下运行的虚拟机就能完全地利用Privilege 0 等级。3两个世界: VMX non-root和 VMX root和一些文章认为的很不相同,VT 同时为 VMM和 Guest OS 提供了所有的Privilege 运行等级,而不是只让它们分别占据一个等级:因为VMM和 Guest OS 运行于不同的两个forms。由此, GDT 、IDT 、LDT 、TSS 等这些指令就能正常地运行于虚拟机内部了,而在以往,这些特权指

12、令需要模拟运行。而 VMM也能从模拟运行特权指令当中解放出来,这样既能解决 Ring Aliasing 问题(软件运行的实际 Ring 与设计运行的 Ring 不相同带来的问题) ,又能解决 Ring Compression 问题,从而大大地提升运行效率。 Ring Compression 问题的解决,也就解决了 64bit 客户操作系统的运行问题。为了建立这种两个虚拟化窗体的架构,VT-x设计了一个Virtual-Machine ControlStructure( VMCS ,虚拟机控制结构)的数据结构,包括了Guest-State Area(客户状态区)和 Host-State Area(

13、主机状态区) ,用来保存虚拟机以及主机的各种状态参数,并提供了VMentry和VM exit两种操作在虚拟机与VMM之间切换,用户可以通过在VMCS的VM-execution control fields里面指定在执行何种指令/发生何种事件的时候,VMX non-rootoperation 环境下的虚拟机就执行VM exit ,从而让VMM 获得控制权,因此VT-x 解决了虚拟机的隔离问题,又解决了性能问题。我们可以看到,Inter VT 的出现,可以解决了重要的虚拟处理器架构问题,让纯软件虚拟化解决方案的性能问题得以大大缓解。然而要做的事情还有很多。我们知道对于服务器而言,很重要的一个组成部分就I/O ,CPU 的计算能力提升虽然可以更快地处理数据,但是前提是数据能够顺畅的到达CPU,因此,无论是存储,还是网络,以及图形卡、内存等,I/O 能力都是企业级架构的一个重要部分。为此,人们不但在传输带宽上投资(比如从百兆以太网到千兆以太网再到万兆以太网),还在各种系统和架构上进行了大量的投入(比如吞吐量更高的RAID 系列、多层数据中心) 。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号