yandex

Проблема с миграцией виртуальной машины в VMmanager

Author:

Недавно поймал интересную ситуацию.

Потребовалось освободить один из узлов кластера, построенного на VMmanager KVM 5.21.11 (да, старенький).  Большинство виртуальных машин уехало “живой” миграцией, а несколько осталось. При попытке отмигрировать их внешне ничего не происходило.

Изучая логи, я наткнулся на такую ошибку

migratevm ERROR Global error: Type: 'libvirt_default' Object: '' Value: '

Просматривая все сообщения этого треда в логах, были найдены и причины

virt TRACE Fail libvirt message: 'internal error: No <source> 'bridge' attribute specified with <interface type='bridge'/>'

Как оказалось, для этих виртуальных машин в настройках не был указан сетевой мост.

Лечится это на уровне libvirt следующим образом.

  • Получаем список виртуальных машин на узле: virsh list –all
Id    Name                           State
----------------------------------------------------
 123   vm123                        running
 124   vm124                        running
 125   vm125                        running
  • Делаем дамп настроек в для libvirt виртуальной машины vm123: virsh dumpxml vm123 >vm123.xml
  • Открываем полученный xml-файл любимым редактором: vi vm123.xml
  • Находим параметр  <interface type=’bridge’> и добавляем <source bridge=’vmbr0’/>, чтобы получилось что-то типа
...
    <interface type='bridge'>
      <mac address='52:12:12:1a:10:12'/>
      <source bridge='vmbr0'/>
      <bandwidth>
...
  • Файл сохраняем и заливаем обратно: virsh define vm123.xml
Domain vm123 defined from vm123.xml
  • Теперь на мастер-ноде применяем настройки для VMmanager: /usr/local/mgr5/sbin/mgrctl -m vmmgr vm.redefine elid=<ID>

где <ID> – идентификатор виртуальной машины в VMmanager

  • После перезагрузки виртуальной машины миграция работает без ошибок.

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *