RHCE 必考考点:RHEL 9 KVM虚拟化配置全流程

大家好,欢迎回到RHCE9学习笔记系列。这是本系列的最后一篇文章,我们将一起探索Linux世界中最核心的虚拟化技术——KVM(Kernel-based Virtual Machine) 。经过前面十一篇文章的学习,我们已经掌握了从基础命令到自动化运维的完整知识体系。今天,我们将把这些知识应用到虚拟化环境中,学习如何在RHEL 9上创建、管理和使用虚拟机。
虚拟化是现代数据中心的基础。无论是公有云、私有云,还是容器平台,底层都离不开虚拟化技术的支撑。掌握KVM,不仅能让你更好地理解虚拟化原理,还能为学习OpenStack、容器等高级技术打下坚实基础。
1. 虚拟化基础概念
1.1 什么是虚拟化
虚拟化是一种资源管理技术,它将物理资源(CPU、内存、磁盘、网络)抽象为逻辑资源,允许多个操作系统(称为虚拟机)在同一台物理机上同时运行,彼此隔离。虚拟化的核心组件是Hypervisor (虚拟机监视器),它负责管理物理资源并分配给各个虚拟机。
1.2 虚拟化类型
- Type 1(裸金属虚拟化) :Hypervisor 直接运行在硬件上,没有宿主机操作系统。例如 VMware ESXi、Microsoft Hyper-V、KVM(虽然KVM运行在Linux内核中,但通常也被视为Type 1)。
- Type 2(宿主型虚拟化) :Hypervisor 运行在操作系统之上,如 VMware Workstation、VirtualBox。
KVM 是 Linux 内核的一部分,它将 Linux 内核转变为一个 Type 1 Hypervisor,兼具性能和灵活性,是 RHEL 官方支持的虚拟化解决方案。
1.3 RHEL 虚拟化架构
RHEL 的虚拟化栈由以下组件构成:
- KVM :内核模块,提供核心虚拟化能力(CPU、内存虚拟化)。
- QEMU :用户空间程序,模拟硬件设备(磁盘、网络、USB等)。
- libvirt :管理 API 和服务,提供统一的管理接口。
- 管理工具 :
<span leaf="">virsh</span>(命令行)、<span leaf="">virt-manager</span>(图形界面)、<span leaf="">virt-install</span>(虚拟机创建)。
2. 检查硬件虚拟化支持
KVM 需要 CPU 支持硬件虚拟化扩展(Intel VT-x 或 AMD SVM)。
2.1 检查 CPU 虚拟化支持
# Intel CPUgrep -e 'vmx' /proc/cpuinfo
# AMD CPUgrep -e 'svm' /proc/cpuinfo
如果有输出,说明 CPU 支持虚拟化。
2.2 检查 KVM 模块是否加载
lsmod | grep kvm
输出示例:
kvm_intel 409600 0kvm 1134592 1 kvm_intelirqbypass 16384 1 kvm
如果没有输出,可能需要加载模块:
modprobe kvmmodprobe kvm_intel # Intel CPU# 或modprobe kvm_amd # AMD CPU
3. 安装 KVM 及相关组件
在 RHEL 9 上安装 KVM 非常简单,只需几个命令:
# 安装 KVM、QEMU 和 libvirtdnf install -y qemu-kvm libvirt virt-install virt-manager virt-viewer
# 安装其他辅助工具dnf install -y virt-top libguestfs-tools
<span leaf="">qemu-kvm</span>:QEMU 的 KVM 加速版本<span leaf="">libvirt</span>:虚拟化管理守护进程<span leaf="">virt-install</span>:命令行创建虚拟机的工具<span leaf="">virt-manager</span>:图形化管理工具<span leaf="">virt-viewer</span>:VNC/SPICE 客户端<span leaf="">virt-top</span>:类似 top 的虚拟机监控工具
4. 启动并配置 libvirt
4.1 启动 libvirtd 服务
systemctl start libvirtdsystemctl enable libvirtd
4.2 验证服务状态
systemctl status libvirtd
4.3 查看默认网络
libvirt 会创建一个默认的 NAT 网络(virbr0),用于虚拟机与外部通信:
virsh net-list# 输出示例:# Name State Autostart Persistent# ----------------------------------------------------------# default active yes yes
ip addr show virbr0
5. 配置网桥(Bridge)
默认的 NAT 网络可以让虚拟机访问外网,但外网无法直接访问虚拟机。如果需要虚拟机与宿主机在同一网段(如部署服务),需要配置网桥。
5.1 使用 nmcli 创建网桥
# 创建网桥接口nmcli connection add type bridge con-name br0 ifname br0
# 配置网桥 IP(可选,如果不配则从 DHCP 获取)nmcli connection modify br0 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual
# 将物理网卡 ens160 添加到网桥nmcli connection add type bridge-slave con-name bridge-slave-ens160 ifname ens160 master br0
# 激活网桥nmcli connection up br0
5.2 验证网桥
ip addr show br0bridge link show
6. 创建虚拟机
6.1 准备操作系统镜像
从官方源下载 ISO 镜像,例如 RHEL 9 的安装镜像:
wget https://access.redhat.com/downloads/content/rhel-9/.../rhel-9.0-x86_64-dvd.isomv rhel-9.0-x86_64-dvd.iso /var/lib/libvirt/images/
6.2 使用 virt-install 命令行创建
<span leaf="">virt-install</span> 是创建虚拟机的命令行工具,适合脚本化部署。
virt-install \ --name rhel9-vm \ --memory 2048 \ --vcpus 2 \ --disk path=/var/lib/libvirt/images/rhel9-vm.qcow2,size=20 \ --cdrom /var/lib/libvirt/images/rhel-9.0-x86_64-dvd.iso \ --os-variant rhel9.0 \ --graphics vnc,listen=0.0.0.0 \ --network bridge=br0 \ --noautoconsole
参数说明:
<span leaf="">--name</span>:虚拟机名称<span leaf="">--memory</span>:内存大小(MB)<span leaf="">--vcpus</span>:CPU 核心数<span leaf="">--disk</span>:磁盘路径和大小(GB),格式 qcow2 支持快照<span leaf="">--cdrom</span>:ISO 镜像路径<span leaf="">--os-variant</span>:操作系统类型(可通过<span leaf="">osinfo-query os</span>查看)<span leaf="">--graphics</span>:图形协议(VNC 或 SPICE)<span leaf="">--network</span>:网络类型(bridge 或 network)<span leaf="">--noautoconsole</span>:不自动打开控制台
6.3 使用 virt-manager 图形界面创建
在 X11 环境下,可以启动图形管理工具:
virt-manager
界面操作直观,适合初学者。点击“新建虚拟机”,按向导完成配置即可。
7. 虚拟机管理 – virsh 命令
<span leaf="">virsh</span> 是 libvirt 的命令行管理工具,功能强大,是管理虚拟机的核心命令。
7.1 基本操作
# 列出所有虚拟机(包括运行和停止的)virsh list --all
# 启动虚拟机virsh start rhel9-vm
# 关闭虚拟机(正常关机)virsh shutdown rhel9-vm
# 强制关闭(断电)virsh destroy rhel9-vm
# 重启虚拟机virsh reboot rhel9-vm
# 设置开机自启virsh autostart rhel9-vmvirsh autostart --disable rhel9-vm # 取消自启
7.2 查看虚拟机信息
# 查看虚拟机配置virsh dominfo rhel9-vm
# 查看虚拟机详细配置(XML格式)virsh dumpxml rhel9-vm
# 查看虚拟机磁盘信息virsh domblklist rhel9-vm
7.3 连接虚拟机控制台
对于没有图形界面的虚拟机,可以使用串行控制台:
# 在虚拟机中需要配置串行控制台(grub 添加 console=ttyS0)virsh console rhel9-vm# 按 Ctrl+] 退出
7.4 虚拟机快照
快照可以保存虚拟机在某个时刻的状态,方便回滚。
# 创建快照virsh snapshot-create-as rhel9-vm --name clean-install
# 列出快照virsh snapshot-list rhel9-vm
# 恢复到快照virsh snapshot-revert rhel9-vm clean-install
# 删除快照virsh snapshot-delete rhel9-vm clean-install
7.5 克隆虚拟机
# 完整克隆(创建独立副本)virt-clone --original rhel9-vm --name rhel9-clone --file /var/lib/libvirt/images/rhel9-clone.qcow2
8. 虚拟机磁盘管理
8.1 磁盘格式
- raw :原始格式,性能最好,但不支持快照,占用实际大小。
- qcow2 :QEMU 的 Copy-On-Write 格式,支持快照、压缩、加密,支持稀疏文件(只占用实际使用的大小),推荐使用。
8.2 创建磁盘
# 创建 qcow2 磁盘qemu-img create -f qcow2 /var/lib/libvirt/images/new-disk.qcow2 10G
# 查看磁盘信息qemu-img info /var/lib/libvirt/images/new-disk.qcow2
8.3 添加磁盘到虚拟机
# 热添加磁盘(虚拟机运行时)virsh attach-disk rhel9-vm /var/lib/libvirt/images/new-disk.qcow2 vdb --live --config
# 永久添加(修改配置)virsh attach-disk rhel9-vm /var/lib/libvirt/images/new-disk.qcow2 vdb --config
8.4 调整磁盘大小
# 增加磁盘容量(需要先在宿主机操作)qemu-img resize /var/lib/libvirt/images/rhel9-vm.qcow2 +10G
# 在虚拟机中扩展文件系统# 需要进入虚拟机,使用 xfs_growfs 或 resize2fs
9. 虚拟机网络配置
9.1 网络类型
- NAT(Network Address Translation) :虚拟机通过宿主机的 IP 访问外网,外网无法直接访问虚拟机。默认网络
<span leaf="">default</span>就是 NAT 模式。 - Bridge(网桥) :虚拟机直接与宿主机在同一网络,可以拥有独立 IP。
- Host-only :虚拟机与宿主机之间形成一个私有网络,无法访问外网。
9.2 查看网络
virsh net-list --allvirsh net-dumpxml default
9.3 创建自定义网络
创建桥接网络配置文件 <span leaf="">/etc/libvirt/qemu/networks/mynet.xml</span>:
<network> <name>mynet</name> <bridge name="virbr1"/> <forward mode="nat"/> <ip address="192.168.100.1" netmask="255.255.255.0"> <dhcp> <range start="192.168.100.100" end="192.168.100.200"/> </dhcp> </ip></network>
定义并启动网络:
virsh net-define /etc/libvirt/qemu/networks/mynet.xmlvirsh net-start mynetvirsh net-autostart mynet
10. 实战:创建一台 CentOS 9 Stream 虚拟机
让我们将所学知识整合起来,创建一个 CentOS 9 Stream 虚拟机。
10.1 下载 ISO 镜像
wget https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/iso/CentOS-Stream-9-latest-x86_64-dvd1.isomv CentOS-Stream-9-latest-x86_64-dvd1.iso /var/lib/libvirt/images/
10.2 创建虚拟机
virt-install \ --name centos9 \ --memory 2048 \ --vcpus 2 \ --disk path=/var/lib/libvirt/images/centos9.qcow2,size=20 \ --cdrom /var/lib/libvirt/images/CentOS-Stream-9-latest-x86_64-dvd1.iso \ --os-variant centos-stream9 \ --graphics vnc,listen=0.0.0.0 \ --network network=default \ --noautoconsole
10.3 查看虚拟机状态
virsh list --all# 输出:# Id Name State# -------------------------# 5 centos9 running
10.4 获取 VNC 端口
virsh vncdisplay centos9# 输出::1
使用 VNC 客户端连接宿主机的 IP 和端口(如 5901)完成系统安装。
10.5 安装完成后连接
# 查看虚拟机 IP(如果有 DHCP)virsh domifaddr centos9
10.6 设置开机自启
virsh autostart centos9
11. 监控与性能优化
11.1 使用 virt-top 监控
virt-top
类似 <span leaf="">top</span>,可以实时查看虚拟机的 CPU、内存、磁盘 I/O 使用情况。
11.2 调整 CPU 亲和性
将虚拟机绑定到特定的物理 CPU 核心,提升性能:
virsh vcpupin centos9 0 2 # 将 vCPU 0 绑定到物理 CPU 2virsh vcpupin centos9 1 3 # 将 vCPU 1 绑定到物理 CPU 3
11.3 内存优化
启用 KSM(Kernel Same-page Merging)可以合并相同的内存页,减少内存占用:
systemctl start ksmsystemctl enable ksm
12. VMware Workstation 在 RHEL 9 上的安装(补充)
虽然 KVM 是 RHEL 原生的虚拟化方案,但有时我们也需要在 Linux 上运行 VMware Workstation。安装步骤如下:
12.1 下载安装包
wget https://download3.vmware.com/software/WKST-1702-LX/VMware-Workstation-Full-17.0.2-21581411.x86_64.bundle
12.2 安装依赖
dnf groupinstall "Development Tools"dnf install -y elfutils-libelf-devel kernel-devel
12.3 执行安装
chmod +x VMware-Workstation-Full-17.0.2-21581411.x86_64.bundle./VMware-Workstation-Full-17.0.2-21581411.x86_64.bundle
总结与展望
本篇我们系统学习了 RHEL 9 虚拟化技术:
- 虚拟化基础 :KVM、QEMU、libvirt 的架构关系
- 环境准备 :检查 CPU 支持、安装 KVM 组件
- 网络配置 :NAT 与 Bridge 模式的配置方法
- 虚拟机创建 :
<span leaf="">virt-install</span>命令行和<span leaf="">virt-manager</span>图形界面 - 虚拟机管理 :
<span leaf="">virsh</span>常用命令、快照、克隆、磁盘管理 - 性能优化 :CPU 绑定、KSM 内存去重
- VMware 安装 :在 RHEL 9 上安装 VMware Workstation
至此,我们的 RHCE9 学习笔记系列已全部完成。我们从 Linux 基础入门开始,经历了文件操作、权限管理、进程服务、软件包、网络配置、防火墙安全、存储管理、Shell 脚本、计划任务、Ansible 自动化,最后以虚拟化收尾。这条学习路径覆盖了 RHCE 考试的核心知识点,也包含了实际运维工作中的常用技能。
希望这个系列的文章能对你有所帮助。Linux 的学习之路没有终点,唯有不断实践、不断探索,才能真正掌握它。如果在学习过程中有任何疑问,欢迎在评论区交流讨论。
祝你学习顺利,早日通过 RHCE 认证!
往期回顾:
RHCE认证考试学习(十一):计划任务与Ansible自动化
RHCE认证学习笔记(八):防火墙与SELinux,筑牢系统安全防线
RHCE认证学习笔记(六):软件包管理 – 从RPM到YUM仓库
标题:RHCE 必考考点:RHEL 9 KVM虚拟化配置全流程
作者:shuaiqijun
地址:https://www.shuaiqijun.com/articles/2026/03/26/1774505113344.html