VMware Workstation的问世

由第一章我们知道VMware的出现的背景是当时的基础架构利用率低物理基础架构成本日益攀升,IT 管理成本不断攀升,故障切换和灾难保护不足,最终用户桌面的维护成本高昂这一系列生产上的问题,而这些难题的解决可以依靠虚拟化技术,既然如此,为何当时的大牛们没有发现这个症结所在呢?

事实上他们都知道,只不过因为x86架构扼杀了他们的想法。

大家可能会好奇如今这么红火的x86架构竟然阻止了科技的进一步发展,到底是为什么呢?

不要急,下面就为大家解释这个困扰了很多IT资深大牛的难题。

x86 虚拟化的困难之处与历史演进

x86 CPU 因先天设计架构的关系,非常难以做到虚拟化,原因在于x86 CPU 定位为单用户使用,当初并没有考虑到将计算资源分配给不同OS 的问题。

x86 CPU 运行区分为四个privilege level(特权等级),分别是Ring 0、1、2、3。权限最高的是Ring 0,这个等级可以直接控制硬件CPU、I/O 与存储器。只有OS 系统内核与drivers 可以存在于Ring 0,直接与硬件进行沟通。一般应用程序都放在Ring3 等级,至于Ring 1 和2 则很少被使用。对于应用程序与OS 发出的命令要求,CPU一律采取Direct Execution(图1 左)。

如果要进行虚拟化,Ring 0 这一层就必须交给VMM(Virtual Machine Monitor,Hypervisor 的一部分)来掌控,进行硬件资源的分配处理。

问题来了,由于OS 一定要在Ring 0 进行访问,直接控制硬件,而现在Ring 0 的部分已经交给VMM,操作系统则被调降到Ring 1,但是操作系统的某些关键命令必须要在Ring 0 这个层级才能作用,否则操作系统将会产生警告、终止掉应用程序甚至导致系统崩溃。

而这个看似无法实现的任务,在1999 年被VMware 克服。

VMware 采用了一种叫做Binary Translation 的技术来实现,通过VMM 来预先拦截这些OS 当中原本不能被虚拟化的命令(nonvirtualizable instructions),将其进行二进制转译的替换操作,使操作系统认为自己可以直接掌控硬件,并不知道实际上已经被虚拟化成为虚拟机了(图1 右)。

而应用程序一般性的命令则还是直接向硬件请求(图1 右,虚线部分),维持良好的性能。

133848867.jpg

                                         (图1)

VMware 采用了一种叫做Binary Translation (二进制转译)的技术来实现,通过VMM 来预先拦截这些OS 当中原本不能被虚拟化的命令(nonvirtualizable instructions),将其进行二进制转译的替换操作,使操作系统认为自己可以直接掌控硬件,并不知道实际上已经被虚拟化成为虚拟机了(图1 右)。

而应用程序一般性的命令则还是直接向硬件请求(图1 右,虚线部分),维持良好的性能。

这就是所谓的Full Virtualization,也就是大家常听到的“全虚拟化”。(如果大家对半虚拟化感兴趣的话文章后面有一个txt文本供查看)

全虚拟化的好处是OS 不必做任何修改,直接安装即可使用。而且所支持的OS种类也最多,所以VMware 虚拟化是支持操作系统种类最广泛的厂商。


在他们解决这个难题后第一时间发布了他们的第一个产品—VMware Workstation

X86平台上的第一个虚拟机产品:VMware Workstation

1999年VMware Workstation一上市就引起了轰动,许多人看到这款产品都震惊了(如图2所示),使得当时VMware直接成为虚拟机的代名词。然而由于当时Windows系统的相对不稳定性,蓝屏现象时时发生,让VMware的工程师们把目光投向了相对较稳定的Linux系统,因此在VMware Workstation成功推出不久之后,也出现了Linux版本的产品,让Linux下的用户也可以同时运行Windows或其他的Linux套件。

115131539.jpg

                                         (图2)

VMware GSX

Linux下的虚拟机产品

2001年VMware GSX(图3)的出现解决了虚拟机在Windows上运行不稳定这一问题,同时还赋予在Linux下其他的一些特性。

在Linux下,VMware较不需要担心病毒或黑客的攻击,而操作系统本身宕机带来的危险性也相对较小。因此在2000年初期,Linux成为VMware产品充分发挥的最好舞台。而VMware也在2000年的初期在Linux下推出了VMware GSX Server产品,这也是后来推出VMware Server版的基础。当然在GSX Server上最大的特色,就是使用了Client/Server架构的管理界面(图4),更可以使用浏览器来连入GSX Server来管理。

115216478.jpg

                                          (图3)

122616111.jpg

                                            (图4)

在VMware征战于Windows和Linux时,一个问题出现了,为什么我们非得需要在Host OS(宿主操作系统)下工作,我们能不能直接对物理硬件资源进行虚拟化,这样不是更能充分利用物理资源么?带着这个疑问他们开始了新的征程,不久,一个划时代的产品出现了...

VMware ESX

真正的原生架构(Bare-metal)出现:VMware ESX Server

一劳永逸地解决寄居在其他操作系统上的问题是VMware工程师的梦想。而VMware ESX Server的出现则圆了他们的梦想(如图5所示)。ESX以Redhat为基础,插入了自己的硬件核心(源自于Dr. Mendel Rosenblum开发的SimOS),成为一个真正原生架构的虚拟机,而ESX的出现,正式宣告了VMware踏入企业界的领域。

115238197.jpg

                                             (图5)    


VMware Virtual Center

   技惊四座的vCenter

   2003年VMware推出了VMware Virtual Center,它提供了一个可伸缩、可扩展的平台,为 虚拟化管理奠定了基础。

vCenter包括最初的vMotion(虚拟机动态实时迁移功能,可将正在运行的虚拟机从一台物理服务器移动至另一台物理服务器,而不影响最终用户)和Virtual SMP(允许一个虚拟机同时使用多达4个物理处理器)技术,使得VMware的软件在高可用和性能方面建立了优势,得以进入关键应用领域,并靠其自身实力确立了其行业领袖地位。2004年VMware推出了64位虚拟化支持版本,同一年,VMware被EMC收购。

115612340.jpg

                                             (图6)

图6是实际生产中多台ESX整合的集群在vCenter管理下的应用场景。

在将多台ESX Server整合在一起成为一个集群,再加上vCenter的管理功能,虚拟化的作用被真正发挥出来。vMotion,HA,FT...种种被今天衡量业务稳定性的指标在它身上表现出来。

慢慢地,世界沸腾了。

此刻VMware微微一笑:好戏还在后头呢。

To be continued...