虚拟化技术简介

172 阅读4分钟

Virtualization Techniques

虚拟化技术简介

在这篇文章中,我们将看到目前实践中广泛使用的虚拟化技术,以及所有这些技术是如何针对哪些用例实施的。实施技术取决于企业想要解决的用例或问题陈述。在这里,我们将讨论这些技术是如何工作的,以及通过实施这些技术所达到的抽象程度。

不同的虚拟化技术

这些是目前市场上使用的不同的虚拟化技术:

  1. 客户操作系统虚拟化
  2. 共享内核虚拟化
  3. 内核级虚拟化
  4. 管理程序虚拟化

1.客户操作系统虚拟化

  • 这是最简单和最容易实现的虚拟化方式。
  • 在这种虚拟化中,有一个主机操作系统,虚拟化软件被安装在该主机操作系统中。
  • 该主机操作系统可以是任何东西,如Windows、Mac或Linux,而虚拟化软件将像任何其他应用程序在操作系统上运行一样运行。
  • 该虚拟化软件将负责所有的虚拟化任务,并帮助运行客户操作系统。
  • 人们可以使用该虚拟化软件运行多个操作系统;它将负责所有事情,如内存管理、资源管理、硬盘分区等。

2.共享的内核虚拟化

  • 在该技术中,不需要对主机操作系统和主机硬件进行额外的配置。

Virtualization Techniques 1

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

Host operating

  • 这种技术的唯一缺点是操作系统的兼容性;比如有人想用这种方法运行Windows操作系统,那么它将无法工作,或者如果有人想运行Linux 2.6版本,而主机操作系统是2.4版本,那么它也将无法工作。
  • 这些技术包括Linux Vserver、Solaris Zones、容器等。

3.内核级虚拟化

  • 在这种虚拟化技术中,客体操作系统运行其内核,与共享内核的虚拟化不同。
  • 可以有多个客体操作系统,每个系统都有自己的内核。
  • 但客体操作系统的内核应具有与主机内核相似的配置。否则,就会出现兼容性问题。
  • 内核级虚拟化包括用户模式的Linux和基于内核的虚拟机。

这些技术包括Linux Vserver、Solaris Zones、容器等。

kernel level

  • 上图显示了内核级可视化的实现。

4.管理程序虚拟化

  • 在这种虚拟化中,一个叫做Hypervisor的程序直接运行在CPU的硬件中,一般称为0环,这是CPU硬件提供给任何软件的最高级别的权限。
  • 一般来说,操作系统只有在0环内运行的权限,所以在这种情况下,管理程序在0环内运行,也称为1型VMM(虚拟机监视器)。顾名思义,它监控所有安装在虚拟机上的客户操作系统,并为更高级别的管理和监控提供接口。
  • 所以,假设管理程序运行在第0环,在这种情况下,客户操作系统的内核将无法获得适当的运行权限,所以为了解决这个问题,管理程序作为以下几种不同的解决方案。

A)准虚拟化

  • 在这种技术中,系统调用是由客户操作系统的内核进行的,而管理程序直接处理这些调用,而管理程序反过来又完成所有的任务。
  • 管理者和客户操作系统内核之间的调用被称为超调用。

B) 完全虚拟化

  • 在这种情况下,客体操作系统的完全控制权被交给了客体操作系统。
  • 管理程序通常控制和监视这些调用;它提供一个CPU模拟来处理和修改权限。
  • 但是,与准虚拟化相比,这种情况从来没有效率,并导致系统性能下降。

C)硬件虚拟化

  • 随着最新的CPU进入市场,INTEL和AMD已经设计了新的CPU,有助于在0环之上提供一个额外的层,允许管理程序运行并控制客户操作系统。
  • 这就消除了CPU模拟的开销。

hypervisor

上图显示了管理程序的工作情况:

  • 管理程序还运行一个管理控制台,帮助监控在CPU上运行的客户操作系统,它还允许系统管理员管理虚拟机。
  • 市场上有不同的管理程序,如微软hyper V Xen、VMware ESX Server等。

总结

在这篇文章中,我们已经看到了不同的虚拟化技术,并了解了它们各自的工作。这取决于业务使用情况和预算,以实现上述任何方法的虚拟化。