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 后必须重新定义才会持久化:只改文件而不执行定义命令,宿主重启后配置会回到旧状态。改动前先导出当前定义做备份,验证通过后再进入正式流程。