虚拟化技术是计算机领域的一项基本技术其内涵非常的的广泛,云计算概念出现后一些从事虚拟化技术的公司迅速宣称自己的虚拟化技术将是云计算的核心技术,企业从自身利益出发也许会片面强调虚拟化的某一个方面,本文以一个全面系统架构的观点来解读虚拟化技术。我们认为“虚拟化”只是一个逻辑词,我们不应过份的将其作为一个具体的技术来对待,虚拟化只是实现了不同技术层面的逻辑转化和抽象工作,不同的逻辑转化工作应该用不同的具体技术来描述。
1.虚拟化技术的一般性描述
从云计算提出以来虚拟化技术就被提到了很高的地位,虚拟化技术被称为云计算的核心技术,但广义的来讲虚拟化技术的范围非常的宽,它不但是云计算的核心技术、同样也是计算机科学的核心技术、甚至是整个工业领域的核心技术。
我们在开汽车的时候其实就用到了机械的虚拟化技术,汽车机械运动的复杂形态被逻辑上简化为方向盘、油门、刹车、离合器的简单运动方式,这种简化使汽车机械系统的复杂性被全面屏蔽,方向盘、油门、刹车、离合器成为了人机交互设备。
不只在工业领域就是在金融领域也有虚拟化技术的身影,如复杂的股市变化规律被几个简单的指数所描述,通过指数的变化就能反应股票市场的运行情况,甚至整个经济的运行规律。
物理学也虚拟化技术用的最多的地方,原子核内部的复杂运动情况通过各种宏观物理设备如:拉曼谱、正电子谱、核磁共振等表现出来,其实我们谁也没有真正的看到原子核的形态,但我们能通过对这些物理量的分析得到原子核的结构,那么这些物理设备就实现了对原子核内部结构的虚拟化工作。
以上的描述我们可以看出,虚拟化技术是一门应用很广泛的技术,甚至可以说是一门相当基础的学科。广义的定义虚拟化技术可以这么来看:虚拟化技术就是一种逻辑简化技术,实现物理层向逻辑层的变化。从这个定义来看一个系统采用虚拟化技术后其对外表现出的运动方式是一种逻辑化的运动方式,而不是真实的物理运动方式。所以采用虚拟化技术能实现对物理层运动复杂性的屏蔽,使系统对外运行状态呈现出简单的逻辑运动形态。
2.虚拟化角度下的云计算架构
虚拟化技术是一项非常综合的技术,对于计算机科学来说大部分工作都是在做虚拟化的工作,网络的七层协议是对物理通讯的虚拟化、传统的操作系统是对单个计算机物理硬件的虚拟化、计算机高级语言是对机器语言的虚拟化、人工智能则是更高级的虚拟化技术。计算机科学的虚拟化层次我们用下图进行了简单的描述,节点的物理硬件和网络物理硬件通过多层虚拟化的逻辑简化过程形成了弹性化的计算、存储和网络带宽三者整合的虚拟资源池,也就是我们今天讲的云计算模式。
云计算的概念位与整个逻辑的最上层,是底层物理硬件经过多次虚拟化抽象而形成的一个逻辑概念。这也就说明了为什么云计算是未来的几年的技术发展方向,因为技术的发展就是一个不断抽象简化的过程,越上层的技术逻辑就是越高级的逻辑,因为这个逻辑是站在了很多巨人肩上的,这些巨人就是下层的虚拟化技术。
所以可以说云计算系统是运行在一个多层虚拟化协议栈上的高度抽象系统,云计算不是新瓶装旧酒,而是更高一级的技术发展,这个酒是面少不了老酒的调味作用。这幅图中我们看到了云计算的立足之本,炒作是推动不了技术发展的,技术的发展有技术发展的逻辑。
3.从虚拟化角度看云计算资源池包括哪些资源
多数文章认为云计算所构成的资源池只包括计算和存储,不过我们从图2中可以看到云计算的资源池除了计算和存储外还有网络带宽,由于云计算系统节点是分布化的,云中心可以不只是一个地方,云计算系统可以实现带宽资源的有效协调,从而将带宽这一资源纳入到资源池,CDN的功能将被纳入到云计算的功能体系。
当然一个开放的通用云计算系统的资源池还包括系统平台所接入的服务,云计算平台作为一个应用接入平台可以实现大量应用的接入和整合,也许服务也应该成为资源被虚拟化技术放入资源池。
4.从虚拟化角度看云计算的产业链
一提到虚拟化大家首先想到了Vmware,Xen等产品,然而大家都忽略了最大的虚拟化产品是现有的操作系统软件Window和Linux,更严格的说90%以上的IT企业都在做虚拟化,思科在做网络层的虚拟化、Intel在做硬件层的虚拟化、大量软件企业在做应用层的虚拟化。
每一个虚拟化层还可以做更为细致的划分,每一个虚拟化层就代表了云计算产业链上的一个环节。云计算肯定不是一两个虚拟化技术企业的专有技术,云计算“大象无形”的下面是一个巨大产业链和技术逻辑链的支持,只有“大象”才能“无形”。
芯片生产商、硬件生产商、网络设备生产商、云计算平台提供商、云应用平台提供商、存储技术提供商、操作系统、带宽提供商等等都必然会进入云计算的产业链,他们在不同的虚拟化逻辑层进行着不同的工作,以支撑最高层的云计算应用。
云计算标准就是要建立一个虚拟化的逻辑协议栈,使产业链上的不同企业能有效的在同一个逻辑递推关系下工作。
5.用户和云计算应用开发人员眼中的云计算
用户眼中的云计算就是通过层层虚拟化后的一个逻辑形象,就像汽车驾驶员看到的方向盘和油门一样,用户只需要生活在一个他们熟悉的逻辑环境下就行了,这和电影Matrix中的描述的一样:用户自己应该根本不知道自己是存在于一个虚拟的逻辑环境中的。用户不用知道方向盘是如何使汽车发生转向的,也不用知道油门是如使汽车加速的,这是汽车上的一套机械电子虚拟化层去完成的工作。油门的踩下逻辑上对应用速度的增加,方向盘的顺时针运动逻辑上对应于右转;而真实的物理过程却是油门的踩下对应给油量的增加,方向盘的顺时针运动对应汽车前轮的右偏。在这个比喻下用户看到的云计算系统就是一个可以按自己目前使用习惯使用的一台功能全面的逻辑计算机。
从云计算应用开发人员的眼中看来云计算就是一批工作在不同逻辑层的API,他们要做的就是调用API完成自己的应用逻辑,他们也不用关心下层的逻辑是如何运行的,工作在不同逻辑层的开发人员只负责自己这一层的应用逻辑。如应用开发人员要存储一个文件只需要调用一个write()函数就行了,文件的分割、备份、安全、网络传送由下层逻辑负责。应用开发人员本身做的也是虚拟化工作,只是他们是在向自己的上一层提供虚拟化逻辑。
6.结语
从虚拟化的角度看云计算可以使我们对云计算的本质有一个清晰的逻辑,虚拟化技术远比我们上面描述的框架复杂,云计算是技术发展的趋势但也面临着巨大的技术壁垒,需要整个产业的全面协作,他决不是一两家虚拟化企业能解决的问题,对于我国来说可能是一个战略性的产业方向,需要从国家层面来解决产业链及协议栈的问题。