玩转KVM:怎么追查KVM故障
1、libvirt的运行日志
在运行libvirt的时候,我们需要获得lbivirt的运行信息,所以我们需要找到他的日志文件。一般情况下,它是在/var/log/libvirt/libvirtd.log路径下。
如果在这个目录下没有发现这个的日志文件,那么就要配置一些libvit的参数了:
(1)编辑文件/etc/libvirt/libvirtd.conf
将日志级别设置为1(调试)
log_level = 1
指定日志输出文件名称
log_outputs=“1:file:/var/log/libvirt/libvirtd.log”
以上的日志的输出级别为debug级别。这个级别的日志是最多的,一般只在开发以及测试的时候使用。
具体输出的格式可以是以下4种形式之一:
x:stderr 输出转到stderr
x:syslog:name 使用syslog作为输出并使用给定name的ident作为标识
x:file:file_path 使用给定的文件路径输出到文件
x:journald 输出转到systemd日志
在所有情况下,x前缀都是最小级别,充当过滤器,在生产运行环境中,日志的级别为info、warn、error、fatal。 以下前面的数字为他们的level:
1 debug
2 info
3 warn
4 error
5 fatal
注意:libvirt日志文件可能会飞速增长。 用户应配置logrotate ,否则您的 /var 文件系统最后会装满内容。
(2)重启libvirt 。
虚拟机Guest操作系统正在运行时可重启 libvirt:
/etc/init.d/libvirtd restart
如果在目录下还是没发现日志文件,那么你可能需要使用一下命令来运行libvirt:
libvirtd --daemon --listen --config /etc/libvirt/libvirtd.conf
2、查看virsh管理qemu虚拟机的信息
在使用virsh管理qemu的虚拟机时候,也是有日志的输出的。
PS: 具体的log在目录/var/log/libvirt/qemu/ 下面,具体的log文件名与虚拟机名字关联。
$ sudo tail -f /var/log/libvirt/qemu/test.log
输出如下:
2016-11-0817:14:46.909+0000: starting up libvirt version: 1.3.1, package: 1ubuntu10.5(Stefan Bader stefan.bader@canonical.com Thu, 06 Oct 2016 13:07:20+0200), qemu version: 2.5.0 (Debian 1:2.5+dfsg-5ubuntu10.5), hostname:server1.cyberciti.biz
…
…
…
=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 -devicevirtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on
char device redirectedto /dev/pts/8 (label charserial0)
3、libvirt的常见错误
问题1:error: Cannot access storage file ‘/root/x.qcow2’ (as uid:107, gid:107): Permission
解决2:
查看qemu用户
1)cat /etc/passwd
qemu❌107:107:qemu user:/:/sbin/nologin
2)ll /root/x.qcow2
-rwxrwxrwx 1 qemu qemu 1957691392 Dec 1 14:16 /root/x.qcow2
3)在各种权限都对的情况下,依然不能create,这样就需要重新调整libvirt的默认权限
sed -i ‘s/#group = “root”/group =“root”/g’ /etc/libvirt/qemu.conf
sed -i ‘s/#user = “root”/user =“root”/g’ /etc/libvirt/qemu.conf
4)最后重启libvirt
service libvirtd restart
问题2:error: Cannot read CA certificate ‘/etc/pki/CA/cacert.pem’: No such file or directory
解决2:
这个是由于libvirt使用了TLS机制,但是没有配置好相关的公钥和私钥。
关于libvirt的TLS机制,见这里:http://wiki.libvirt.org/page/TLSDaemonConfiguration。
1)一个简单的解决办法是将TLS机制关掉,更改/etc/libvirt/libvirtd.conf为:
listen_tls = 0
listen_tcp = 1
2)最后重启libvirt
service libvirtd restart
问题3:virsh start vm1error: Failed to start domain vm1error: Unable to read from monitor: Connection reset by peer
解决3:
在虚拟机运行过程中关闭宿主服务器就有可能导致这种情况出现,由于宿主服务器中的kvm虚拟机控制器与安装在kvm中的虚拟机会话被异常重置,所以我们可以如下解决:
virsh managedsave-remove vm1
virsh start vm1
问题4:查看/var/log/libvirt/qemu/vm1.log下log还报如下错误,Cannot set up guest memory ‘pc.ram’: Cannot allocate memory
解决4:
这个问题可能是分配给vm1分配的内存过大(甚至超过的物理主机的内存大小),或者可能是宿主机没有足够的内存分配给此虚拟机,导致无法启动。
问题5:Define虚拟机时无/usr/bin/kvm
error: Failed to define domain from hostname.xmlerror: Cannot find QEMU binary /usr/bin/kvm: No such file or directory
解决5:
ln -s /usr/libexec/qemu-kvm /usr/bin/kvm
问题6: Unable to load library ‘virt’: libvirt.so
Unable to load library ‘virt’: libvirt.so: cannot open shared object file: No such file or directory
解决6:
在linux下:
ln -s /usr/lib/libvirt.so.0 /usr/lib/libvirt.so
在windows下:
将libvirt-0.dll改名为virt.dll
问题7: error: Refusing to undefine while domain managed save p_w_picpath exists
virsh undefine vm1error: Refusing to undefine while domain managed save p_w_picpath
解决7:
virsh undefine $domain --managed-save
问题8: 启动虚拟机报错
virsh start vm1 error:
Failed to start domain vm1error: internal error process exited while connecting to monitor: Could not access KVM kernel module: No such file or directoryfailed to initialize KVM: No such file or directoryNo accelerator found!
解决8:
上面的提示信息就是因为QEMU在初始化阶段因为无法找到kvm内核模块。
1)# modprobe kvm #载入指定的模块
2)重启电脑,进入bios界面,设置advance选项里面的virtualization标签为Enabled
3)通过命令 lsmod | grep kvm #显示已载入的模块
问题9: 虚拟机迁移问题一
virsh migrate --live 1 qemu+tcp://192.168.0.121 --p2p --tunnelled --unsafe
error: operation failed: Failed to connect to remote libvirt URI qemu+tcp://192.168.0.121
解决9:
在URI后面加上/system,‘system’相当于root用户的访问权限
问题10: 虚拟机迁移问题二
#virsh migrate --live 2 qemu+tcp://192.168.0.121/system --p2p --tunnelled
error: Unsafe migration: Migration may lead to data corruption if disks use cache != none
解决10:
加上–unsafe参数
问题11: 虚拟机迁移问题三
#virsh migrate --live 2 qemu+tcp://192.168.0.121/system --p2p --tunnelled --unsafe
error: Timed out during operation: cannot acquire state change lock
解决11:
启动虚拟机有时也会遇此错误,需要重启libvirt进程
问题12: virsh连接问题
error: Failed to connect socket to ‘/var/run/libvirt/libvirt-sock’: Connection refused(libvirt 进程没有启动,libvirt是一个监听客户端请求的进程)# virsh -c qemu:///system listerror: Failed to connect socket to ‘/var/run/libvirt/libvirt-sock’: Permission denied
error: failed to connect to the hypervisor
解决12:
1)当前用户没有权限,修改/etc/libvirt/libvirtd.conf
unix_sock_rw_perms = 0777
使所有用户都有权限读写
2)最后重启libvirt
service libvirtd restart
问题13:鼠标不同步问题
在安装windows 8,windows 10和windows server 2012 R2的时候发现VNC的鼠标不同步。这给我带来了巨大的麻烦。
解决13:
在经过一番Google后找到了解决办法。对于已经安装好的虚拟机,可以在devices区块添加以下内容并重启虚拟机即可:
在安装虚拟机的时候添加以下内容即可解决鼠标不同步的问题:
–input tablet,bus=usb
问题12:vnc无法传输声音?
解决12:
1)修改 /etc/libvirt/qemu.conf
vnc_allow_host_audio = 1
2)重启libvirt
service libvirtd restart
玩转KVM:怎么追查KVM故障相关推荐
- cento7安装kvm并通过kvm命令行安装centos7
这里写自定义目录标题 一.KVM简介 二.KVM虚拟化平台构建 三.创建虚拟机并安装CentOS7 一.KVM简介 KVM(名称来自英语:Kernel-basedVirtual Machine的缩写, ...
- linux kvm切换器,KVM切换器是什么,看懂这一篇就够
原标题:KVM切换器是什么,看懂这一篇就够 在服务器机房的机架不便于存放多个显示器和键盘的空间里,KVM切换器起着重要的作用.KVM切换器能从本地或远程监视与控制多个计算机与服务器,由键盘.鼠标和显示 ...
- kvm介绍、kvm存储池、kvm快照和克隆、kvm虚拟机基本管理和网络管理
目录 什么是kvm 云计算的定义 云计算的服务类型 虚拟化技术定义 虚拟化的两种方式 kvm虚拟化的原理 kvm虚拟化网络解析 kvm存储池 1.图形的方式去创建使用存储池编辑 编辑 2.命令的方 ...
- 虚拟化技术之KVM,搭建KVM(详细)
首先说一下,KVM是基于硬件辅助的开源全虚拟化解决方案 一.KVM(基于内核的虚拟机)[刚开始是一家以色列的公司开发的,后来红帽觉得KVM很有前景,就把KVM收购了]. 二.KVM包含了一个内核加载模 ...
- linux kvm 桥接模式,kvm的网络桥接模式与快照管理介绍
先确认系统是否支持虚拟化技术 egrep '(vmx|svm)' --color=always /proc/cpuinfo 安装基本需要的组件 yum install -y qemu-kvm brid ...
- kvm技术:kvm虚拟化的安装和应用
文章目录 1:什么是云计算 2:云计算的服务类型 3:为什么要用云计算 4:云计算的基础KVM虚拟化 4.1:什么是虚拟化? 4.2 :linux虚拟化软件的差别 4.3 安装kvm虚拟化管理工具 4 ...
- 虚拟服务器kvm esxi选择,kvm系统(esxi和pve哪个好)
KVM是键盘(Keyboard).显示器(Video).鼠标(Mouse)的缩写.KVM技术的核心思想是:通过适当的键盘.鼠标.显示器的配置,实现系统和网络的集中管理和提. 1. 简单说:kvm是Ke ...
- linux kvm usb设备,KVM客户机使用主机USB设备
有些时候KVM客户机还是要使用USB设备,比如USB密钥等 KVM命令行参数 -usb 打开usb驱动程序,启动客户机usb支持 -usbdevice devname 为客户机增加usb设备,devn ...
- 服务器连接kvm不显示,kvm切换器使用中易出现问题及简单解决方式
一.初次连接使用KVM切换器,KVM切换器不能正常工作 答:请按照以下步骤重新连接KVM切换器 1.断开KVM切换器的电源输入以及显示器.键盘.鼠标 2.断开所有与KVM切换器相连接的KVM信号线 3 ...
最新文章
- Android应用开发基础篇(12)-----Socket通信(转载)
- Linux 格式化分区 报错Could not stat --- No such file or directory 和 partprobe 命令
- 知识小结(浮点数问题)
- DOM对象与Jquery对象区别
- React 毁了 Web 开发?
- 怎样为深度学习系统选择GPU
- python3字典值重复统计_如何从字典列表中获取值-python 3.7.1[重复]
- 练习12——二叉树与表达式
- 如何实现Iframe透明
- 内存时序对应的4个参数你们知道吗?ICMAX一文让你看懂
- 将lrc批量转换为txt,同时删除时间标签
- 梦幻西游html源码,index.html
- CANopen高级协议详解
- mysql索引的子部分_Mysql索引数据结构详解及性能调优
- Browser-Solidity的本地安装及使用介绍
- EasyUI项目之门户(添加查询购物车与清空购物车)
- 一图抵千言《ARouter简明扼要原理分析》
- 第164篇,陌生人和贵人(扶摇生财思维)
- 神经系统图 基本结构图,大脑神经网络结构图片
- mysql5.0忘记root密码_【咨询】mysql忘记root密码的处理方法(5.5/5.0)
热门文章
- STM32L系列flash操作陷阱
- 【IDF】古老的邮件编码
- 通俗理解稀疏性sparsity假设:历史、数学表示、物理意义
- 思科路由交换学习笔记 - CCNP CCIE.安全DMVPN
- linux tkinter安装,Python的Tkinter库的安装--Debian
- Excel XP数据分析应用指南
- 浅谈频率学派和贝叶斯学派
- 生存还是毁灭?蒙牛30亿美元狂撒奥运背后的生死抉择
- cmake gui安装教程_CMake安装使用教程
- 拼多多APP商品详情接口获取activity_id值(拼多多activity_id接口)