virsh domblkinfo 看什么
domblkinfo 输出单块磁盘的三个容量维度:虚拟容量、已分配量与物理块大小,配合 domblklist 就能完成一次磁盘资产巡检。它最实用的地方是核对瘦盘的实际占用——标记 500 GB 的盘,实际分配可能只有 80 GB,做容量报表和存储扩容决策时必须用分配量而不是标记容量。扩容、迁移与快照操作前后,也可以用同一份输出来对比变化。
基本信息
| 适用平台 | 使用 libvirt 的 Linux 宿主,需能访问该域 |
|---|---|
| 单盘信息 | virsh domblkinfo <域> <盘名>,盘名如 vda、vdb |
| 清单细节 | virsh domblklist <域> --details 查看设备类型与来源文件 |
| 输出字段 | Capacity 虚拟容量、Allocation 已分配、Physical 物理块 |
| 典型用途 | 容量盘点、瘦盘膨胀巡检、扩容前后对比 |
| 前置条件 | 域可以运行中,读取运行时信息不受影响 |
典型使用场景
- 容量报表:统计一批虚机的实际磁盘占用,而不是标记容量
- 瘦盘巡检:监控分配量增长趋势,提前发现磁盘膨胀
- 扩容验证:扩容操作后确认容量字段已按预期变化
- 迁移前评估:按实际分配量估算耗时与目标存储需求
- 磁盘资产盘点:核对每台虚机的磁盘数量、类型与来源
- 快照与删除操作后复查:确认空间已按预期释放
磁盘巡检命令组合
磁盘巡检命令组合
virsh list --all # 先拿到域的清单
virsh domblklist vm1 --details # 查看设备类型、目标盘名与来源文件
virsh domblkinfo vm1 vda # 单盘三个容量维度
for d in $(virsh list --name); do echo "== $d"; virsh domblkinfo $d vda 2>/dev/null; done # 批量巡检
qemu-img info /var/lib/libvirt/images/disk.qcow2 | head -6 # 从文件侧交叉验证分配量
# 关注 Allocation 与 Capacity 的差值,判断瘦盘膨胀程度输出字段读法
| 字段 | 含义 | 使用建议 |
|---|---|---|
| Capacity | 磁盘的虚拟容量,即 guest 看到的大小 | 不适合当容量报表口径,瘦盘实际占用通常远小于它 |
| Allocation | 已分配给该镜像的块总量 | 瘦盘容量统计与扩容评估应以它为准 |
| Physical | 底层物理块大小 | 用于判断对齐与性能相关的配置 |
| 设备类型 | 磁盘还是光驱 | 做盘位变更时需要区分,光驱不参与容量盘点 |
| 来源文件 | 镜像存放路径 | 确认文件所在存储池,核对空间与备份覆盖范围 |
在 guest 内删除文件后 Allocation 不会立即下降:需要镜像与文件系统支持 discard 或 UNMAP,并实际触发回收后才会释放。
宿主的 Allocation 与文件系统里看到的文件大小可能不同:稀疏文件的大小与占用并不等价,用 du 与 ls 查看的结果也不一样。