跳转至

KVM排查

在使用 KVM(Kernel-based Virtual Machine)时,当虚拟机异常时,以下是一些常用的命令,可以帮助排查问题:

1. 查看虚拟机状态

  • virsh list --all:列出所有虚拟机的状态(运行中、关闭等)。
  • virsh domstate <VM_NAME>:查看指定虚拟机的状态,例如“running”、 “shut off”、 “paused”等。

2. 查看虚拟机的日志

  • journalctl -u libvirtd:查看与 libvirtd 相关的日志,帮助检查虚拟化服务是否正常。
  • /var/log/libvirt/qemu/<VM_NAME>.log:查看虚拟机的详细日志,通常包含虚拟机启动、运行过程中的错误信息。

3. 检查虚拟机控制台输出

  • virsh console <VM_NAME>:连接到虚拟机的控制台,查看虚拟机的启动日志或错误信息。需要虚拟机配置了串口连接。

4. 查看虚拟机的性能数据

  • tophtop:查看主机上虚拟机占用的 CPU、内存、进程等资源情况。
  • virsh nodeinfo:查看主机的硬件资源使用情况。
  • virsh domstats <VM_NAME>:查看指定虚拟机的 CPU、内存、网络、磁盘等资源使用情况。

5. 查看虚拟机的磁盘状态

  • virsh domblklist <VM_NAME>:列出虚拟机的所有磁盘设备及其状态。
  • qemu-img info <disk_image_path>:查看虚拟机磁盘文件的详细信息,检查是否有磁盘损坏或文件系统问题。

6. 查看虚拟机网络状态

  • virsh domiflist <VM_NAME>:查看虚拟机的网络接口配置。
  • virsh net-list:查看虚拟网络的状态。
  • ifconfigip a:检查虚拟机的网络连接是否正常。

7. 查看系统资源占用

  • free -h:查看主机的内存使用情况。
  • df -h:查看磁盘空间使用情况,检查是否存在磁盘满的问题。
  • iostat:查看 I/O 性能,诊断磁盘的读写瓶颈。

8. 查看虚拟机的资源配置

  • virsh dumpxml <VM_NAME>:查看虚拟机的 XML 配置文件,检查虚拟机的 CPU、内存、磁盘、网络等配置是否正常。

9. 重启虚拟机

  • virsh reboot <VM_NAME>:重启虚拟机,有时重新启动可以解决某些暂时的异常。
  • virsh destroy <VM_NAME>:强制停止虚拟机,通常用于虚拟机无法正常关机时。

10. 检查主机的硬件资源

  • dmesg:查看系统日志,可能会显示硬件或驱动方面的问题。
  • lspci:查看主机的硬件设备列表,帮助检查是否有硬件故障。