1.1 虚拟化技术简介
1.1.1 虚拟化的基本概念
虚拟化作为一系列先进的技术和产品,在信息科学领域掀起了又一轮新的技术浪潮。那么,什么是虚拟化?虚拟化的目的是什么?
“虚”和“实”是相对而言的,在人们认知中,“实”通常是“实实在在”看得见摸得着的事物;在计算机领域范畴内,服务器、CPU、路由器等硬件产品是“实”的,部分可视化的软件等是“实”的。但是,如果使用软件方式和其他“虚”技术手段替代和模拟服务器、硬盘、CPU等使之从效果上得到的像是真实存在的事物,就是虚拟化。
虚拟化(Virtualization)是把物理资源转变为逻辑上可以管理的资源,以打破物理结构之间的壁垒;虚拟化是将各种各样的资源通过逻辑抽象、隔离、再分配、管理的一个过程。通常,对虚拟化的理解有广义与狭义两种:广义的虚拟化意味着将不存在的事物或现象“虚拟”成为存在的事物或现象的方法,计算机科学中的虚拟化包括平台虚拟化、应用程序虚拟化、存储虚拟化、网络虚拟化、设备虚拟化等。狭义的虚拟化专指在计算机上模拟运行多个操作系统平台。
一直以来,对于虚拟化并没有统一的标准定义,但大多数定义都包含这样几个特征:
(1)虚拟化的对象是资源(包括CPU、内存、存储、网络等)。
(2)虚拟化得到的资源有着统一的逻辑表示,而且这种逻辑表示能够提供给用户与被虚拟的物理资源大部分相同或完全相同的功能。
(3)经过一系列的虚拟化过程,使得资源不受物理资源限制约束,由此可以带给人们与传统IT相比更多的优势,包括资源整合、提高资源利用率、动态IT等。
如果从计算机的不同层次入手,给虚拟化做出一个定义,可以首先看一下计算机的服务层级结构:硬件资源层、操作系统层、框架库层、应用程序层和服务层,如图1-1所示。
图1-1 计算机的服务层级
事实上,这些不同的层级之间与当前的架构是紧紧依赖的。如果没有应用程序,服务就无法提供给用户;没有框架库,软件就无法运行;没有操作系统,就无法安装各式各样的应用程序和框架库;没有硬件资源,当然就什么都没有了。为了避免层次之间的紧密依赖性,在1960年,就有人引入虚拟化的概念,做法很简单,就是将上一层对下一层的依赖撤销;换句话说,就是将本层的依赖从底层中抽离出来,因此定义“虚拟化”的正规说法,可以为“虚拟化,就是不断抽离依赖的过程”。
“虚拟”从字面上看就是“非真实”的,用更通俗的语言表达就是“本来没有这个东西,但要假装让你觉得有,以达到我们使用的目的”。这也是当前虚拟化的实践原则。