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. 查看虚拟机的性能数据
top或htop:查看主机上虚拟机占用的 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:查看虚拟网络的状态。ifconfig或ip 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:查看主机的硬件设备列表,帮助检查是否有硬件故障。