英特尔虚拟化技术
近年来,英特尔也频频的提及虚拟化技术,特别是2006年英特尔春季信息技术峰会上设置了专门的展区来演示基于英特尔平台的虚拟化技术。那么虚拟化可以带给我们什么?
![]() |
虚拟化可以将你的IT环境改造成为更加强大、更具弹性、更富有活力的架构。比如它可以通过把多个操作系统整合到一台高性能服务器上,最大化利用硬件平台的所有资源,让你用更少的投入实现更多的应用,还可以简化IT架构,降低管理资源的难度,避免IT架构的非必要扩张。你还可以单个服务器上复制多个运行相同应用的虚拟机,这样当所某个虚拟机上所运行的程序出现问题的时候,可以快速的用另外一个虚拟机来代替,最大化保持业务的持续性,而不用增加太多的硬件平台的投入。软件开发者可以在同一个硬件平台上的不同虚拟机上测试不同版本的软件,虚拟技术通过通过复制环境而轻易的帮助用户达成了节约成本的目的。
应该说虚拟化并不算一项新的技术,借助于多家软件厂商已经推出的成熟的软件解决方案,它已经应用到从个人电脑到数据中心多年。英特尔利用自己在硬件设计方面的技术优势,将虚拟化应用进一步“普及”到了X86服务器和工作站上,并将其称为英特尔虚拟化技术(Intel Virtualization Technology)。
![]() |
操作系统被设计用来直接访问硬件平台的资源;它们一般不会共享对于硬件的控制。虚拟化技术则是在真正的硬件平台和操作系统之间插入一个VMM(虚拟机监视器)层,它来模拟不同的硬件设备,使得每个虚拟机(VM)中的操作系统都认为自己在同硬件通讯,而实际上是VMM负责中断、资源的调配。具体的说,VMM主要的作用包括以下的4个方面:
-
模拟完整的硬件环境,这是虚拟机最主要的也是必要的功能,理想的状态下,操作系统和应用程序对于自己究竟是同真正的硬件通讯还是同虚拟机通讯并不知情
-
隔离,不同的虚拟机位于不同的分区上,一个虚拟机上的错误不会波及到另外一个虚拟机,因此隔离的作用可以提供一个较高安全水平和可用性的虚拟环境。用户可以对每个分区进行单独的控制,可以关闭或者停止某个虚拟机而不会影响平台上的其它虚拟机。
-
分配平台资源(进程、内存、I/O、存储等等)
-
封装软件栈(包括操作系统和状态信息),使得它们可以被方便的拷贝并且传输到新的虚拟机上
在IA-32架构上,所有的软件运行在不同的层上(Ring-0 到 Ring-3)。操作系统运行在Ring-0上,而独立的应用程序则一般运行在Ring-3上,这个层受到的约束较多。当在硬件平台上运行虚拟机的时候,VMM必须具有对硬件资源的控制权,因此通常的做法是让VMM运行在Ring-0,而客户操作系统运行在Ring-1或者Ring-3。但是,当今的操作系统已经被设计是运行在Ring-0上,所以VMM需要解决的是如何让这些操作系统如何其控制。
一种方式是VMM实时的监控硬件资源和客户操作系统(GUEST OS)的运行情况,确保客户操作系统不会接收到错误的指令。可想而知,这种方式会占用大量的系统资源,虚拟机的性能会受到明显的影响。另外一种方法是对于操作系统进行静态的修改,但是这需要操作系统厂商的配合,厂商即便是修改了,那么结果是运行在物理平台上的操作系统和运行在虚拟机上的操作系统有诸多的不同,向虚拟机移植的过程依然可能会产生不少问题。
英特尔虚拟化技术的核心是通过提供一定程度的硬件支持,从而消除使用纯软件解决方案的诸多问题。首先,它依然允许客户操作系统和应用程序运行在最初所设计的层上,这样这些程序就无需进行修改,然后给予VMM更高的权限。其次,通过硬件支持VMM和客户操作系统之间的过渡(Hardware-Based Transitions),这大大降低了虚拟机运行过程对于系统资源的占用。最后,提供基于硬件的内存保护,VMM、每个客户操作系统的状态系统都被保存在专用的内存空间内,从而有效的确保了不同的进程的完整性。
除此之外,英特尔虚拟化技术支持64bit软件——包括64bit操作系统和运行其上的软件。
更重要的是,英特尔正在试图利用自己在业界的影响力,协同操作系统厂商(Microsoft)、虚拟机软件开发商(Microsoft、VMware、XenSource)通过英特尔虚拟化技术将虚拟解决方案标准化,这样可以大大降低IT架构的复杂性,从而提升运行效率。
