在Linux中使用日志文件对KVM虚拟化问题进行故障排除

时间:2020-01-09 10:43:53  来源:igfitidea点击:

主机系统上存储了各种日志文件,以帮助调试与KVM相关的问题。
在本教程中,我将介绍日志文件的位置以及用于跟踪KVM问题的工具。

文件如下:

  • $HOME/.virtinst/virt-install.logvirt-install工具日志文件。
  • $HOME/.virt-manager/virt-manager.logvirt-manager工具日志文件。
  • /var/log/libvirt/qemu /每个正在运行的虚拟机的日志文件。如果centos是虚拟机名称,则日志文件是/var/log/libvirt/qemu/centos.log

您可以使用grep和其他Linux工具来查看以下文件:

# tail -f /var/log/libvirt/qemu/freebsd.log
# grep something $HOME/.virtinst/virt-install.log
$ sudo tail -f /var/log/libvirt/qemu/openbsd.log

输出示例:

2015-11-08 17:14:46.909+0000: starting up libvirt version: 1.3.1, package: 1ubuntu10.5 (Stefan Bader <[email protected]> Thu, 06 Oct 2015 13:07:20 +0200), qemu version: 2.5.0 (Debian 1:2.5+dfsg-5ubuntu10.5), hostname: server1.theitroad.local
....
.....
..
=29,id=hostnet1,vhost=on,vhostfd=30 -device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:8f:31:5f,bus=pci.0,addr=0x4 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -vnc 127.0.0.1:1 -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on
char device redirected to /dev/pts/8 (label charserial0)

连接到控制台

使用virsh命令连接到来宾串行控制台,如下所示:

$ virsh list
$ virsh console freebsd

这对于排除网络等问题很有用,而且还可以从主机本身解决更多问题。
但是,您需要为串行控制台配置来宾操作系统。
查看如何为FreeBSD和CentOS虚拟机设置串行控制台。

KVM配置文件

您可以编辑配置文件来定义VM或者其他设置的硬件属性。
它们位于/etc/libvirt/qemu /目录中。
这是示例FreeBSD来宾配置文件。

# less /etc/libvirt/qemu/freebsd.xml

或者

$ virsh dumpxml freebsd

使用virt-manager或者virt-install创建guest虚拟机时,guest虚拟机配置文件会在/etc/libvirt/qemu /目录中自动创建。
您可以使用此文件错误检查。
您可以使用文本编辑器或者virsh命令本身来编辑此文件:

virsh edit freebsd
virsh edit centos

KVM工具

输入以下命令以安装kvm-tools软件包,其中包含一些针对KVM的诊断和调试工具,例如kvmtrace和kvm_stat,请执行:

# yum -y install kvm_tools

您需要挂载debugfs,执行:

# mount -t debugfs debugfs /sys/kernel/debug
# kvm_stat

使用kvm_stat获取有关KVM的统计信息

您可以使用以下工具使用常规工具进行故障排除并获取其他信息:

  • ps,pstree和top
  • vmstat,iostat和lsof
  • tcpdump,brctl,ip和ifconfig