首页/云/云平台与虚拟化速查/libvirt 管理接口与域 XML
虚拟化基础63 条

libvirt 管理接口与域 XML

libvirt 是一套虚拟化管理 API 与守护进程:用统一 XML 描述域、网络与存储池,让 virsh、virt-manager、OpenStack 等以同一接口管理 KVM、Xen 等后端。

云平台与虚拟化速查云更新于 2026-10-13

libvirt 是什么

libvirt 是一套虚拟化管理 API 加守护进程:它用统一的 XML 描述域、网络与存储池,把底层不同的虚拟化后端(KVM、Xen 等)包在同一个接口后面。virsh、virt-manager、OpenStack 与 oVirt 都通过 libvirt 管理虚机,因此学会读域 XML,等于掌握了这些工具的公共语言。

基本信息

守护进程传统为 libvirtd;模块化部署后按驱动拆分为多个守护进程
域定义系统域的 XML 定义文件存放在宿主上的配置目录中
连接 URI系统域与用户域使用不同 URI,权限与可见范围不同
管理对象域、网络、存储池、接口与密钥等
生态工具virsh 命令行、virt-install 装机、图形管理器与云平台
权限模型系统域由 root 管理,普通用户默认看不到系统域资源

确认服务与连接

确认服务与连接
systemctl is-active libvirtd virtqemud 2>/dev/null   # 确认守护进程状态
virsh -c qemu:///system version                        # 查看客户端与服务端版本
sudo virsh list --all                                  # 列出系统域下的全部虚机
virsh -c qemu:///system net-list --all                 # 查看虚拟网络
virsh -c qemu:///system pool-list --all                # 查看存储池

常用连接方式对照

连接用途权限与可见范围
本机系统域管理宿主上的生产虚机需 root 或相应授权,网络与存储池为系统级
本机用户域个人实验与开发当前用户自管,功能受限且与系统域隔离
远端 SSH 连接从管理机管理节点依赖 SSH 免密与网络可达性
远端加密连接跨主机集中管理需要证书体系与端口放行
系统域的虚机由守护进程以 root 权限管理,网络与存储池都是系统级资源;个人桌面实验可用用户域,但功能受限。把实验虚机放进系统域会让权限与资源边界变复杂,建议分开。
手工编辑域 XML 后必须重新定义才会持久化:只改文件而不执行定义命令,宿主重启后配置会回到旧状态。改动前先导出当前定义做备份,验证通过后再进入正式流程。

易错点

  • 普通用户直接执行清单命令看不到系统域虚机:误判虚机消失,实际是权限与连接 URI 的问题
  • 修改域 XML 文件后未重新定义:宿主重启或服务重载后配置回退,改动看似无效
  • 系统域与用户域混用:资源与管理入口分散在两套范围内,排障时难以对齐
  • 升级后守护进程形态变化:仍按旧方式检查单一服务状态,误判服务未启动
  • 存储池未定义就创建虚机:磁盘路径散落,迁移与备份时找不到对应文件

数据来源与参考

  • libvirt 官方文档(libvirt.org)
  • Red Hat 文档:虚拟化入门
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌