前言

上一篇文章已经介绍了云计算的一些基础概念,让我们对云计算有了一定的了解。那么,云计算中强大的功能从何而来?它又是如何实现的呢?

虚拟化技术

最初印象

在日常生活中,我们可能已经听说过,或者说已经在使用虚拟化技术了,下图是我们日常使用非常广泛的一个虚拟机软件:VMware Workstation:
2020-08-04-16-11-10
通俗的讲法就是,虚拟机可以在一台具备操作系统的物理机上,运行一台或多台和物理机一样具有操作系统的虚拟主机。这可能是我们最早对虚拟机的一个理解了。

虚拟化概念

在虚拟化中,我们需要了解一些重要的概念以及专业术语:
2020-08-11-15-43-52
OS:操作系统
Guest OS:虚拟机操作系统
Virtual Machine(VM):虚拟机
Hypervisor:虚拟化软件层/虚拟机监视器(也称VMM,Virtual Machine Monitor)
Host OS:运行在物理机之上的OS
Host Machine:(主机)物理机

在虚拟化中,OS必不可少。OS是Operating System的缩写,即操作系统。OS具有以下作用:

  1. 接管硬件;
  2. 调度和分配软硬件资源;
  3. 为OS软件进行升级、补丁更新;
  4. 对主机的生命周期进行管理;
  5. 提供人机交互界面;

虚拟化特点

2020-08-11-15-30-43

  1. 分区:通过虚拟化技术,对主机资源(计算、存储、网络)进行逻辑划分;
  2. 隔离:虚拟化技术可以保证虚拟机跟虚拟机、虚拟机跟主机进行隔离。例如,某一台虚拟机宕机了或者进程未响应,并不会影响到主机或其他虚拟机的运行;
  3. 封装:虚拟机可以封装为文件,以文件的形式存在,便于虚拟机在不同的主机之间迁移;
  4. 独立:每个虚拟机都是独立个体;

虚拟化类型

根据硬件和虚拟化层的层级关系,虚拟化类型分为以下几种。这里我们来简单介绍一下:
2020-08-11-15-17-51

  1. I型:裸金属型虚拟化,直接在硬件上部署Hypervisor,在Hypervisor上运行虚拟机。典型代表有VMware ESXi、Citrix Xen、Hyper-v、KVM、FusionCompute(基于KVM)。I型虚拟化尽可能地使用所有的硬件资源,减少不必要的性能损耗,运行较为稳定。缺点是实现方式较为复杂,需要针对硬件和系统内核进行开发。
  2. II型:宿主型虚拟化(也可称为寄居虚拟化),在硬件上部署HostOS,在HostOS上部署相关的应用软件实现虚拟化,可以理解为将Hypervisor寄生于HostOS上而实现的虚拟化技术。典型代表有VMware Workstation、VirtualBox。II型虚拟化也是我们日常在Windows平台上使用最广泛的虚拟化类型之一。通常,II型虚拟化是针对OS进行开发的,缺点是额外性能开销大。
  3. 操作系统虚拟化(应用级虚拟化):一般指的是容器技术,流行的代表有LXC、Docker等;
  4. 混合虚拟化:通过嵌入到系统内核的虚拟化驱动模块,来实现虚拟化,典型代表是KVM。华为FusionCompute就是一套底层基于KVM的虚拟化软件;

总结

新手可能会觉得这篇文章非常枯燥无味,这个很正常,本人也是这么熬过来的。毕竟理论是实践的基础,在搞懂了虚拟化的概念后,后续学习将会变得更加顺利。