Рейтинг:0

Консолидация дисков KVM/libvirt

флаг de
m85

используя ubuntu 20.04 в качестве хоста kvm, инициализируя гостя с помощью cloud-init. это дает мне рабочего гостя с цепочкой изображений в результате. чтобы упростить процесс резервного копирования и повторно использовать существующий скрипт, я хотел бы объединить цепочку образов в один файл.

https://libvirt.org/kbase/merging_disk_image_chains.html#consolidating-an-entire-disk-image-chain-into-a-single-image

начальная конфигурация

тест вирша
 Целевой источник
-----------------------------
 vda test-rootfs.qcow2
 жесткий диск -

объединить изображения

virsh blockcommit test vda --verbose --pivot --active
Блокировать фиксацию: [100 %]
Успешно повернуто

результат

тест вирша
 Целевой источник
---------------------------------------------
 vda /данные/libvirt/образы дисков/тест
 жесткий диск -

Это ожидаемый результат. Всякий раз, когда я выключаю виртуальную машину и запускаю ее снова, конфигурация образа меняется на:

тест вирша
 Целевой источник
-----------------------------
 vda test-rootfs.qcow2
 жесткий диск -

и объединенный образ больше не используется, вместо этого он снова использует исходную цепочку изображений... -> Мой вопрос: почему?

BR и спасибо за подсказки

//редактировать:

Я отключил cloud-init в гостевой системе, затем процедуру shudtown/start.

Вот разница, сравнение после фиксации блока и после выключения/запуска домена (используя virsh dumpxml).

$ diff 0_blockcommit 1_shutdown_start 
1с1
< <тип домена='kvm' id='8'>
---
> <тип домена='kvm' id='9'>
32с32
< <тип диска='файл' устройство='диск'>
---
> <тип диска='том' устройство='диск'>
34,35с34,39
< <исходный файл='/data/libvirt/pools/disk-images/test.qcow2' index='3'/>
< <backingStore/>
---
> <source pool='disk-images' volume='test-rootfs.qcow2' index='2'/>
> <backingStore type='file' index='3'>
> <тип формата='qcow2'/>
> <исходный файл='/data/libvirt/pools/disk-images/test.qcow2'/>
> <бэкингсторе/>
> </backingStore>
42с46,47
< <исходный индекс='4'/>
---
> <исходный файл='/data/libvirt/pools/disk-images/test.iso' index='1'/>
> <бэкингсторе/>
89с94
< <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-8-test/org.qemu.guest_agent.0'/>
---
> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-9-test/org.qemu.guest_agent.0'/>
ThunderBird avatar
флаг ru
Пожалуйста, постарайтесь правильно оформить сообщение.
Рейтинг:0
флаг de
m85

Обходной путь:

ДОМЕН_ИМЯ="тест"
## сохранить xml и удалить домен
#
virsh dumpxml ${DOMAIN_NAME} > ${DOMAIN_NAME}.xml
virsh отменить определение ${DOMAIN_NAME}
выключение virsh ${DOMAIN_NAME}
 
## переопределить домен и начать заново
#
virsh определить ${DOMAIN_NAME}.xml
вирш начать ${DOMAIN_NAME}

На проекте libvirt был создан тикет: https://gitlab.com/libvirt/libvirt/-/issues/240

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.