web-dev-qa-db-ja.com

ドメインがすでに存在する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に表示されないのですか?

3
Lorin Hochstein

ドメインがシャットダウンされている可能性があります。実行virsh list --allすべてのドメインを表示します。

7
daff

OpenStackにはまだ精通していませんが、通常の古いlibvirtでは、このエラーは通常、RUNNINGインスタンスがあることを意味するのではなく、DEFINEDインスタンスがあることを意味します。 「virshlist」には、定義されているすべてのVMではなく、現在アクティブなVMのみが表示されます。試してみてください:

virsh edit instance-0000000a

それが開いているvimをポップし、そこに大量のXMLがある場合、定義済みの「instance-0000000a」VMがすでにあります。必要ないと100%確信している場合は、エディターを終了して次を使用します。

virsh undefine instance-0000000a

そして、OpenStackにもう一度やり直してもらい、うまくいくはずです。

ちなみに、そこにあるものが必要な場合は、次のように開始できます。

virsh start instance-0000000a

しかし、繰り返しになりますが、OpenStackに慣れていないため、あなたがそうするのが好きではないかもしれません。

4
Nex7

シナリオ1:

コマンドラインのvirshがOpenStackコントローラーと同じハイパーバイザーと通信していることを確認しますか?これは、virshが実行中のインスタンスを表示しない2つの理由として最も簡単な説明になります。

シナリオ2:

psを使用する場合、実行中のqemu-kvmインスタンスはありますか?試してみてください:

ps -fe | grep qemu-kvm

qemu-kvmインスタンスが実行されている場合、それらにはvirshで使用されている名前と一致する必要がある-nameパラメーターがあります。とにかく死んでいると思われる場合は、これらのプロセスをkill -9することができます。

1
larsks

私の問題は名前解決でした。ホスト名がシステムのIPに解決されなかったため、サービスlibvirtdは正しく開始されませんでした。
ローカルシステム名とIPのエントリを/ etc/hostsに追加すると、VM guest)に接続できます。

0
hulkin1