1. 什么是虚拟化
RHEL 8 提供虚拟化功能,它让运行 RHEL 8 的机器能够 托管(host) 多个虚拟机(VM),也称为客户 机(guest)。VM 使用主机的物理硬件和计算资源,在主机操作系统中作为用户空间进程运行一个独立的 虚拟操作系统(客户机操作系统)。 换句话说,虚拟化功能使在一个操作系统中执行其他操作系统成为可能。
2. 虚拟化的优点
与使用物理机器相比,使用虚拟机(VM)有以下优点:
1.灵活精细的资源分配
一个虚拟机在主机机器(通常是物理机器)上运行,主机的硬件也可以分配给客户机操作系统使用。但是,物理资源分配是在软件级别上完成的,因此非常灵活。虚拟机使用的主机内存、CPU 或存储空间的比例是可以配置的,可以指定非常精细的资源请求。 例如:客户机操作系统的磁盘可以在主机的文件系统中以一个文件代表,且该磁盘的大小限制比 物理磁盘的限制要小。
2.软件控制的配置
虚拟机的整个配置都作为数据保存在主机上,并由软件控制。因此,虚拟机可轻松创建、删除、 克隆、迁移、远程操作或连接到远程存储。
3.与主机分离
在虚拟内核中运行的客户机操作系统与主机操作系统分开。这意味着可在虚拟机中安装任何操作系统,即使虚拟机操作系统不稳定或受损,主机也不会受到任何影响。
4.空间及成本效率
单个物理机器可以托管大量虚拟机。因此,无需多个物理机器执行同样的任务,因此降低了与物 理硬件关联的空间、电源和维护的要求。
5.软件兼容性
因为虚拟机可以使用不同于其主机的操作系统,所以通过虚拟化,可以运行最初没有为主机操作系统发布的应用程序。例如,通过 RHEL 6 客户机操作系统,您可以在 RHEL 8 主机系统中运行 为 RHEL 6发布的应用程序。
3. 虚拟机组件及其交互
RHEL 8 中的虚拟化由以下主要软件组件组成:
3.1、虚拟机监控程序(Hypervisor)
在 RHEL 8 中创建虚拟机(VM)的基础是(hypervisor(虚拟机监控程序) ),它是一个软件层用来控制 硬件并在主机中运行多个操作系统。
虚拟机监控程序包括 Kernel-based Virtual Machine(KVM)模块和虚拟化内核驱动,如 virtio 和vfio。这些组件可确保主机中的 Linux 内核为用户空间软件提供虚拟化资源。
在用户空间级别,QEMU 模拟器会模拟一个客户机操作系统可以在上面运行的完整虚拟硬件平台,并管 理如何在主机中分配资源并提供给客户机。
另外,libvirt 软件套件充当一个管理和沟通层,让 QEMU 更容易地进行互动、强制执行安全规则,并提供一些配置和运行虚拟机的额外工具。
3.2、XML 配置
基于主机的 XML 配置文件(也称域 XML 文件)决定了特定虚拟机中的所有设置和设备。配置包括:
元数据,如虚拟机名称、时区和其他有关虚拟机的信息。
对虚拟机中的设备的描述,包括虚拟 CPU(vCPUS)、存储设备、输入/输出设备、网络接口卡及其他真实和虚拟硬件。
虚拟机设置,如它可以使用的最大内存量、重启设置和其他有关虚拟机行为的设置。
3.3、组件交互
当虚拟机启动时,虚拟机监控程序使用 XML 配置在主机上以用户空间进程的形式创建虚拟机实例。虚拟机监控程序还可让基于主机的界面访问虚拟机进程,如 virsh、virt-install 和 guestfish 工具,或web 控制台 GUI。
当使用这些虚拟化工具时,libvirt 会将它们的输入转换成 QEMU 的指令。QEMU 将指令信息发送到 KVM,这样可确保内核正确分配执行该指令所需的资源。因此,QEMU 可以执行相应的用户空间更改, 如创建或修改虚拟机或在虚拟机的客户机操作系统中执行操作。
3.4、用于虚拟化管理的工具和界面
可以使用命令行界面(CLI)或几个图形用户界面(GUI)管理 RHEL 8 中的虚拟化。
命令行界面
CLI 是在 RHEL 8 中管理虚拟化的最强大的方法。虚拟机(VM)管理的 CLI 命令包括:
virsh - 一个多用途的虚拟化命令行工具程序和 shell,根据提供的参数,可以实现不同功能。
例 如:
启动和关闭虚拟机 - virsh start 和 virsh shutdown
列出可用的虚拟机 - virsh list
从配置文件创建虚拟机 - virsh create
进入虚拟化 shell - virsh
virt-install - 用于创建新虚拟机的 CLI 工具。
virt-xml - 编辑虚拟机配置的工具。
guestfish - 检查和修改虚拟机磁盘镜像的工具。
图形界面
可以使用以下 GUI 在 RHEL 8 中管理虚拟化:
RHEL 8 web 控制台(也称为 Cockpit )提供了一个远程的、易于使用的图形用户界面管理虚拟机和虚拟化主机。(建议)
虚拟机管理器(virt-manager)应用程序提供管理虚拟机和虚拟化主机的专用 GUI。(支持但已弃用)
Gnome Boxes 应用程序是一个轻量级图形界面,可用来查看和访问虚拟机和远程系统。
GNOME Boxes 主要用于桌面系统。 (支持但不建议)
3.5、红帽虚拟化解决方案
以下红帽产品基于 RHEL 8 虚拟化功能构建,它们扩展了 RHEL 8 中的 KVM 虚拟化功能。另外,RHEL 8 虚拟化的很多限制并不会限制这些产品:
Red Hat Virtualization(RHV)
RHV 是针对企业级的可伸缩性和性能进行设计的,能够通过集中图形界面管理整个虚拟基础架构,包 括主机、虚拟机、网络、 存储和用户。
Red Hat Virtualization 可用于运行大型部署或关键任务应用程序的企业。适用于 Red Hat
Virtualization 的大型部署示例包括数 据库、平台和消息系统,这些系统需要持续运行且不能出现停机状况。
Red Hat OpenStack Platform(RHOSP)
Red Hat OpenStack Platform 为创建、部署并扩展一个安全可靠的公共或私OpenStack 云环境提 供了一个集成的基础。