【IT168 专稿】关于数据中心虚拟化的巨大潜力已经被服务器和存储等厂商大肆宣扬了很长一段时间。现在,来自Intel和AMD的新一代x86处理器也已经为虚拟化铺平了道路。那么,一个虚拟系统的世界是不是马上就要真正在我们的现实IT生活中展现了呢?
你是不是觉得,你不能让一个守旧的人接受新鲜事物,就如同不能让老树发新芽一样?那你就想想x86微处理器吧。尽管这种架构中核心的指令集几乎20年都没有什么变化了,但AMD和Intel两个伟大的公司却一直在往其中添加重大的技术改进,使其继续保持着新鲜和活力,这些激动人心的改进包括增强内存寻址能力的64位扩展、处理图形的更多指令以及浮点计算的增强等等。
更为重要的是,之所以有今天这么大范围的企业组织开始考虑服务器虚拟化,其中一个很最重要的因素就是AMD和Intel引入了芯片级的虚拟化辅助技术,这将最终使得虚拟化从市场宣传走入现实应用。
到今天,x86已经面临了最大的挑战。从体系结构上来说,该平台本身并不是为支持多操作系统同时运行而设计的,这也就意味着虚拟化厂商被迫去克服硬件和软件两方面的限制,来分配和管理处理器、内存以及I/O资源。VMware已经在这个领域占据了优势,并不仅仅因为它是第一个在此领域提供虚拟化的厂商,而且因为它能够克服这些硬件问题,提供了一个可以使用的管理环境来处理大型虚拟化所固有的一些问题。
目前,新一代AMD和Intel处理器中的虚拟化功能正在为有效的、基于hypervisor管理程序的x86系统虚拟化铺平道路,随之重点也转向了如何使得处理器更加可靠。尽管我们看到VMware、Microsoft以及开源Xen是基于不同的hypervisor方法,但在这些hypervisor技术之间选择的重要性,远远不如应对大型虚拟化所提出的管理挑战更为关键。最终,真正的市场赢家必然是那些可以为把我们的物理环境转变为更多产的虚拟环境而提供很好功能的厂商。但是,为实现这个目标,首先代价都需要来自处理器厂商的帮助。
老问题,新解决
在目前我们所看到的两种主要服务器虚拟化选择中,基于hypervisor的服务器虚拟化比操作系统分区的方法提出了更多的问题。使用操作系统分区的方法,主机操作系统提供了对所有资源的访问,消除了hypervisor中固有的很多问题,但用户只限于主机操作系统;基于Hypervisor的虚拟化提供了裸机支持多操作系统的灵活性,但引出了很多的技术挑战,需要大量的软件来处理与分配CPU、内存以及I/O资源有关的工作。
幸运的是,AMD和Intel已经针对这些棘手的问题拿出了新的硬件应对解决方案。
在保护模式下,x86处理器一共有4个不同优先级,术语称为Ring,从Ring 0~Ring3。Ring 0的优先级最高,Ring 3最低。一般情况下,Ring 0是被用于运行操作系统内核,Ring 1和Ring 2是用于操作系统服务,Ring 3则是用于应用程序。
也就是说,在一个常规的x86操作环境中,操作系统是运行在受保护的ring 0。在没有处理器辅助的虚拟化情况下,取而代之的是必须要ring 0来运行VMM (Virtual Machine Monitor,虚拟机监视器)或hypervisor,来为VM以及它们的VOS(Virtual OS,虚拟操作系统)管理硬件资源。那么,CPU虚拟化的挑战就是要寻找一种方法使得操作系统正常运行在ring 0之外的一个地方。
为了解决这个问题,芯片辅助(chip-assisted)的虚拟化能够让一个新的、有超级特权的和受保护的ring 1来运行VMM。这个新的位置使得VOS能够平静地共存于ring 0,通信自动改变到ring 1,而这些VOS并不知道它们与同一系统中的其他操作系统共享物理资源。
这项主要的进步消除了操作系统的ring转换问题,也减少了虚拟化的费用,它可以为各种操作系统的虚拟化提供支持,而且并不需要对内核或运行时间做任何改变。尽管AMD和Intel选择了略微不同的方法来达到这个目标,不过令我们高兴的是,即使两公司的技术不能完全互换,我们也不担心,因为很多虚拟化提供商已经致力于这两种技术积极展开工作。
| 第1页: 分析:虚拟化的“芯”动力(上) | 第2页: 分析:虚拟化的“芯”动力(上) |
| 第3页: 分析:虚拟化的“芯”动力(上) |