661 字
3 分钟
KVM-QEMU-Libvirt安装记录
软件介绍
KVM(Kernel-based Virtual Machine)
- 是Linux内核中的一个虚拟化模块,基于CPU硬件虚拟化。
QEMU (Quick Emulator)
- 提供了完整的虚拟化功能,包括硬件设备的模拟、虚拟机的启动和管理等
- 一个用于虚拟化管理的开源 API、守护进程和工具集。
- 提供命令行工具(如
virsh)或者图形用户界面(如virt-manager)来管理虚拟化资源
- 提供命令行工具(如
前期工作
电脑主板中开启cpu虚拟化支持,不懂自己去🔍
安装软件包
# 更新软件源sudo pacman -Syy
# 安装软件包sudo pacman -S qemu-full qemu-emulators-full virt-manager dnsmasq vde2 bridge-utils libvirt- vde2: 一个虚拟化的网络交换机
- bridge-utils: 网络配置工具
配置操作
libvirt用户组
# 将用户加入libvirt组,但有一些virsh net命令还是需要sudo执行# 我为了省事配置了bash alias; alias virsh='sudo virsh'sudo usermod -aG libvirt $USER配置libvirtd服务自启动
sudo systemctl enable --now libvirtd.service配置nat网络和仅主机网络
qemu网络配置文件路径:/etc/libvirt/qemu/networks/
[lee@Arch-8845 ~]$ tree /etc/libvirt/qemu/networks//etc/libvirt/qemu/networks/├── autostart│ ├── default.xml -> /etc/libvirt/qemu/networks/default.xml│ └── host-only.xml -> /etc/libvirt/qemu/networks/host-only.xml├── default.xml└── host-only.xml
2 directories, 4 files地址规划:
-
192.168.100.0/24 为仅主机网络
-
192.168.200.0/24 为NAT网络
配置default(NAT) 网络
# 配置私网网段sudo EDITOR=vim virsh net-edit default配置 host-only 仅主机网络
思路:将default.xml文件复制一份,命名为host-only.xml,编辑host-only.xml,
- 修改forward块,mode=“none”;
- 删除uuid块
- 删除mac address块
[lee@Arch-8845 ~]$ sudo virsh net-define /etc/libvirt/qemu/networks/host-only.xml从 /etc/libvirt/qemu/networks/host-only.xml定义网络host-only
[lee@Arch-8845 ~]$sudo virsh net-start host-only网络 host-only 已开始
[lee@Arch-8845 ~]$ sudo virsh net-autostart host-only网络host-only标记为自动启动结果如下
[lee@Arch-8845 ~]$ virsh net-dumpxml default<network> <name>default</name> <uuid>c74f4b4a-2993-4cfa-aeec-bb7024026587</uuid> <forward mode='nat'> <nat> <port start='1024' end='65535'/> </nat> </forward> <bridge name='virbr1' stp='on' delay='0'/> <mac address='aa:bb:cc:dd:ee:ff'/> <ip address='192.168.200.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.200.2' end='192.168.200.254'/> </dhcp> </ip></network>
[lee@Arch-8845 ~]$ virsh net-dumpxml host-only<network> <name>host-only</name> <uuid>b428106d-8deb-4b09-a201-8fc672309877</uuid> <bridge name='virbr0' stp='on' delay='0'/> <mac address='ff:ee:dd:cc:bb:aa'/> <ip address='192.168.100.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.100.2' end='192.168.100.254'/> </dhcp> </ip></network>配置libvirt防火墙后端
现在新的firewalld默认使用nftables作为后端,libvirt默认配置的防火墙后端是iptables,这里需要修改一下
firewall_backend = "nftables"配置主机防火墙
这块主要是允许NAT网络地址段允许KVM虚拟机访问宿主机的服务如DNS,科学等工具
这里网段根据你自己的设置修改
sudo firewall-cmd --permanent --zone=public --add-source=192.168.200.0/24sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.200.0/24" accept'sudo firewall-cmd --reload设置网络自启动
sudo virsh net-autostart defaultsudo virsh net-autostart host-only重启libvirtd服务
sudo systemctl restart libvirtd.service后续的相关学习视频
了解virsh命令
这个UP主可以关注一下,浪潮的大佬