您现在的位置:e-works > 智造书屋 > 书籍列表 > 虚拟智慧——VMware vSphere运维实录 > 什么是虚拟化?

第一章 企业虚拟化的目的及本质

第一节 什么是虚拟化?

1.1.2  虚拟化可以打破层级依赖的现状

    事实上,这些不同的层级之间与当前的架构是紧紧依赖的。没有软件的话,服务就无法提供给用户;没有Framework,软件就无法运行;没有操作系统的话,就无法安装各式各样的软件和Framework;没有硬件当然就什么都没有了。为了避免层次之间的紧密依赖性,在1960年代,就有人引入虚拟化的概念,做法很简单,就是将上一层对下一层的依赖撤销;换句话说,就是将本层的依赖从底层中抽离出来,因此我们定义“虚拟化”的正规说法,可以为“虚拟化,就是不断抽离依赖的过程”。

 ▲  虚拟化的操作系统就是打破和硬件的依赖性

▲  虚拟化的操作系统就是打破和硬件的依赖性

    理解 :“虚拟”从字面上看就是“假”的,意味着“本来没有这个东西,但要假装让你觉得有,以达到我们使用的目的”。事实上,这个较白话的解释,就是当前虚拟化的真正实践原则。

    1. 服务虚拟化的例子

    我们就举“虚拟主机”这个例子。通常在申请网站时,需要一个域名和对应的IP,但IP不够,因此我们可以利用Web Server中的配置,让多个域名指向一个IP。按照前面的解释,就是“让域名能脱离对IP的依赖”,而另一个解释更清楚,就是“原来没有这么多IP来一对一指向域名,我们就假装有这么多IP对到不同的域名”,因此一个IP可以对多个域名,节省IP的目的就达成了。

 ▲  虚拟主机就是服务虚拟化的最好例子

▲  虚拟主机就是服务虚拟化的最好例子

    2. 软件虚拟化的例子

    最常见的就是可携式软件(或称绿色软件,Portable Software)了。有些软件放在USB随身盘中,带到哪里都可以运行,这种软件和下层Framework的依赖被打破,不需要Framework也可以运行。

 ▲  可携式软件就是将和Framework的依赖打破

▲  可携式软件就是将和Framework的依赖打破

    3. Framework虚拟化的例子

    让Framework不再受制于操作系统,让这个Framework支持的应用软件都能运行在各式各样的操作系统之上。当前做得最好的应该就是Java Runtime。虽然在不同的操作系统上都要安装不同版本的Java,但不同的操作系统都能运行Java的Runtime算是一个较贴近的例子。

 ▲  Java的Runtime可在任何OS上运行

▲  Java的Runtime可在任何OS上运行

    4. 操作系统虚拟化的例子

    这就是我们本书的热点了!让操作系统不再依赖硬件,直接可以运行在一个统一的“硬件界面”上。本书所介绍的产品VMware vSphere就是最好的例子,vSphere提供了一个“硬件界面”,让一台服务器上能并发运行多个操作系统,让操作系统都以为“自身在一台物理机器上”。本书所提到的“虚拟化”,在没有特别给定时,都是专指操作系统虚拟化(或称平台虚拟化)。

 ▲  VMware就是标准的OS虚拟化(或称平台虚拟化)的最好实例

▲  VMware就是标准的OS虚拟化(或称平台虚拟化)的最好实例

    5. 硬件还能虚拟化?

    硬件还能虚拟化吗?当然可以。最好的例子就是存储设备的虚拟化。我们可以将多个硬件组合成一个大存储池,并且依照我们的需要将这个存储池再分割。在本书稍后会有专门的章节来介绍存储设备。

 ▲  存储设备的逻辑卷(Logical Volume)观念就是最好的虚拟化实例

▲  存储设备的逻辑卷(Logical Volume)观念就是最好的虚拟化实例