郎咸平说:你想到的都是错的。
我说:你看到的都是错的。
 
呵呵,跟着名人山寨一把。
 
为什么这里写这个标题,最近和技术人员探讨中,我发现很多技术人员对虚拟化有一定的感性认识,但是对其内在逻辑还是不很清楚。所以有必要再更深入地介绍一下,尤其是前面比较系统地介绍了桌面虚拟化的相关技术,看过前面文章的朋友应该更容易理解整个虚拟化的逻辑。
 
正如博客第一篇介绍什么是虚拟化:虚拟化技术就实现不同逻辑单元的松耦合。并且从计算机组成和技术演进角度介绍了以前的虚拟化技术。这里我会从更简介直观的角度介绍什么是当前广泛被关注的虚拟化技术:
 
我们常说我的电脑,语义里面其实包含着多层意思,即电脑是包含硬件,操作系统,还有应用与配置文件。这种可用的计算环境被笼统地概括为“我的电脑”。我们可以按照下图更直观地来看待我们现在正在面对的这个“神奇家伙”:
你看到的都是错的!——虚拟化技术的真相_虚拟化
这个大家都很了解,但是对于硬件的组成我们还可以进一步拆分为:硬盘(存储);CPU与内存;显示器、键盘与鼠标等外设。大家会说了,我10年前就知道计算机有这些组成,还用你说。但是不知道大家想没有想过,一个机器是由这些部分组成得,形成一个机器,但是我们现在想要把一个机器拆开(当然是逻辑的拆开)分成:存储环境;运行环境;还有操作环境三个部分。如下图所示:
你看到的都是错的!——虚拟化技术的真相_职场_02
从上述两个维度上,横向是硬件的组成拆分,纵向是计算环境的逻辑构成,则我们获得如下的一个图:
你看到的都是错的!——虚拟化技术的真相_虚拟化_03
从这样得切分角度来看,我们可以看到 服务器虚拟化(更确切的是操作系统虚拟化)是在纵向纬度上分隔了硬件和软件;而共享存储(有些存储虚拟化的味道)是实现了存储环境和计算环境的分离;而操作虚拟化实现了计算环境与操作环境的分隔。
 
  •         1  操作系统虚拟化是实现了硬件与软件的松耦合,这样操作系统不依赖于特定的硬件,都可以运行。在存储环境与运行环境没有分开得情况下,就是典型的使用VPC,或者Workstation的状态,我们必须把虚拟机拷来拷去,这样可以用不同得机器使用
  •         2  共享存储使得存储环境与计算环境分开,这样在操作系统虚拟化得前提下,我们可以更好地实现动态的系统调配,例如 正在运行的操作系统的漂移;以及硬件故障下的高可用性(HA,类似双机热备)。因为系统的镜像都存储在一个所有运行环境都可以访问的地方。
  •        3   操作虚拟化,实现了应用与桌面的远程访问,这里面不仅仅包括的是屏幕图像的重定向,还包括鼠标,键盘,打印机,扫描仪,usb设备等各种外设的重定向,使得我们使用计算环境的时候,就如同我们使用本地的一样。这个技术至关重要,我们可以理解是我们将外设通过很长很长的信号线与放在机房中的主机相连,不同的是所有得线都被一根网线代替,而那个所谓的主机也和其他无数个类似的主机合并到一个服务器中了(有可能是一个个单独的虚拟机)。而今天讲的云计算,操作的虚拟化是直观重要得一环,无论是BS还是虚拟应用与虚拟桌面,操作环境能够满足用户需要是最关键得。
 
服务器虚拟化也好,应用虚拟化也好,桌面虚拟化也好,我们所提得讲法都是从结果或者表象命名的。但表象下面的真相确实几个环境得拆分。