libvirtError 该域已存在,但 virsh 列表未显示它

libvirtError 该域已存在,但 virsh 列表未显示它

当我尝试使用 OpenStack 启动实例时,nova-compute.log 中出现以下错误:

(nova.rpc): TRACE: libvirtError: operation failed: domain 'instance-0000000a' already exists with uuid 5f81a7d2-1b0f-8c72-4e1e-377c275e9289

但是,virsh 没有显示任何域:

$ sudo virsh list
 Id Name                 State
----------------------------------

如果存在该域名,为什么它没有出现在 virsh 中?

答案1

您的域名可能已关闭。运行virsh list --all以查看所有域名。

答案2

还不熟悉 OpenStack,但在常规的旧 libvirt 中,该错误通常意味着没有正在运行的实例,但有已定义的实例。“virsh list”仅显示当前活动的 VM,而不是每个已定义的 VM。尝试:

virsh edit instance-0000000a

如果弹出打开的 vim 并且里面有一堆 XML,则说明已经有一个定义的“instance-0000000a”VM。如果您 100% 确定不需要它,请退出编辑器并使用:

virsh undefine instance-0000000a

然后让 OpenStack 再次尝试您正在执行的操作,它应该可以工作。

顺便说一句,如果你确实想要那里的东西,你可以从以下开始:

virsh start instance-0000000a

但是再说了,不熟悉 OpenStack,它可能不喜欢你这样做,不知道。

答案3

场景 1:

您确定virsh命令行上正在与 OpenStack 控制器相同的虚拟机管理程序通信吗?这可能是最简单的解释,因为两个原因virsh没有显示正在运行的实例。

场景 2:

如果你使用ps,你看到任何qemu-kvm正在运行的实例吗?尝试:

ps -fe | grep qemu-kvm

如果有qemu-kvm实例正在运行,它们将有一个-name参数,该参数应与 中使用的名称相匹配。如果它们本来应该已经停止运行,那么virsh您可以只运行这些进程。kill -9

答案4

检查您是否安装了 qemu-system-x86-xen 如果没有 - 安装 apt install qemu-system-x86-xen 这对我很有帮助

相关内容