Red Hat Training

A Red Hat training course is available for RHEL 8

第 1 章 RHEL 8 中的虚拟化 - 概述

如果您对虚拟化概念或其在 Linux 中的实施不熟悉,以下小节提供了 RHEL 8 虚拟化的一般概述:红帽提供的基本知识、优势、组件和其他可能的虚拟化解决方案。

1.1. 什么是虚拟化?

RHEL 8 提供虚拟化功能,它让运行 RHEL 8 的机器能够托管(host) 多个虚拟机(VM),也称为客户机(guest)。VM 使用主机的物理硬件和计算资源,在主机操作系统中作为用户空间进程运行一个独立的虚拟操作系统(客户机操作系统)。

换句话说,虚拟化功能使在一个操作系统中执行其他操作系统成为可能。

VM 可让您安全地测试软件配置和功能,运行旧的软件或优化硬件的工作负载效率。有关优点的详情请参考 第 1.2 节 “虚拟化的优点”

有关虚拟化的更多信息,请参阅红帽客户门户网站

要在 RHEL 8 中尝试虚拟化,请参考 第 2 章 虚拟化入门

注意

除了 RHEL 8 虚拟化外,红帽还提供很多特殊的虚拟化解决方案,每个解决方案都有不同的用户重点和功能。更多信息请参阅 第 1.5 节 “红帽虚拟化解决方案”

1.2. 虚拟化的优点

与使用物理机器相比,使用虚拟机(VM)有以下优点:

  • 灵活精细的资源分配

    一个虚拟机在主机机器(通常是物理机器)上运行,主机的硬件也可以分配给客户机操作系统使用。但是,物理资源分配是在软件级别上完成的,因此非常灵活。虚拟机使用的主机内存、CPU 或存储空间的比例是可以配置的,可以指定非常精细的资源请求。

    例如:客户机操作系统的磁盘可以在主机的文件系统中以一个文件代表,且该磁盘的大小限制比物理磁盘的限制要小。

  • 软件控制的配置

    虚拟机的整个配置都作为数据保存在主机上,并由软件控制。因此,虚拟机可轻松创建、删除、克隆、迁移、远程操作或连接到远程存储。

  • 与主机分离

    在虚拟内核中运行的客户机操作系统与主机操作系统分开。这意味着可在虚拟机中安装任何操作系统,即使虚拟机操作系统不稳定或受损,主机也不会受到任何影响。

  • 空间及成本效率

    单个物理机器可以托管大量虚拟机。因此,无需多个物理机器执行同样的任务,因此降低了与物理硬件关联的空间、电源和维护的要求。

  • 软件兼容性

    因为虚拟机可以使用不同于其主机的操作系统,所以通过虚拟化,可以运行最初没有为主机操作系统发布的应用程序。例如,通过 RHEL 6 客户机操作系统,您可以在 RHEL 8 主机系统中运行为 RHEL 6 发布的应用程序。

    注意

    不是所有操作系统都可以作为 RHEL 8 主机中的客户机操作系统被支持。详情请查看 第 20.2 节 “RHEL 8 虚拟化中推荐的功能”

1.3. 虚拟机组件及其交互

RHEL 8 中的虚拟化由以下主要软件组件组成:

虚拟机监控程序(Hypervisor)

在 RHEL 8 中创建虚拟机(VM)的基础是(hypervisor(虚拟机监控程序) ),它是一个软件层用来控制硬件并在主机中运行多个操作系统。

虚拟机监控程序包括 Kernel-based Virtual Machine(KVM) 模块和虚拟化内核驱动,如 virtiovfio。这些组件可确保主机中的 Linux 内核为用户空间软件提供虚拟化资源。

在用户空间级别,QEMU 模拟器会模拟一个客户机操作系统可以在上面运行的完整虚拟硬件平台,并管理如何在主机中分配资源并提供给客户机。

另外,libvirt 软件套件充当一个管理和沟通层,让 QEMU 更容易地进行互动、强制执行安全规则,并提供一些配置和运行虚拟机的额外工具。

XML 配置

基于主机的 XML 配置文件(也称域 XML 文件)决定了特定虚拟机中的所有设置和设备。配置包括:

  • 元数据,如虚拟机名称、时区和其他有关虚拟机的信息。
  • 对虚拟机中的设备的描述,包括虚拟 CPU(vCPUS)、存储设备、输入/输出设备、网络接口卡及其他真实和虚拟硬件。
  • 虚拟机设置,如它可以使用的最大内存量、重启设置和其他有关虚拟机行为的设置。

有关 XML 配置内容的更多信息,请参阅 VM XML 配置示例

组件交互

当虚拟机启动时,虚拟机监控程序使用 XML 配置在主机上以用户空间进程的形式创建虚拟机实例。虚拟机监控程序还可让基于主机的界面访问虚拟机进程,如 virshvirt-installguestfish 工具,或 web 控制台 GUI。

当使用这些虚拟化工具时,libvirt 会将它们的输入转换成 QEMU 的指令。QEMU 将指令信息发送到 KVM,这样可确保内核正确分配执行该指令所需的资源。因此,QEMU 可以执行相应的用户空间更改,如创建或修改虚拟机或在虚拟机的客户机操作系统中执行操作。

注意

尽管 QEMU 是构架中的基本组件,但出于安全考虑,它并没有被设计为直接在 RHEL 8 系统中使用。因此,红帽不支持使用 qemu-* 命令,强烈建议您使用 libvirt 与 QEMU 交互。

有关基于主机接口的详情,请参考 第 1.4 节 “用于虚拟化管理的工具和界面”

图 1.1. RHEL 8 虚拟化架构

virt 构架

1.4. 用于虚拟化管理的工具和界面

您可以使用命令行界面(CLI)或几个图形用户界面(GUI)管理 RHEL 8 中的虚拟化。

命令行界面

CLI 是在 RHEL 8 中管理虚拟化的最强大的方法。虚拟机(VM)管理的 CLI 命令包括:

  • virsh - 一个多用途的虚拟化命令行工具程序和 shell,根据提供的参数,可以实现不同功能。例如:

    • 启动和关闭虚拟机 - virsh startvirsh shutdown
    • 列出可用的虚拟机 - virsh list
    • 从配置文件创建虚拟机 - virsh create
    • 进入虚拟化 shell - virsh

    如需更多信息,请参阅 virsh(1) man page。

  • virt-install - 用于创建新虚拟机的 CLI 工具。如需更多信息,请参阅 virt-install(1) man page。
  • virt-xml - 编辑虚拟机配置的工具。
  • guestfish - 检查和修改虚拟机磁盘镜像的工具。如需更多信息,请参阅 guestfish(1) man page。

图形界面

您可以使用以下 GUI 在 RHEL 8 中管理虚拟化:

  • RHEL 8 web 控制台 (也称为 Cockpit )提供了一个远程的、易于使用的图形用户界面管理虚拟机和虚拟化主机。

    有关使用 web 控制台进行基本虚拟化管理的步骤请参考 第 5 章 在 web 控制台中管理虚拟机

  • 虚拟机管理器(virt-manager)应用程序提供管理虚拟机和虚拟化主机的专用 GUI。

    重要

    虽然 RHEL 8 仍支持 virt-manager,但其已被弃用。在以后的版本中计划使用 Web 控制台替换它。因此,建议您熟悉通过 web 控制台使用 GUI 管理虚拟化。

    但是在 RHEL 8 中,某些功能只能通过 virt-manager 或命令行访问。详情请查看 第 5.4 节 “虚拟机管理器和 web 控制台中虚拟化功能的不同”

  • Gnome Boxes 应用程序是一个轻量级图形界面,可用来查看和访问虚拟机和远程系统。GNOME Boxes 主要用于桌面系统。

    重要

    GNOME Boxes 作为 GNOME 桌面环境的一部分提供,在 RHEL 8 中被支持,但红帽建议您通过 web 控制台使用 GUI 管理虚拟化。

其它资源

1.5. 红帽虚拟化解决方案

以下红帽产品基于 RHEL 8 虚拟化功能构建,它们扩展了 RHEL 8 中的 KVM 虚拟化功能。另外,RHEL 8 虚拟化的很多限制并不会限制这些产品:

Red Hat Virtualization(RHV)

RHV 是针对企业级的可伸缩性和性能进行设计的,能够通过集中图形界面管理整个虚拟基础架构,包括主机、虚拟机、网络、存储和用户。

Red Hat Virtualization 可用于运行大型部署或关键任务应用程序的企业。适用于 Red Hat Virtualization 的大型部署示例包括数据库、平台和消息系统,这些系统需要持续运行且不能出现停机状况。

有关 Red Hat Virtualization 的更多信息,请参阅红帽客户门户网站Red Hat Virtualization 文档套件

要下载完全支持的 Red Hat Virtualization 60 天试用版本,请访问红帽客户门户网站

Red Hat OpenStack Platform(RHOSP)

Red Hat OpenStack Platform 为创建、部署并扩展一个安全可靠的公共或私有 OpenStack 云环境提供了一个集成的基础。

如需有关 Red Hat OpenStack Platform 的更多信息,请参阅红帽客户门户网站Red Hat OpenStack Platform 文档套件

注意

如果需要使用 RHEL 不支持,但 RHV 或 RHOSP 可以支持的虚拟化功能,请参阅 第 20.3 节 “RHEL 8 虚拟化不支持的功能”

另外,特定的红帽产品还提供操作系统级别的虚拟化,也称为容器化

  • 容器是主机操作系统的隔离实例,并在现有操作系统内核之上操作。如需有关容器的更多信息,请参阅红帽客户门户网站
  • 容器并不具有 KVM 虚拟化的灵活性,但其处理更加轻便且灵活。有关更详细的比较,请参阅 Linux 容器简介

为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。