计算机网络中服务器虚拟化的类型

17 Mar 2025 | 4 分钟阅读

服务器虚拟化是指将一台物理服务器划分为多个微小的虚拟服务器,每个服务器都运行不同的操作系统。它们被称为“访客操作系统”。这些访客操作系统在不同的操作系统(称为主机操作系统)上运行。在这种设置中,同一主机上的其他访客操作系统不会意识到彼此的存在。为了实现这种透明性,使用了各种虚拟化技术。

服务器虚拟化的类型

1. 管理程序(Hypervisor)

在操作系统和硬件之间,有一层称为管理程序或 VMM(虚拟机监视器)。它提供高效运行多个操作系统所需的功能和服务。

除了处理硬件请求的排队、调度和返回之外,它还识别陷阱并响应特权 CPU 指令。管理程序之上是主机操作系统,用于控制和管理虚拟机。

2. 半虚拟化(Para Virtualization)

其基础是管理程序。该模型处理了软件实现的虚拟化中大部分的仿真和陷阱开销。访客操作系统在安装到虚拟机之前会进行修改和重新编译。

由于修改后的访客操作系统直接与管理程序通信并消除了仿真开销,因此性能得到改善。

示例:为了支持 Xen 主要使用的名为 domain 0 的管理环境,使用了定制的 Linux 环境。

Types Of Server Virtualization In Computer Network

优点

  • 更简单,性能更好
  • 不需要仿真

局限性

  • 需要修改访客操作系统

3. 完全虚拟化(Complete Virtualization)

它与半虚拟化非常相似。必要时,它可以模拟底层硬件。管理程序捕获操作系统的 I/O 机器操作和更改系统状态的操作。捕获后,这些操作通过软件模拟,返回的状态代码与真实硬件产生的代码非常相似。因此,未修改的操作系统可以在管理程序之上运行。

例如,VMWare ESX 服务器使用此方法。作为管理操作系统,Service Console 是 Linux 的修改版本。与半虚拟化相比,它速度较慢。

Types Of Server Virtualization In Computer Network

优点

  • 访客操作系统无需更改。

局限性

  • 仿真使其复杂且速度较慢。
  • 新设备驱动程序的安装具有挑战性。

4. 硬件辅助虚拟化(Virtualization with Hardware Assist)

在功能方面,它与完全虚拟化和半虚拟化相似,不同之处在于它需要硬件支持。通过依赖 x86 架构的硬件扩展,解决了在访客操作系统中执行的 I/O 操作和状态指令的捕获和模拟所导致的很大一部分管理程序开销。

未修改的操作系统可用于处理硬件访问请求、特权和受保护操作以及与虚拟机的通信,因为将使用对虚拟化的硬件支持。

支持虚拟化的硬件示例包括 AMD 的 V Pacifica 和 Intel 的 VT Vanderpool。

优点

  • 访客操作系统无需更改。
  • 管理程序开销非常低

局限性

  • 需要硬件支持

5. 内核级虚拟化(Virtualization at the kernel level)

它运行一个不同的 Linux 内核,并将相关的虚拟机视为物理主机上的用户空间进程,而不是使用管理程序。因此,在单个主机上管理多个虚拟机很简单。虚拟机与主 Linux 内核之间的通信使用设备驱动程序。

虚拟化需要处理器支持(Intel VT 或 AMD - v)。虚拟机的显示和执行容器是 QEMU 进程的修改版本。内核级虚拟化在许多方面类似于服务器虚拟化。

Types Of Server Virtualization In Computer Network

示例包括内核虚拟机和用户模式 Linux (UML) ( KVM )

优点

  • 不需要专门的管理软件。
  • 几乎没有开销

局限性

  • 需要硬件支持

6. 系统级或操作系统虚拟化(System-level or operating system virtualization)

利用操作系统内核的单一实例运行多个逻辑上独立的环境。也称为“共享内核方法”,因为主机操作系统内核由所有虚拟机共享。基于“chroot”更改根概念。

在启动期间,chroot 开始。内核使用根文件系统加载驱动程序并执行其他早期系统初始化任务。系统在切换到另一个根文件系统后,使用 chroot 命令将磁盘文件系统挂载为其最终根文件系统,然后在该文件系统内继续系统初始化和配置。

系统级虚拟化的 chroot 机制在此思想上进行扩展。通过这样做,系统能够启动具有独立进程集的虚拟服务器,这些进程相对于它们自己的文件系统根目录运行。

在不同的虚拟系统上运行不同操作系统的能力是系统级虚拟化和服务器虚拟化的主要区别。服务器虚拟化是指不同的服务器可以具有不同的操作系统,包括同一操作系统的不同版本,而系统级虚拟化则要求所有虚拟服务器共享同一份操作系统。

示例包括 FreeVPS、Linux Vserver 和 OpenVZ。

优点

  • 比完整机器(包括内核)轻便得多
  • 可以容纳更多虚拟服务器
  • 增强的安全性和隔离性
  • 操作系统虚拟化通常开销很小或没有。
  • 操作系统虚拟化支持实时迁移。
  • 此外,它还可以利用节点和集群之间容器的动态负载平衡。
  • 操作系统虚拟化可以实现文件级写时复制 (CoW) 技术,它比块级写时复制方案更节省空间、更容易缓存和更容易备份数据。
    Types Of Server Virtualization In Computer Network

局限性

  • 内核或驱动程序问题可能导致所有虚拟服务器停止运行。