本文整理了 Linux 虚拟化(基于 KVM/libvirt)常见的 10 个故障场景及使用 virsh 命令进行排错的方法,涵盖 VM 无法启动、连接问题、网络不通、资源不足、快照失败、磁盘损坏、实时迁移失败、性能下降、硬件不兼容以及平台升级等问题。这些场景是日常 云原生/IaaS 运维中的高频排查方向,建议收藏备用。
场景 314:虚拟机(VM)无法启动
问题
虚拟机在虚拟化平台上无法启动。
故障排除步骤
场景 315:虚拟化平台连接问题
问题
无法使用 virsh 等工具连接到虚拟化平台。
故障排除步骤
-
验证 libvirt 服务状态:
systemctl status libvirtd
-
检查 libvirt 守护进程是否运行并监听所需端口:
netstat -tulpn | grep libvirtd
-
查看 libvirt 日志以查找错误:
less /var/log/libvirt/libvirtd.log
-
确保 libvirt 守护进程可以通过防火墙:
firewall-cmd --list-all
场景 316:虚拟机网络连接问题
问题
虚拟机无法相互通信或与外部网络通信。
故障排除步骤
场景 317:虚拟机资源不足
问题
虚拟机性能下降或未获得足够资源。
故障排除步骤
场景 318:虚拟机快照失败
问题
无法为虚拟机创建或应用快照。
故障排除步骤
-
检查虚拟机是否处于运行状态且状态一致。
-
查看存储池的可用空间:
virsh pool-info <storage-pool>
-
查看 libvirt 日志以查找与快照相关的错误:
less /var/log/libvirt/qemu/<vm-name>.log
-
验证存储池的权限:
ls -l /var/lib/libvirt/images/
场景 319:虚拟机磁盘损坏
问题
虚拟机出现磁盘损坏或数据丢失的迹象。
故障排除步骤
场景 320:实时迁移失败
问题
在主机之间实时迁移运行中的虚拟机失败。
故障排除步骤
-
确保两台主机具有相同的 CPU 架构和虚拟化功能。
-
检查主机之间的连接性:
ping <target-host>
virsh nodeping <target-host>
-
验证两台主机都可以访问存储。
-
查看两台主机上的 libvirt 日志以查找与迁移相关的错误。
场景 321:虚拟机性能下降
问题
虚拟机运行缓慢或经历高延迟。
故障排除步骤
- 使用
top 或 htop 等工具监控主机上的 CPU、内存和磁盘使用情况。
- 使用
virsh domstats 检查单个虚拟机的性能。
- 查看日志以查找影响性能的特定错误。
- 考虑优化虚拟机配置或升级硬件资源。
场景 322:不支持的虚拟机硬件
问题
由于不支持或缺少硬件功能,虚拟机无法启动。
故障排除步骤
场景 323:虚拟化平台升级问题
问题
升级虚拟化平台或迁移到 RHEL 的新版本后出现问题。
故障排除步骤
- 查看新虚拟化平台版本的发行说明和文档。
- 检查现有虚拟机配置的兼容性问题。
- 验证所有必要的软件包和依赖项是否已安装。
- 首先在非生产环境中测试迁移或升级。
|