Экспорт виртуальных машин libvirt+KVM в файлы
Я собираюсь удалить старый сервер libvirt + KVM, но мне нужно сохранить виртуальные машины. К сожалению, сеть не работает, и я не могу создать подключения к системе.
Есть ли способ экспортировать виртуальные машины, используя virsh
или любая другая утилита?
Пояснение: мне нужны диски и все. Я разверну машины на другом сервере.
4 ответа
Если вам нужно сделать резервную копию вашей конфигурации VM с помощью virsh, вы можете использовать следующую команду
virsh dumpxml vmname > vmname.xml
Если вам нужно переместить ваш vm на другой сервер, вы можете сбросить конфигурацию vm и перенести xml, если вы используете файлы в качестве внутреннего хранилища для вашего vm, вы можете скопировать файлы на другой сервер, используя scp или rsync, когда вы скопировали Дисковые файлы VM, вы можете попробовать запустить VM с virsh define /tmp/myvm.xml && virsh start myvm
Вы должны быть в состоянии создать образ ваших дисков из снимка:
Сначала вам нужно убедиться, что Vm не работает:
virsh suspend vm
Теперь вы можете создать снимок, убедитесь, что вы настроили размер 100M и имя vm-root-snapshot в соответствии со своими потребностями.
lvcreate -L 100M -n vm-root-snapshot -s /dev/sysvg/vm-root
После этого вы можете запустить ВМ снова.
virsh resume vm
Теперь, когда у вас есть снимок, вы можете создать изображение и удалить снимок:
dd if=/dev/mapper/sysvg-vm--root--snapshot of=/tmp/vm-root.img bs=1M
lvremove /dev/mapper/sysvg-vm--root--snapshot
Образ можно скопировать на новый сервер и импортировать в LVM на новом сервере с помощью dd
dd if=/tmp/vm-root.img of=/dev/mapper/sysvg-vm--root bs=1M
Также не забудьте импортировать ваш XML-файл.
virsh define /path/to/vm.xml
Кроме того virsh dumpxml
который экспортирует настройки виртуальной машины в файл XML:
Скопируйте образы дисков VM, если они разрежены или находятся на блочном томе, правильный путь qemu-img convert -O output_format source destination
Чтобы импортировать, отредактируйте XML, чтобы отразить новое расположение образов дисков, а затем запустите virsh define path/to/dumpXML
Вы можете найти файлы конфигурации вашей виртуальной машины (экспортированныеvirsh dumpxml vmname > vmconfig.xml
), а также сетевую конфигурацию qemu в папке /etc/libvirt/qemu. Затем вручную скопируйте файл конфигурации виртуальной машины в ту же папку libvirt '/etc/libvirt/qemu' из новой папки установки libvirt.
При необходимости вы также можете сделать резервную копию/сравнить все файлы конфигурации *.conf libvirt, чтобы сравнить все конфигурации из предыдущей установки. Они находятся внутри /etc/libvirt.