Если бы предложение @MarkHenderson не выполнимо, затем обработка изображений сервера на отдельное оборудование (NAS, расширение HD, и т.д.) была бы способом пойти. Это может быть сделано w/созданный в Резервном копировании MS или приложении сторонних производителей: Тень Защищает, Acronis, и т.д. Это должно быть довольно безопасно, поскольку у Вас есть и исходные диски и резервное копирование. Универсальный процесс был бы:
Отобразите сервер на другие аппаратные средства.
Маркируйте и зарегистрируйте местоположение слота дисков. Удалите диски, сохраните безопасно.
Вставьте новый HD.
Начальная загрузка с CD, восстановите образ резервной копии.
Изменения, внесенные в сеть, произойдут при следующем запуске сети. Вам необходимо выполнить эту серию операций.
virsh net-edit somenet
virsh net-destroy somenet
virsh net-start somenet
Для подтверждения этого см. функциональные возможности virsh net-edit
Обратите внимание, что перезапуск такой сети приведет к прекращению сетевого подключения для любых виртуальных машин, использующих эту сеть. Они не восстановят соединение, когда вы снова запустите сеть; вам необходимо перезапустить домены или вручную переместить интерфейс виртуальных машин на новый мост с помощью brctl .
Изменить: вики libvirt описывает эту ситуацию, а также указывает на сценарий для использования для восстановления сетевых подключений.
Я не узнал «почему», но нашел способ заставить это работать. Итак, если у кого-то есть такая же проблема, решение было таким:
virsh net-dumpxml /tmp/somenet.xml[12119 sizesstopped network virsh net-destroy somenet
virsh net-undefine somenet
/tmp/somenet.xml
virsh net-create /tmp/somenet.xml
virsh net-autostart somenet
, но не удалось с ошибкой : Запрошенная операция недействительна: не удается установить автозапуск для временной сети
virsh net-edit somenet
, я просто добавил еще одну пустую строку. virsh net-autostart somenet
тоже работал И, наконец, мой виртуальный хост получил правильный IP!
I had a similar problem, with a VM instance whose networking parameters had changed months ago. Today I restarted the whole 12-VMs environment, and this instance didn't want to start. The underlying hardware had been redefined, so it was out of question restoring the old values. Using virsh edit didn't help: the old parameter kept being reported & used to boot.
I found that during the reboot, the suspended image under /var/lib/libvirt/qemu/save/.save had the wrong parameters still embedded. Deleting the file allowed the VM to come back to life.
The only side effect is that the VM did not resume (as the rest of it siblings did), but had to do a full boot, and possibly that procedure was not very clean; fortunately it was a minor server that can afford this. After this, it is back on line & working fine.
Проблема в том, что для создания постоянной сети вам необходимо:
sudo virsh net-define
sudo virsh net-start <сетевое имя>
sudo virsh net-autostart <сетевое имя>
Ошибка заключается в использовании net-create вместо net-define.
Каждый раз, когда вы используете virsh net-edit {{сеть}}
, вам потребуется перезапустить сеть. Следовательно, вам придется выполнить команды:
virsh net-edit {{network}}
virsh net-destroy {{сеть}}
virsh net-start {{сеть}}
Однако
Важно отметить, что каждый раз, когда вы это делаете, любой, кто в настоящее время использует эту виртуальную сеть на своей VMS, теряет соединение, пока вы перезагружаете сеть.
Это займет не более секунд, но в зависимости от частоты, с которой вы добавляете статический IP-адрес через DHCP-хост, это может вызвать неудобства для ваших пользователей.
Следовательно:
Я бы рекомендовал использовать virsh net-update
. ( Источник ) Это можно использовать для обновления конфигурации сети без перезапуска сети. В частности, похоже, что вы ищете функцию ip-dhcp-host
.
Пример:
virsh net-update default add ip-dhcp-host \
"
Надеюсь, это было полезно :)