Назад | Перейти на главную страницу

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, если он есть?

Ваш домен может быть отключен. Бегать virsh list --all чтобы увидеть все домены.

Еще не знаком с OpenStack, но в обычной старой libvirt эта ошибка обычно означает не наличие RUNNING экземпляра, а наличие DEFINED. "virsh list" показывает только активные в данный момент виртуальные машины, а не все определенные виртуальные машины. Пытаться:

virsh edit instance-0000000a

Если это открывает vim и там есть куча XML, значит, уже существует определенная виртуальная машина instance-0000000a. Если вы на 100% уверены, что этого не хотите, выйдите из редактора и используйте:

virsh undefine instance-0000000a

А затем пусть OpenStack снова попробует то, что вы делали, и это должно сработать.

Кстати, если вы ДЕЙСТВИТЕЛЬНО хотите то, что там есть, вы можете начать с:

virsh start instance-0000000a

Но опять же, если вы не знакомы с OpenStack, возможно, вам это не понравится, понятия не имею.

Сценарий 1:

Вы уверены, что virsh в командной строке обращается к тому же гипервизору, что и ваш контроллер OpenStack? Это было бы самым простым объяснением из двух, почему virsh не показывает запущенный экземпляр.

Сценарий 2:

Если вы используете psты видишь qemu-kvm экземпляры запущены? Пытаться:

ps -fe | grep qemu-kvm

Если есть qemu-kvm запущенных экземпляров, у них будет -name параметр, который должен соответствовать имени, используемому в virsh. Вы можете просто kill -9 эти процессы, если они все равно должны быть мертвыми.

Моя проблема заключалась в разрешении имен. Сервис libvirtd не запускался должным образом, потому что имя хоста не соответствовало IP-адресу системы.
Добавлена ​​запись в / etc / hosts для имени локальной системы и IP-адреса я мог подключиться к гостевой виртуальной машине.