
虚拟化技术简介
在这篇文章中,我们将看到目前实践中广泛使用的虚拟化技术,以及所有这些技术是如何针对哪些用例实施的。实施技术取决于企业想要解决的用例或问题陈述。在这里,我们将讨论这些技术是如何工作的,以及通过实施这些技术所达到的抽象程度。
不同的虚拟化技术
这些是目前市场上使用的不同的虚拟化技术:
- 客户操作系统虚拟化
- 共享内核虚拟化
- 内核级虚拟化
- 管理程序虚拟化
1.客户操作系统虚拟化
- 这是最简单和最容易实现的虚拟化方式。
- 在这种虚拟化中,有一个主机操作系统,虚拟化软件被安装在该主机操作系统中。
- 该主机操作系统可以是任何东西,如Windows、Mac或Linux,而虚拟化软件将像任何其他应用程序在操作系统上运行一样运行。
- 该虚拟化软件将负责所有的虚拟化任务,并帮助运行客户操作系统。
- 人们可以使用该虚拟化软件运行多个操作系统;它将负责所有事情,如内存管理、资源管理、硬盘分区等。
2.共享的内核虚拟化
- 在该技术中,不需要对主机操作系统和主机硬件进行额外的配置。

- 在上图中,我们可以看到,虚拟化应用程序使用与主机操作系统相同的硬件,并在主机操作系统中运行。
- 所以,在这种情况下,优势在于如果没有额外的硬件配置费用,而软件配置是需要的。
- 但是,由于这是最便宜的虚拟化方式,由于高度抽象,会有性能问题。
- VMware和VirtualBox是用于这种虚拟化的软件。

- 这种技术的唯一缺点是操作系统的兼容性;比如有人想用这种方法运行Windows操作系统,那么它将无法工作,或者如果有人想运行Linux 2.6版本,而主机操作系统是2.4版本,那么它也将无法工作。
- 这些技术包括Linux Vserver、Solaris Zones、容器等。
3.内核级虚拟化
- 在这种虚拟化技术中,客体操作系统运行其内核,与共享内核的虚拟化不同。
- 可以有多个客体操作系统,每个系统都有自己的内核。
- 但客体操作系统的内核应具有与主机内核相似的配置。否则,就会出现兼容性问题。
- 内核级虚拟化包括用户模式的Linux和基于内核的虚拟机。
这些技术包括Linux Vserver、Solaris Zones、容器等。

- 上图显示了内核级可视化的实现。
4.管理程序虚拟化
- 在这种虚拟化中,一个叫做Hypervisor的程序直接运行在CPU的硬件中,一般称为0环,这是CPU硬件提供给任何软件的最高级别的权限。
- 一般来说,操作系统只有在0环内运行的权限,所以在这种情况下,管理程序在0环内运行,也称为1型VMM(虚拟机监视器)。顾名思义,它监控所有安装在虚拟机上的客户操作系统,并为更高级别的管理和监控提供接口。
- 所以,假设管理程序运行在第0环,在这种情况下,客户操作系统的内核将无法获得适当的运行权限,所以为了解决这个问题,管理程序作为以下几种不同的解决方案。
A)准虚拟化
- 在这种技术中,系统调用是由客户操作系统的内核进行的,而管理程序直接处理这些调用,而管理程序反过来又完成所有的任务。
- 管理者和客户操作系统内核之间的调用被称为超调用。
B) 完全虚拟化
- 在这种情况下,客体操作系统的完全控制权被交给了客体操作系统。
- 管理程序通常控制和监视这些调用;它提供一个CPU模拟来处理和修改权限。
- 但是,与准虚拟化相比,这种情况从来没有效率,并导致系统性能下降。
C)硬件虚拟化
- 随着最新的CPU进入市场,INTEL和AMD已经设计了新的CPU,有助于在0环之上提供一个额外的层,允许管理程序运行并控制客户操作系统。
- 这就消除了CPU模拟的开销。

上图显示了管理程序的工作情况:
- 管理程序还运行一个管理控制台,帮助监控在CPU上运行的客户操作系统,它还允许系统管理员管理虚拟机。
- 市场上有不同的管理程序,如微软hyper V Xen、VMware ESX Server等。
总结
在这篇文章中,我们已经看到了不同的虚拟化技术,并了解了它们各自的工作。这取决于业务使用情况和预算,以实现上述任何方法的虚拟化。