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 右,虚线部分),维持良好的性能。
(图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套件。
(图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来管理。
(图3)
(图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踏入企业界的领域。
(图5)
VMware Virtual Center
技惊四座的vCenter
2003年VMware推出了VMware Virtual Center,它提供了一个可伸缩、可扩展的平台,为 虚拟化管理奠定了基础。
vCenter包括最初的vMotion(虚拟机动态实时迁移功能,可将正在运行的虚拟机从一台物理服务器移动至另一台物理服务器,而不影响最终用户)和Virtual SMP(允许一个虚拟机同时使用多达4个物理处理器)技术,使得VMware的软件在高可用和性能方面建立了优势,得以进入关键应用领域,并靠其自身实力确立了其行业领袖地位。2004年VMware推出了64位虚拟化支持版本,同一年,VMware被EMC收购。
(图6)
图6是实际生产中多台ESX整合的集群在vCenter管理下的应用场景。
在将多台ESX Server整合在一起成为一个集群,再加上vCenter的管理功能,虚拟化的作用被真正发挥出来。vMotion,HA,FT...种种被今天衡量业务稳定性的指标在它身上表现出来。
慢慢地,世界沸腾了。
此刻VMware微微一笑:好戏还在后头呢。
To be continued...