首页/云/云平台与虚拟化速查/virt-host-validate 宿主健康检查
虚拟化操作94 条

virt-host-validate 宿主健康检查

上线前运行 virt-host-validate 快速核对虚拟化前提:KVM 设备、IOMMU、cgroups、LVM 等逐项给出 PASS/FAIL/WARN 与修复提示。

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

virt-host-validate 是什么

virt-host-validate 是 libvirt 自带的宿主健康检查工具,针对 QEMU(或 LXC)逐项检查硬件虚拟化支持、内核模块、设备节点、cgroup、IOMMU 与锁机制,每项给出 PASS、WARN 或 FAIL 以及处理建议。新宿主上线、内核升级之后,或者虚机莫名其妙起不来时,先跑一遍能快速排除环境层问题,把注意力集中到配置与应用上。

基本信息

用法virt-host-validate [qemu|lxc]
检查项硬件虚拟化、内核模块、设备节点、cgroup、IOMMU、锁机制
输出每项 PASS / WARN / FAIL 并附建议
适用场景新宿主上线、升级内核后回归
退出码存在 FAIL 项时返回非零,便于脚本纳管巡检

典型使用场景

  • 新宿主交付验收前的环境自检
  • 内核或 libvirt 升级后的回归确认
  • 虚机启动失败时先排除环境层问题
  • 排查设备直通失败,确认 IOMMU 是否就绪
  • 批量巡检多台宿主,把结果汇总为健康报表

运行与典型输出

运行与典型输出
sudo virt-host-validate qemu
# 例:QEMU: Checking for hardware virtualization : PASS
#     QEMU: Checking for device /dev/kvm : PASS
#     QEMU: Checking for device assignment IOMMU support : WARN
#     QEMU: Checking for cgroup 'cpu' controller support : PASS
sudo virt-host-validate qemu 2>&1 | grep -E 'FAIL|WARN'   # 只看需要处理的项目

检查项与处理方向

检查项含义处理方向
硬件虚拟化CPU 是否支持且已在固件中开启BIOS/UEFI 打开虚拟化开关
内核模块kvm 与厂商模块是否加载载入模块并配置开机自动加载
设备节点/dev/kvm 是否存在且可访问检查模块与设备权限
cgroup资源控制是否可用按发行版启用对应 cgroup 层级
IOMMU设备直通与隔离是否可用内核参数开启并在固件中启用 VT-d/AMD-Vi
锁机制CPU 与内存热插拔相关锁支持按提示确认内核配置
WARN 不影响基本运行但值得跟进(如未启用 IOMMU 时无法做设备直通),应记录在验收清单里而不是直接忽略。
在容器或受限环境里运行会报缺少设备节点,属预期结果:该工具检查的是宿主内核环境,需要在物理宿主或具备相应权限的命名空间内执行才有意义。
把检查结果纳入交付验收模板:PASS 项留档、WARN 项记录处理计划与责任人、FAIL 项作为上线阻断条件,避免每次巡检都靠人工记忆判断。

易错点

  • 跳过 WARN 项直接上线:IOMMU、cgroup 相关问题在后续才暴露
  • 只在安装当天跑一次,内核升级后环境变化无人复查
  • 在容器里执行后把报错当故障,实际是执行环境不满足检查前提
  • 只看总览不看逐项建议,处理时凭猜测修改内核参数

数据来源与参考

  • libvirt 文档:virt-host-validate
  • libvirt FAQ
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌