求虚拟技术的发展历史

自20世纪60年代以来,美国计算机学术界开始了虚拟技术的萌芽。1959年,Christopher Strachey发表了一篇题为《大型快速计算机中的时间共享》的学术报告,他在报告中提出了虚拟化的基本概念。这篇文章也被认为是最早讨论虚拟化技术的文章。

如今,虚拟化技术在x86服务器上的快速普及引发了虚拟化技术的热潮,但虚拟化技术最初只应用于大型计算机。大型机上的虚拟分区技术可以追溯到六七十年代。早在20世纪60年代,IBM就发明了一种操作系统虚拟机技术,允许用户在一台主机上运行多个操作系统,让用户尽可能充分利用昂贵的大型机资源。

IBM 7044计算机是第一台使用虚拟化技术的计算机。继IBM之后,型号为67的System/360主机也于20世纪60年代开发出来。67型主机通过虚拟机监视器虚拟化所有硬件接口。1965年IBM公司的“M44/44X”计算机项目定义了虚拟内存的管理机制,用户程序可以在虚拟内存中运行。对于用户来说,这些虚拟内存就像“虚拟机”,为多个用户的程序提供一个独立的计算环境。

IBM提出的虚拟机技术使许多新产品涌现出来,如IBM360/40、IBM360/67和VM/370。这些机器当时都有虚拟机功能,通过一种叫做VMM (Virtual Machine Monitor,虚拟机监视器)的技术,在物理硬件上生成了许多可以运行独立操作系统软件的虚拟机实例。

由于虚拟化技术在商业应用中的优势,RISC服务器和小型机成为虚拟化技术的第二代受益者。1999年,IBM在AS/400上提出了“逻辑分区(LPAR)”技术和新的高可用性集群解决方案。运行在POWER hypervisor上的AS/400 LPAR使得单个服务器像12个独立服务器一样工作。2002年,IBM更进一步,其AIX5L v5.2还首次包含了IBM实现的动态逻辑分区(DLPAR)。DLPAR允许将包括处理器、内存和其他组件在内的系统资源分配到独立的分区,而无需重新启动系统。这种无中断分配资源的能力不仅使系统管理更加容易,而且由于更好地利用了资源,还有助于降低总拥有成本。

然而,尽管惠普和Sun跟随IBM在其RISC服务器上提供虚拟化技术,但虚拟化技术仍然没有受到公众的重视,因为仍然有少数用户实际使用大型机和小型机,并且产品和技术不兼容。现在,虚拟化技术的发展让x86架构受益匪浅。

之前x86架构上的虚拟化技术进展缓慢,主要是因为x86架构本身不适合虚拟化。不过这个障碍已经被Intel和AMD修改了,x86处理器的指令集已经解决了。还有一个原因是x86处理器性能不足,这个原因已经解决了,因为x86处理器性能提升很快。由于x86架构的广泛流行,x86架构上的虚拟化技术也受到了更多的关注。

随着虚拟化技术在x86平台上的实现,虚拟化应用的广阔前景第一次展现在人们面前,因为x86平台可以提供廉价、高性能、高可靠的服务器。更重要的是,一些用户已经开始配置虚拟化的生产环境,他们需要获得新的管理工具,以便随着虚拟化技术的发展获得更多的利益。

但是,相对于已经有多年历史的UNIX服务器和大型机上的虚拟化技术,x86服务器上的虚拟化还处于早期阶段——根据英特尔的蓝图,在处理器上集成硬件辅助虚拟化指令只是IA平台上的第一步,第二步要虚拟化I/O,直到整个IA平台最终虚拟化。也就是说,在目前的x86平台上,只能在处理器层面实现虚拟化,I/O等方面的虚拟化还需要进一步发展。而且x86架构上的虚拟化技术并不能完美实现虚拟分区之间的动态迁移,这在UNIX平台和大型机上已经不是问题。目前x86架构上虚拟化技术的最高规划是支持8路SMP系统,可以实现单个CPU资源的配置。

从2006年开始,从处理器层面的AMD、Intel到操作系统层面的微软,从大量第三方软件厂商的出现到服务器系统厂商的高调,我们看到了一个完整的服务器虚拟化的产业生态圈逐渐成型。这也让虚拟化成为近一两年的热门话题。总的来说,随着新的计算机技术的快速发展,虚拟化的前景与一年前相比几乎完全改变了,新的虚拟化平台的前景非常乐观。