libvirt 是一款开源的虚拟化管理工具,提供了统一的 API 接口,用于管理 KVM、Xen、VMware 等多种虚拟化平台,通过 libvirt,用户可以方便地创建、启动、停止、删除虚拟机,并管理虚拟机的存储、网络等资源,同时支持命令行工具(如 virsh)和图形化界面(如 virt-manager),满足不同场景下的管理需求,本文将详细介绍如何使用 libvirt 安装和管理虚拟机。
安装前准备
在开始安装前,需确保系统满足基本要求并开启虚拟化支持,推荐使用 Linux 发行版(如 Ubuntu 20.04+、CentOS 7+),并确保 CPU 支持虚拟化(可通过 grep -E 'vmx|svm' /proc/cpuinfo 检查,若输出结果包含 vmx 或 svm 标志则支持),关闭 SELinux(临时关闭命令为 setenforce 0)或配置相应策略,避免权限问题,更新系统软件包列表(Ubuntu 执行 sudo apt update,CentOS 执行 sudo yum update),确保依赖包的最新性。
安装 libvirt 及相关组件
libvirt 的安装依赖虚拟化内核模块和管理工具,不同发行版的安装命令略有差异。
Ubuntu/Debian 系统:
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
CentOS/RHEL 系统:
sudo yum install -y qemu-kvm libvirt virt-install virt-manager bridge-utils
安装完成后,启动 libvirt 守护进程并设置开机自启:
sudo systemctl start libvirtd sudo systemctl enable libvirtd
可通过 sudo systemctl status libvirtd 检查服务状态,确保运行正常。
配置网络环境
libvirt 默认使用 NAT 网络模式,虚拟机可通过主机访问外部网络,但外部无法直接访问虚拟机,若需调整网络配置,可编辑默认网络 XML 文件:
- 查看默认网络:
virsh net-list --all - 导出默认网络配置:
virsh net-dumpxml default > default.xml - 修改 default.xml,例如将 DHCP 地址范围扩大或启用 IP 静态绑定:
<dhcp> <range start='192.168.122.100' end='192.168.122.200'/> </dhcp>
- 重新加载网络:
virsh net-define default.xml && virsh net-start default && virsh net-autostart default
若需桥接模式(虚拟机直接通过主机网卡上网),需创建桥接设备并配置网络,此处不再展开,可参考 libvirt 官方文档。
创建虚拟机
libvirt 支持通过命令行(virt-install)和图形化界面(virt-manager)创建虚拟机,此处以命令行为例。
准备镜像文件
下载操作系统镜像(如 Ubuntu Server 22.04 ISO),并将其放置到本地目录(如 /var/lib/libvirt/images/)。
执行 virt-install 命令
以下为创建虚拟机的示例命令,可根据需求调整参数:
sudo virt-install \ --name ubuntu-vm \ # 虚拟机名称 --ram 2048 \ # 分配内存(MB) --vcpus 2 \ # 分配 CPU 核心数 --disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,size=20 \ # 磁盘镜像(20GB) --cdrom /var/lib/libvirt/images/ubuntu-22.04.3-live-server-amd64.iso \ # 系统镜像路径 --os-variant ubuntu22.04 \ # 系统类型(自动优化安装参数) --network network=default \ # 使用默认 NAT 网络 --graphics spice \ # 图形显示协议(可选 vnc) --noautoconsole # 不自动连接控制台
执行命令后,虚拟机将开始自动安装操作系统,可通过 virsh list --all 查看虚拟机状态,若需连接控制台,可使用 virsh console ubuntu-vm(需在系统中安装 guestfish 或 serialconsole 工具)。
虚拟机管理操作
创建完成后,可通过 virsh 命令行工具管理虚拟机:
- 启动虚拟机:
virsh start ubuntu-vm - 关闭虚拟机:
virsh shutdown ubuntu-vm(优雅关机) - 强制关机:
virsh destroy ubuntu-vm - 查看虚拟机状态:
virsh list --all - 删除虚拟机:
virsh undefine ubuntu-vm(仅移除配置,磁盘需手动删除) - 创建快照:
virsh snapshot-create-as ubuntu-vm snap1 --description "Initial snapshot" - 恢复快照:
virsh snapshot-revert ubuntu-vm snap1
常见问题处理
- 权限问题:若提示“权限不足”,需将当前用户添加到 libvirt 用户组:
sudo usermod -a -G libvirt $USER,然后重新登录。 - 网络不通:检查 NAT 网络是否启动,
dnsmasq服务是否正常运行(sudo systemctl status dnsmasq)。 - 磁盘空间不足:可通过
qemu-img resize扩展磁盘:qemu-img resize /var/lib/libvirt/images/ubuntu-vm.qcow2 +10G(扩展 10GB),然后在虚拟机内部分区并扩容文件系统。
通过以上步骤,即可完成 libvirt 的安装及虚拟机的创建与管理,libvirt 凭借其灵活性和可扩展性,适用于个人开发、测试及中小规模生产环境,是虚拟化管理的实用工具。














