什么是虚拟化?
虚拟化让运行 Centos的机器能够托管(host)多个虚拟机(VM),也称为客户机(guest),VM 使用主机的物理硬件和计算资源,在主机操作系统中作为用户空间进程运行一个独立的虚拟操作系统(客户机操作系统)。换句话说,虚拟化功能使在一个操作系统中执行其他操作系统成为可能。
虚拟化的优点
与使用物理机器相比,使用虚拟机(VM)有以下优点:
-
灵活精细的资源分配
一个虚拟机在主机机器(通常是物理机器)上运行,主机的硬件也可以分配给客户机操作系统使用。但是,物理资源分配是在软件级别上完成的,因此非常灵活。虚拟机使用的主机内存、CPU 或存储空间的比例是可以配置的,可以指定非常精细的资源请求。
例如:客户机操作系统的磁盘可以在主机的文件系统中以一个文件代表,且该磁盘的大小限制比物理磁盘的限制要小。
-
软件控制的配置
虚拟机的整个配置都作为数据保存在主机上,并由软件控制。因此,虚拟机可轻松创建、删除、克隆、迁移、远程操作或连接到远程存储。
-
与主机分离
在虚拟内核中运行的客户机操作系统与主机操作系统分开。这意味着可在虚拟机中安装任何操作系统,即使虚拟机操作系统不稳定或受损,主机也不会受到任何影响。
-
空间及成本效率
单个物理机器可以托管大量虚拟机。因此,无需多个物理机器执行同样的任务,因此降低了与物理硬件关联的空间、电源和维护的要求。
虚拟机组件及其交互
Centos 7 中的虚拟化由以下主要软件组件组成:
-
虚拟机监控程序(Hypervisor)
在 Centos 7 中创建虚拟机(VM)的基础是(hypervisor(虚拟机监控程序) ),它是一个软件层用来控制硬件并在主机中运行多个操作系统。
管理程序包括 基于内核的虚拟机(KVM)模块和虚拟化 内核驱动程序,如 virtio 和 vfio。这些组件可确保主机中的 Linux 内核为用户空间软件提供虚拟化资源。
在用户空间级别,QEMU 模拟器会模拟一个客户机操作系统可以在上面运行的完整虚拟硬件平台,并管理如何在主机中分配资源并提供给客户机。
此外,libvirt 软件套件充当管理和通信层,使 QEMU 更容易与交互、实施安全规则,以及提供用于配置和运行 VM 的许多其他工具。
-
XML 配置
基于主机的 XML 配置文件(也称域 XML 文件)决定了特定虚拟机中的所有设置和设备。配置包括:
- 元数据,如虚拟机名称、时区和其他有关虚拟机的信息。
- 对虚拟机中的设备的描述,包括虚拟 CPU(vCPUS)、存储设备、输入/输出设备、网络接口卡及其他真实和虚拟硬件。
- 虚拟机设置,如它可以使用的最大内存量、重启设置和其他有关虚拟机行为的设置。
有关 XML 配置内容的详情请参考"虚拟机 XML 配置示例和解释"。
-
组件交互
当虚拟机启动时,虚拟机监控程序使用 XML 配置在主机上以用户空间进程的形式创建虚拟机实例。管理程序还使虚拟机进程能被基于主机的接口访问,如 virsh、virt-install 和 guestfish 实用程序,或者 Web 控制台 GUI。
virsh 一个多用途的虚拟化命令行工具程序, 通常用来管理配置虚拟机。
virt-install 用于创建新虚拟机的 CLI 实用程序。
virt-xml 用于编辑虚拟机配置的实用程序。
guestfish 检查和修改虚拟机磁盘镜像的实用程序。当使用这些虚拟化工具时,libvirt 会将它们的输入转换成 QEMU 的指令。QEMU 将指令信息发送到 KVM,这样可确保内核正确分配执行该指令所需的资源。因此,QEMU 可以执行相应的用户空间更改,如创建或修改虚拟机或在虚拟机的客户机操作系统中执行操作。
虚拟化的架构
参考文献
[1] 知识参考来源:redhat虚拟化介绍