基于RHEL 9 搭建 KVM 虚拟化环境
一、准备工作
1. 检查硬件虚拟化支持
KVM 要求处理器支持硬件虚拟化技术:Intel VT-x(虚拟化技术扩展)或 AMD-V(虚拟化技术扩展)。
检查方法:
使用以下命令检查 CPU 是否支持虚拟化:
egrep '(vmx|svm)' /proc/cpuinfo
输出含有
vmx的为 Intel 处理器支持虚拟化输出含有
svm的为 AMD 处理器支持虚拟化
注意:如果没有输出,可能需要进入 BIOS 并启用虚拟化技术(Intel VT-x 或 AMD-V)。
2. 更新系统
在安装软件包之前,先确保 RHEL 9 系统是最新的。
sudo dnf update -y
二、安装 KVM 和虚拟化工具
在 RHEL 9 中,虚拟化软件包可以通过软件组来安装,包含 KVM 核心组件和其他工具。
1. 安装 KVM 和相关组件
运行以下命令安装 KVM、libvirt(虚拟机管理工具)、virt-install(命令行安装虚拟机工具)和 virt-manager(图形界面虚拟机管理工具)。
sudo dnf install -y @virtualization
sudo dnf install -y virt-install virt-manager libvirt libvirt-devel qemu-kvm
安装包解释:
@virtualization:安装虚拟化相关软件组virt-install:命令行工具,用于创建虚拟机virt-manager:图形化界面管理虚拟机的工具libvirt:虚拟机管理工具,提供服务管理 KVMlibvirt-devel:用于开发的库qemu-kvm:QEMU(Quick Emulator)是 KVM 的默认虚拟机管理程序(Hypervisor)
三、启动和配置 KVM 服务
1. 启动 libvirtd 服务
libvirt 是 KVM 的核心服务,负责管理虚拟机的生命周期。
sudo systemctl enable --now libvirtd
enable:设置开机自启--now:立即启动服务
你可以用以下命令检查服务是否正在运行:
sudo systemctl status libvirtd
2. 加入 libvirt 组(可选)
为了简化操作,将当前用户加入 libvirt 组,这样无需使用 sudo 就能管理虚拟机。
sudo usermod -aG libvirt $(whoami)
newgrp libvirt
3. 验证 KVM 内核模块是否加载
验证 KVM 内核模块(kernel module)是否正确加载:
sudo lsmod | grep kvm
输出中应该有类似如下的内容:
kvm_intel 32768 0
kvm 90112 1 kvm_intel
其中:
kvm_intel表示这是 Intel 的虚拟化模块对于 AMD 的处理器,则是
kvm_amd
如果没有看到相应模块,说明 KVM 模块未加载,可以手动加载:
sudo modprobe kvm
四、网络配置(可选,桥接网络)
虚拟机默认通过 NAT 网络访问外部网络。如果希望虚拟机能作为局域网中的独立主机,使用桥接网络会更合适。
1. 安装桥接工具
sudo dnf install -y bridge-utils
2. 创建桥接网络
首先创建一个新的网桥接口。你可以修改现有的网络连接,或者添加新的桥接。
使用 NetworkManager 创建桥接:
打开
/etc/NetworkManager/system-connections/目录,并找到现有的网络连接配置文件(文件名格式类似于eno1.nmconnection)。编辑该文件,将
type设置为bridge。
[connection]
id=bridge0
type=bridge
interface-name=br0
[bridge]
stp=false
重启 NetworkManager:
sudo systemctl restart NetworkManager
配置完成后,可以使用
ip addr或nmcli命令查看网桥是否创建成功。
五、创建虚拟机
可以使用命令行工具 virt-install 或图形化工具 virt-manager 来创建和管理虚拟机。
1. 使用命令行工具 virt-install 创建虚拟机
假设有一个 RHEL 9 的 ISO 镜像文件在 /var/lib/libvirt/images/rhel-9.iso,并希望创建一台虚拟机。
sudo virt-install \
--name=rhel-vm \
--ram=4096 \
--vcpus=4 \
--os-type=linux \
--os-variant=rhel9.0 \
--cdrom=/var/lib/libvirt/images/rhel-9.iso \
--network bridge=br0 \
--disk path=/var/lib/libvirt/images/rhel-vm.qcow2,size=20 \
--graphics=none \
--console pty,target_type=serial
参数解释:
--name=rhel-vm:虚拟机名称--ram=4096:分配 4GB 内存--vcpus=4:分配 4 个虚拟 CPU 核心--os-type=linux:操作系统类型--os-variant=rhel9.0:指定 RHEL 9 版本--cdrom=/path/to/iso:指定 ISO 镜像--network bridge=br0:使用br0网桥网络--disk path=/path/to/disk,size=20:指定虚拟硬盘位置及大小(20GB)--graphics=none:无图形化界面(使用命令行安装)--console pty,target_type=serial:使用串行终端
2. 使用图形化工具 virt-manager
在终端中运行
virt-manager:sudo virt-manager
通过图形化界面创建虚拟机,步骤包括:
选择
本地安装媒体。指定 ISO 镜像文件。
分配内存和 CPU。
配置虚拟硬盘大小和位置。
选择网络类型(默认 NAT,或者桥接网桥)。
六、虚拟机的管理
1. 使用 virsh 管理虚拟机
virsh 是 libvirt 提供的命令行工具,用于管理虚拟机的生命周期。
查看虚拟机状态:
sudo virsh list --all
启动虚拟机:
sudo virsh start rhel-vm
关闭虚拟机:
sudo virsh shutdown rhel-vm
强制停止虚拟机:
sudo virsh destroy rhel-vm
删除虚拟机:
sudo virsh undefine rhel-vm
设置虚拟机开机自动启动:
sudo virsh autostart rhel-vm
七、其他常见问题与解决方案
1. KVM 无法启动虚拟机?
检查
libvirtd服务是否正常运行:sudo systemctl status libvirtd
确认 CPU 是否支持虚拟化,并且虚拟化技术在 BIOS 中启用。
2. 图形界面无法使用?
确保安装了
virt-manager,并正确启动 X11 会话(远程服务器可能需要 X forwarding 配置)。
3. 网络无法连通?
检查网络设置,特别是桥接网络的配置,确保虚拟机使用正确的桥接接口。
基于RHEL 9 搭建 KVM 虚拟化环境的更多相关文章
- kvm虚拟化学习笔记(一)之kvm虚拟化环境安装
平时一直玩RHEL/CentOS/OEL系列的操作,玩虚拟化也是采这一类系统,kvm在RHEL6系列操作系统支持比较好,本文采用采用OEL6.3操作系统,网上所有文章都说KVM比xen简单,我怎么感觉 ...
- 配置基于Devstack的嵌套KVM虚拟化
本文为minxihou的翻译文章,转载请注明出处Bob Hou: http://blog.csdn.net/minxihou JmilkFan:minxihou的技术博文方向是 算法&Open ...
- 基于 Jenkins 快速搭建持续集成环境--转
源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...
- kvm虚拟化环境的搭建
首先搭建kvm的虚拟化环境,我选择的环境是在vmvare上的Centos 7的虚拟机,在该环境上搭建kvm的虚拟化环境 1:安装虚拟机(该过程自行安装) 2:操作系统环境的设置 (1)修改内核模式为兼 ...
- CentosX64使用yum快速搭建xen虚拟化环境
Xen的大名想必已经被众SA所熟知.Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发.它打算在单个计算机上运行多达100个满特征的操作系统.操作系统必须进行显式地修改(“移植”)以在Xen上运行( ...
- KVM虚拟化环境准备
1. 概述2. 环境准备2.1 硬件环境2.2 软件环境2.2.1 YUM安装软件包2.2.2 环境检查2.2.3 启动libvirtd服务2.3 网络环境2.3.1 复制网卡配置文件2.3.2 修改 ...
- 基于 Webpack 4 搭建 Vue 开发环境
自从工作之后,就已经很久没有写过博客了.时间被分割得比较碎,积累了一段时间的学习成果,才写下了这篇博客. 之前有写过 Webpack4 的文章,但是都比较偏入门,唯一的一篇实战篇 -- 基于Webpa ...
- [转] 基于Gitlab CI搭建持续集成环境
[From] https://blog.csdn.net/wGL3k77y9fR1k61T1aS/article/details/78798577 前言 本文是在12月12号迅雷@赵兵在前端早读课第三 ...
- 基于 Jenkins 快速搭建持续集成环境
什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火 ...
- 基于ARM64的Qemu/KVM学习环境搭建
作者:pengdonglin137@163.com 在没有aarch64架构的开发板的情况下,可以使用Qemu来模拟一个支持KVM的AArch64位的host,然后再在其上运行一个开启KVM加速的Qe ...
随机推荐
- CF941
A link 其实,只要有第一次,那么下次随意找一个队列里有的数加\(k-1\)个进去,加上队列里那一个删掉\(k\)个,到最后一次肯定是剩\(k-1\)个. 没有第一次,就是\(n\). 点击查看代 ...
- 新年切红包-scratch小游戏
程序说明: <新年切红包>是一款Scratch制作的小游戏,灵感来源于流行的切水果游戏.在这个游戏中,玩家需要用鼠标切割屏幕上不断飞出的红包,切割到红包将获得金币奖励,而切割到爆竹则会导致 ...
- 云计算:Docker-compose快速部署前后端项目
| 更好的观看效果请前往,原文博客地址:https://www.zeker.top/posts/338829e1/ 介绍 Docker Compose 是官方编排的项目之一,负责快速的部署分布式应用. ...
- C++命名空间、标准输入输出、引用
1.简述C++中命名空间的作用. 答:避免重复定义全局变量的问题. 2.定义两个命名空间A 和 B 分别在A中和B中定义变量value.在main函数中将两个空间的value打印出来. #includ ...
- CentOS-7离线安装policycoreutils-python
1.下载相关安装包 policycoreutils-2.5-34.el7.src.rpm 快速下载地址:https://vault.centos.org/7.9.2009/os/x86_64/Pack ...
- 【MySQL】MGR高可用搭建
MySQL8.0.27如何安装 https://www.cnblogs.com/mindzone/p/15450312.html 部署过程中各种问题可参考的解决方案 我遇见的搭建问题,解决方案参考下面 ...
- 【SpringBoot】03 自动装配原理探索
SpringBoot的依赖探索 首先是一个父级依赖管理的pom.xml [Ctrl + 左键点击]访问进去之后还有父级的父级 到最后才是我们的真正的顶级父类Pom.xml 我们当前的父级坐标 < ...
- 【ActiveJdbc】01 入门
官方快速上手文档: https://javalite.io/activejdbchttps://javalite.io/getting_started 完整介绍: https://javalite.i ...
- 关于Isaac Gym的两个版本比较:IsaacGymEnvs/omni.isaac.gym
原文地址: https://zhuanlan.zhihu.com/p/590468555 重点: IsaacGymEnvs (IGE)和 omni.isaac.gym (OIG)是两个东西. 原文内容 ...
- NVIDIA 创始人黄仁勋谈创建公司的最初6个月 —— 不要去写商业计划书
地址: https://www.youtube.com/watch?v=yU3GUHDf0mk