位于虚拟化核心的是一种众所周知但很少讨论的技术,称为 Hypervisor。管理程序是一个软件层,它使单个硬件能够托管多个隔离的虚拟机。它还有助于管理这些虚拟机。但在我们讨论虚拟机管理程序的工作原理、虚拟机管理程序的类型以及这项技术的好处之前,让我们先定义一些基本的定义。我们将从与虚拟机管理程序密切相关的技术开始——虚拟化。
什么是虚拟化?
虚拟化是创建“虚拟”形式的资源,例如服务器、桌面、操作系统、存储空间、网络或文件。通过虚拟化,传统计算发生了转变,因为这些资源可以根据客户或组织的需求进行扩展。虚拟化已经存在了几十年,现在分为三种不同的类型——操作系统(OS)虚拟化、硬件虚拟化和服务器虚拟化。
虚拟化用于将工作负载、系统和多个操作环境整合到一个物理系统上。本质上,底层硬件是分区的,每个分区都作为一个独立的、隔离的虚拟机运行——它有自己的操作系统。现在,这就是管理程序的用武之地。
什么是管理程序?
分区的功能,或者更具体地说,从底层计算机硬件中抽象和隔离这些不同的操作系统和应用程序是管理程序所做的。因此,说虚拟化是由虚拟机管理程序的功能启用的并没有错。
这意味着底层硬件(称为主机)可以独立操作和运行一个或多个虚拟机(称为来宾机器)。管理程序还通过分配硬件资源(例如内存分配、CPU 使用网络带宽等)来帮助管理这些独立的虚拟机。它通过创建抽象硬件资源池来做到这一点,然后将其分配给虚拟机。它还可以在用户请求时停止和启动虚拟机。
管理程序的另一个关键组件是确保所有虚拟机与其他虚拟机保持隔离——因此当一个虚拟机出现问题时,其他虚拟机不会受到影响。最后,管理程序还处理虚拟机之间通过虚拟网络的通信——使虚拟机能够相互连接。
管理程序如何工作?
要了解管理程序的工作原理,了解管理程序的类型很重要 - 管理程序的类型是什么?它们是如何工作的?有什么区别?有 2 种类型的 Hypervisor。它们也被称为本机或裸机管理程序(类型 1)和托管管理程序(类型 2)。
类型 1 管理程序:
类型 1 管理程序直接在主机硬件上运行,无需底层操作系统的干预。这意味着管理程序可以直接访问硬件,而无需与操作系统和驱动程序竞争。
Type 1 被广泛认为是企业计算中性能最佳和最高效的虚拟机管理程序。直接分配资源的能力使这些虚拟机管理程序更具可扩展性,但优势远不止于此:
- 物理资源优化:组织通常通过为不同的应用程序购买单独的服务器来快速消耗资金——这是一项耗时且占用数据中心空间的工作。借助 Type 1 虚拟机管理程序,IT 可以利用服务器硬件,从而释放数据中心成本和空间并减少能源使用。
- 更大的资源分配:大多数类型 1 管理程序让管理员有机会根据应用程序的优先级手动设置资源分配。许多类型 1 管理程序还根据需要自动分配资源,从而使资源管理成为动态和定制的选项。
类型 1 管理程序最著名的例子是 VMware 的 ESXi 和 Microsoft 的 Hyper-V。
类型 2 管理程序
通常,这些管理程序构建在操作系统之上。由于它依赖于主机的底层操作系统(与类型 1 直接对比),因此被称为“托管管理程序”。管理程序作为操作系统中的应用程序运行,然后直接在主机上运行。类型 2 管理程序确实支持多台访客机器,但不允许直接访问主机硬件及其资源。预先存在的操作系统管理对 CPU 的内存、网络资源和存储的调用。所有这些都会产生一定的延迟。
但是,这仅适用于更复杂和高性能的场景。2 型管理程序仍然是流行的家庭和测试实验室。此外,Type 2 虚拟机管理程序具有自己的一组优势,例如:
- 类型 2 管理程序更容易设置和管理,因为您已经有一个操作系统可以使用。
- 它不需要专门的管理员。
- 它与各种硬件兼容。
2 类管理程序的示例包括 Oracle Solaris Zones、Oracle VM Server for x86、Oracle VM Virtual Box、VMware Workstation、VMware Fusion 等。
虚拟机
KVM(基于内核的虚拟机)是一种流行且独特的虚拟机管理程序——因为它具有 1 类和 2 类虚拟机管理程序的特征。这种开源虚拟化技术内置于 Linux 中,更具体地说,将 Linux 变成了一个虚拟机管理程序。
需要明确的是,KVM 是 Linux 代码的一部分,这意味着它可以从 Linux 的每一项创新或进步、特性和修复中受益,而无需额外的工程设计。
KVM 将 Linux 转换为 Type-1(本机/裸机)管理程序。这是一个安全的选项,可为您提供充足的存储空间、硬件支持、内存管理、虚拟机实时迁移(无任何服务中断)、可扩展性、调度和资源控制、低延迟和更高的应用程序优先级。KVM还可以创建更安全和更好隔离的虚拟机,同时确保它们继续以最佳性能运行。