fedora虚拟化
系统要求
KVM 要求 CPU 有虚拟化扩展功能,近些年生产的很多 CPU 都具有该类扩展功能。这些扩展功能被称为 Intel VT 或 AMD-V 。使用如下命令检查您的 CPU 是否支持虚拟化:
egrep '^flags.*(vmx|svm)' /proc/cpuinfo
如果没有任何输出,则说明您的系统不支持相关扩展功能。您仍然可以使用 QEMU/KVM ,但是虚拟将只能使用软件虚拟化(想当慢)。
安装虚拟化软件包
su -c "yum install @virtualization"
该命令将安装 qemu-kvm
、python-virtinst
、qemu
、virt-manager
、virt-viewer
以及所有需要的依赖软件包。
su -c “systemctl start libvirtd”
确认所有 kvm 内核模块已正常加载:
$ lsmod | grep kvm
kvm_intel 471040 0
kvm 1486848 1 kvm_intel
irqbypass 12288 1 kvm
如果该命令没有列出 kvm_intel 或 kvm_amd, 则说明 KVM 没有正常配置。确保系统正常使用 KVM 以解决问题。
例如:
重载内核module,if you know,you know.
卸载kvm模块
# 对于Intel处理器
sudo modprobe -r kvm_intel kvm
# 对于AMD处理器
sudo modprobe -r kvm_amd kvm
重新加载 KVM 模块
sudo modprobe kvm
sudo modprobe kvm_intel # 对于Intel处理器
# 或
sudo modprobe kvm_amd # 对于AMD处理器
如出现错误自行查看内核信息
demsg |grep -i kvm
jounalctl -k |grep -i kvm
如果需要嵌套虚拟化,载入kvm虚拟化module时可以加个参数
# 对于Intel处理器
sudo modprobe kvm_intel nested=1
# 对于AMD处理器
sudo modprobe kvm_amd nested=1
如果需要永久生效,用一下命令创建修改module载入的默认参数的配置文件
# 对于Intel处理器
echo "options kvm_intel nested=1" | sudo tee /etc/modprobe.d/kvm.conf
# 对于AMD处理器
echo "options kvm_amd nested=1" | sudo tee /etc/modprobe.d/kvm.conf
网络支持
配置默认的NAT,查看是否存在default
Libvirt 是 Linux 上管理 KVM/QEMU 等虚拟机的通用工具。为了让虚拟机能上网,它默认自带了一个基于 NAT(网络地址转换)的虚拟网络,名字就叫 “default”。能让你的虚拟机通过宿主机(运行虚拟机的电脑)的网络上网,但外界无法直接访问虚拟
sudo virsh net-list --all
如果不存在,使用默认的XML重载
# 1. 重新加载默认网络的XML配置文件(系统自带模板) /usr/share/libvirt/networks/default.xml
sudo virsh net-define /usr/share/libvirt/networks/default.xml
# 2. 设置为开机自动启动
sudo virsh net-autostart default
# 3. 立即启动这个虚拟网络
sudo virsh net-start default
安装创建guest
直接virt-manager图形化安装
su -c "virt-manager"
命令行安装
su -c "/usr/bin/virt-install --prompt"
虚拟机管理
启动虚拟机
例如启动我的rhel9.0
sudo virsh start rhel9.0
显示已运行的虚拟机
sudo virsh list
显示所有包括未运行的虚拟机
sudo virsh list --all
关闭虚拟机
sudo virsh shotdown rhel9.0
强制关闭虚拟机
sudo virsh destroy rhel9.0
将机器快照保存到文件
sudo virsh save rhel9.0 my-snapshot-file
导出机器的xml配置文件输出到终端
virsh dumpxml rhel9.0
拍摄管理快照
拍摄快照
sudo virsh snapshot-create rhel9.0
拍摄快照名为test
sudo virsh snapshot-create-as test rhel9.0
显示虚拟机已有快照
sudo virsh snapshot-list rhel9.0
删除名为test快照
sudo virsh snapshot-delete rhel9.0 test
恢复到指定快照
sudo virsh snapshot-revert rhel9.0 1757256035
查看虚拟机ip信息
sudo virsh domifaddr rhel9.0
console 连接虚拟机
sudo virsh console rhel9.0
按回车如果没反应,则系统没启用该功能,我这边就不配置了,需要的可以自行上网配置