「Hypervisor」- 虚拟机监视器 | Hypervisor | 学习笔记

认识

Hypervisor,虚拟机监视器,VMM,是种软件、固件、硬件,其用于创建和运行虚拟机(VM)。它允许多个操作系统在同一物理硬件上并行运行,每个操作系统都在独立的虚拟机中。Hypervisor 负责管理和分配硬件资源,确保各虚拟机之间的隔离和安全。

组成

Hypervisor 的组成可以分为多个核心组件,每个组件负责不同的功能,共同协作以实现虚拟化。Hypervisor 的组成包括虚拟机管理器、资源分配器、虚拟硬件抽象层、调度器、设备模拟器、内存管理单元、I/O 管理器、监控和管理接口、安全模块、网络虚拟化模块、存储虚拟化模块以及硬件辅助虚拟化支持。这些组件协同工作,实现高效的虚拟化环境,支持多虚拟机在单一物理硬件上运行。

以下是 Hypervisor 的主要组成部分及其功能:

  1. 虚拟机管理器(Virtual Machine Manager, VMM)
功能:负责创建、管理和销毁虚拟机(VM)。

职责:
分配和管理虚拟机的资源(如 CPU、内存、存储等)。

处理虚拟机的生命周期(启动、暂停、恢复、关闭等)。

确保虚拟机之间的隔离性。

  1. 资源分配器(Resource Allocator)
功能:管理物理硬件资源并将其分配给虚拟机。

职责:
CPU 分配:通过时间片轮转或优先级调度为虚拟机分配 CPU 资源。

内存管理:为每个虚拟机分配独立的内存空间,并确保内存隔离。

I/O 设备管理:虚拟化硬件设备(如网络接口、磁盘控制器等)并将其分配给虚拟机。

  1. 虚拟硬件抽象层(Virtual Hardware Abstraction Layer)
功能:为虚拟机提供虚拟化的硬件环境。

职责:
模拟虚拟硬件设备(如虚拟 CPU、虚拟内存、虚拟网络接口等)。

提供一致的硬件接口,使虚拟机无需修改即可运行。

支持多种虚拟化技术(如全虚拟化、半虚拟化、硬件辅助虚拟化)。

  1. 调度器(Scheduler)
功能:管理虚拟机对物理资源的访问。

职责:
调度虚拟机的 CPU 时间片,确保公平性和性能。

处理多虚拟机并发运行时的资源竞争问题。

支持实时调度策略,以满足特定虚拟机的性能需求。

  1. 设备模拟器(Device Emulator)
功能:模拟物理硬件设备以供虚拟机使用。

职责:
模拟常见的硬件设备(如磁盘、网卡、显卡等)。

支持虚拟设备的动态添加和移除。

提供高性能的设备虚拟化(如通过 Virtio 实现半虚拟化设备)。

  1. 内存管理单元(Memory Management Unit, MMU)
功能:管理虚拟机的内存访问和隔离。

职责:
实现虚拟内存到物理内存的映射。

确保虚拟机之间的内存隔离。

支持内存分页、内存共享和内存气球技术(Memory Ballooning)。

  1. I/O 管理器(I/O Manager)
功能:管理虚拟机与外部设备的 I/O 操作。

职责:
虚拟化网络、存储和其他外设的 I/O 操作。

提供高性能的 I/O 虚拟化(如 SR-IOV、DPDK)。

处理虚拟机与宿主机的 I/O 请求转发。

  1. 监控和管理接口(Monitoring and Management Interface)
功能:提供对虚拟机和 Hypervisor 的监控和管理功能。

职责:
提供 API 或命令行工具以管理虚拟机(如启动、停止、迁移等)。

监控虚拟机的资源使用情况(如 CPU、内存、磁盘、网络等)。

支持高级功能(如虚拟机快照、动态资源调整、高可用性等)。

  1. 安全模块(Security Module)
功能:确保虚拟机和 Hypervisor 的安全性。

职责:
实现虚拟机之间的隔离。

防止虚拟机逃逸(VM Escape)等安全威胁。

支持加密和完整性保护。

  1. 网络虚拟化模块(Network Virtualization Module)
功能:提供虚拟网络功能。

职责:
创建虚拟交换机(vSwitch)和虚拟网络接口(vNIC)。

支持网络隔离(如 VLAN、VXLAN)。

提供网络流量监控和 QoS 支持。

  1. 存储虚拟化模块(Storage Virtualization Module)
功能:管理虚拟机的存储资源。

职责:
提供虚拟磁盘(如 VMDK、VHD、QCOW2)。

支持存储动态扩展和快照。

实现存储资源的共享和隔离。

  1. 硬件辅助虚拟化支持(Hardware-assisted Virtualization Support)
功能:利用硬件特性提升虚拟化性能。

职责:
支持 Intel VT-x 和 AMD-V 等 CPU 虚拟化技术。

支持 Intel VT-d 和 AMD-Vi 等 I/O 虚拟化技术。

优化虚拟机的性能并减少 Hypervisor 的开销。

构造

Hypervisor 是实现虚拟化的关键技术,分为 2 种类型。

  • Type 1 性能更高,适合企业环境;
  • Type 2 则更加灵活,更适合桌面和开发。

针对实现,两者主要的差别有:

  • 硬件交互:
    • Type 1,直接与硬件交互,需要实现硬件驱动程序和资源管理模块;
    • Type 2,通过主机操作系统与硬件交互,依赖主机操作系统的功能。
  • 资源管理:
    • Type 1,直接管理和分配硬件资源(CPU、MEM、NET、……)。
    • Type 2,通过主机操作系统管理和分配资源,Hypervisor 层主要负责虚拟机的创建和管理。
  • ……

Type 1 Hypervisor | 宿主型 Hypervisor

直接运行在物理硬件上,无需宿主操作系统。

性能较高,常用于服务器和数据中心。

典型代表:VMware ESXi、Microsoft Hyper-V、Xen、KVM、……

Type 2 Hypervisor | 宿主型 Hypervisor

运行在宿主操作系统之上,依赖宿主系统管理硬件。

适合桌面和开发环境,性能相对较低。

典型代表:Oracle VirtualBox、VMware Workstation、Parallels Desktop、……

性质

资源虚拟化:将物理资源(如 CPU、内存、存储、网络)抽象为虚拟资源,供多个虚拟机使用。
隔离性:确保虚拟机之间相互独立,一个虚拟机的故障不会影响其他虚拟机。
资源管理:动态分配和调整资源,优化硬件利用率。
快照与迁移:支持虚拟机快照和迁移,便于备份和负载均衡。

成本节约:减少硬件需求,降低维护成本。
灵活性:快速部署和配置虚拟机。
高可用性:通过虚拟机迁移和负载均衡,提升系统可靠性。

应用

广泛应用于服务器、桌面和云计算等领域,能够显著提升资源利用率和系统灵活性。

参考

DeepSeek / Hypervisor 是什么?具体实现有哪些?
DeepSeek / Hypervisor 其组成是什么?
DeepSeek / 介绍 Hypervisor 是什么?
DeepSeek / Type 1 Hypervisor 直接运行在物理硬件上是什么意思?Type 2 Hypervisor 运行在主机操作系统之上是什么意思?两者在代码实现上的差别是什么?