kvm宿主机重启后虚拟机消失

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kvm宿主机重启后虚拟机消失相关的知识,希望对你有一定的参考价值。

现象

一台kvm宿主机重启一次后,发现该虚拟机消失了,没法启动。virsh list --all没有找到这台虚拟机,但是镜像文件还存在。

找到虚拟机的xml文件,重新virsh define xml后才恢复。

分析

原因是因为这台虚拟机的persistent参数为no,即非持久的,当destroy掉或者宿主机重启后,虚拟机就不存在了。

通过virsh dominfo可以查看虚拟机的persistent状态。

后面发现原来这台虚拟机有过人工在线迁移的记录,如果virsh migrate迁移命令没有加--persistent参数,则会导致persistent状态为no。

[root@hosttest ~]# virsh dominfo test
Id: 84
Name: test
UUID: 4220702d-6de3-ad1b-8eae-bbdb2bf3b52d
OS Type: hvm
State: running
CPU(s): 1
CPU time: 1464708.3s
Max memory: 8388608 KiB
Used memory: 2097152 KiB
Persistent: no
Autostart: disable
Managed save: no
Security model: none
Security DOI: 0

处理

除了规范在线迁移方法外,对现有虚拟机,如果virsh dominfo发现有persistent状态为no的,直接virsh define xml即可将persistent状态改回yes。

如下命令可以在所有宿主机上执行,找到有问题虚拟机,然后人工去修复

#!/bin/bash
virsh list --all|tail -n +3 |awk print $2 >/tmp/vmlist.txt
i=0
for line in $(cat /tmp/vmlist.txt);
do
result=virsh dominfo $line |grep -i Persistent |awk print $2
if [ $result = no ]
then
echo "$line"
i=((i+1))
fi
done
if [ $i -gt 0 ]
then
echo "not OK"
else
echo "OK"

fi

以上是关于kvm宿主机重启后虚拟机消失的主要内容,如果未能解决你的问题,请参考以下文章

kvm热添加磁盘,且停机重启kvm虚拟机,文件信息不丢失

Ceph的RBD作为KVM的磁盘安装的虚拟机突然不能启动了

kvm的vm如何迁移?

kvm的vm如何迁移?

解决kvm虚拟机直接访问宿主机器上面某个磁盘问题

kvm虚拟机启动失败