Intel在它的硬件产品上引入了虚拟化技术,从而从硬件上提升运行虚拟化平台的服务器的处理器性能。为了深入理解Intel VT(Intel Virtualization Technology)技术,以及它在处理器、芯片和I/O设备中的不同应用,我们需要首先弄清楚在传统平台下哪些因素限制了虚拟化性能的发挥。
虚拟化技术使得IT专家们可以在一台物理服务器上运行多个不同的虚拟机。这就要求一台物理服务器可以创建和管理多个虚拟系统。而虚拟化技术的核心在于VMM(virtual machine monitor虚拟机监控),它是成功完成多个虚拟化相关任务的关键。VMM同时管理多个不同的操作系统实例,而且掌管这些实例间的切换进程,从而可以保证每个虚拟机都可以访问到底层的处理器、内存和本地磁盘等硬件资源。它通过竞争机制在不同的实例之间分配计算资源,同时要保证不同虚拟机之间的相对独立性。
而在2005年之前,虚拟化平台的性能问题主要集中于处理器中缺少对应的内部指令集,因而无法保证处理器的虚拟化任务可以高效完成。这些虚拟化任务的分配是在软件层面实现的,因此会在虚拟机体验、资源控制和效率等方面表现得非常差。简单地讲就是:虚拟机无法很好地工作,而服务器的性能受到影响。而AMD和Intel都在致力于新的处理器升级开发以满足新增加的虚拟化方面的需求。这些升级降低(甚至是消除)了子操作系统之间的资源争夺和限制,从而极大地改善了虚拟机实例的安全性和性能。
Intel VT,最初的研发代号为“Vanderpool”,最早出现在Intel基于“Nehalem”架构的CPU系统的开发计划中。而现在的这项技术已经扩展到了Intel多个产品系列中,包括Pentium 4、the Celeron、Core i5、Core i7、Core Solo、 Core 2 Duo、Core 2 Extreme、Core 2 Quad、Xeon以及其它的一些处理器。而很重要的一点是,我们需要了解并不是所有最新发布的Intel处理器(并非以上系列中的每一个型号),都可以支持VT-x:这被认为是一项针对高端PC机及服务器的新技术。关于可以支持VT-x的Intel处理器列表可以参考Intel网站中相关内容。
Intel开发了一系列不同的指令集用于提供硬件层的虚拟化技术。VT-x是公认最好的指令集,向Intel多个型号的处理器中增加了迁移、优先级和内存管理能力。相比而言,VT-d指令集改善了Intel芯片对虚拟化的支持能力,允许芯片组可以完成向特定虚拟机中分配某些特定的I/O设备资源。VT-c引入了对某些I/O设备,如网络交换机的虚拟化支持。
内存的控制和管理在基于硬件的虚拟化过程中扮演了举足轻重的作用。Intel VT-x指令集消除了基于软件的资源分配方式时需要VMM干预所带来的影响。而且在Extended Page Tables中加入了内存管理功能,而这个功能是不同的虚拟机之间完成处理器资源控制权转移时所必须的。
Intel VT的FlexPriority功能可以协助管理处理器之间的冲突。由于来自某些设备和其它一些应用程序的干扰经常会影响到处理器的性能,Intel加入了一个任务优先级仲裁寄存器用于判断任务的优先级高低。只有那些优先级高于现有运行任务的中断才能获得立即执行。而低优先级的任务则被安放到堆栈中,当获得负载程序许可后才会被执行。Intel VT FlexMigration功能允许在虚拟化平台中,可以快速、方便地在多个支持Intel VT-x指令集的物理服务器之间迁移虚拟机。其中很关键的一点我们需要注意,这项扩展的迁移功能无法适用于AMD处理器平台的。在不同处理器厂商平台之间的迁移,可能会导致严重的性能问题,甚至是系统故障的发生。
新闻热点
疑难解答
图片精选