'dd' raw drives to lvm неэффективно. Есть ли способ получше?

'dd' raw drives to lvm неэффективно. Есть ли способ получше?

У меня установлена ​​proxmox. Я хочу импортировать vmdk в lvm, и процедура следующая:

$ qemu-img convert -p -f vmdk "IE11 - Win7-disk1.vmdk" -O raw "IE11 - Win7-disk1.raw"

а потом:

$ dd if="IE11 - Win7-disk1.raw" bs=1M|pv| dd of=/dev/mapper/pve-vm--103--disk--1

И это прекрасно работает.

Но на виртуальном диске объемом 127 ГБ находится 8,8 ГБ данных:

$ qemu-img info "IE11 - Win7-disk1.raw"
image: IE11 - Win7-disk1.raw
file format: raw
virtual size: 127G (136365211648 bytes)
disk size: 8.8G

А когда я «dd» копирую необработанный диск, я вижу скопированные 127 ГБ, хотя из них важны только 8,8 ГБ. И это невероятно медленно.

Есть ли способ лучше?

решение1

Более быстрый способ — не использоватьdd

pv < "IE11 - Win7-disk1.raw" > /dev/mapper/pve-vm--103--disk--1

Самый быстрый способ — использовать catнапрямую

cat "IE11 - Win7-disk1.raw" > /dev/mapper/pve-vm--103--disk--1

Ваш вызов ddиспользовал блоки по 512 байт, что привело бы к двум системным вызовам чтения на КБ или ~2000 на МБ. С catвы, вероятно, уйдете с одним на МБ.

решение2

Я переходил с XenServer на Proxmox и нашел это решение.

Сначала получите файл qcow2, если у вас его еще нет (вам может потребоваться использовать другую команду, если ваш исходный файл не является образом необработанного диска; важно получить файл qcow2 в качестве результата)

qemu-img convert rawimage.img -O qcow2 thinimage.qcow2

Конвертировать образ qcow2 в rawразреженный файл:

qemu-img convert -p -f qcow2 -O raw -t none -T none thinimage.qcow2 rawsparce.raw

Запишите разреженный файл на тонкий логический раздел виртуальной машины:

dd if=rawsparce.raw of=/dev/mapper/pve-vm--100--disk--1 bs=8M conv=sparse status=progress

решение3

Формат RAW поддерживает только предварительное распределение, поэтому при конвертации в qemu-img.

Попробуйте преобразовать vmdkфайл изображения в qcow2формат, который может работать без предварительного выделения памяти.

Связанный контент