
Tengo una instalación de proxmox. Me gustaría importar un vmdk a un lvm y el procedimiento es:
$ qemu-img convert -p -f vmdk "IE11 - Win7-disk1.vmdk" -O raw "IE11 - Win7-disk1.raw"
y luego:
$ dd if="IE11 - Win7-disk1.raw" bs=1M|pv| dd of=/dev/mapper/pve-vm--103--disk--1
Y eso funciona bien.
Pero hay 8,8 GB de datos en una unidad virtual de 127 GB:
$ qemu-img info "IE11 - Win7-disk1.raw"
image: IE11 - Win7-disk1.raw
file format: raw
virtual size: 127G (136365211648 bytes)
disk size: 8.8G
Y cuando "agrego" la unidad sin formato, veo 127 GB copiados cuando solo importan 8,8 GB. Y eso es tremendamente lento.
¿Existe una mejor manera?
Respuesta1
Una forma más rápida es no usardd
pv < "IE11 - Win7-disk1.raw" > /dev/mapper/pve-vm--103--disk--1
Lo más rápido es usar cat
directamente.
cat "IE11 - Win7-disk1.raw" > /dev/mapper/pve-vm--103--disk--1
Su invocación dd
estaba utilizando bloques de 512 bytes, lo que daría como resultado dos lecturas de llamadas al sistema por KB, o ~2000 por MB. Probablemente cat
te saldrás con la tuya con uno por MB.
Respuesta2
Estaba migrando de XenServer a Proxmox y descubrí esta solución.
Primero obtenga un archivo qcow2 si aún no lo tiene (es posible que necesite usar un comando diferente aquí si su archivo fuente no es una imagen de disco sin formato, lo importante es obtener un archivo qcow2 como resultado)
qemu-img convert rawimage.img -O qcow2 thinimage.qcow2
Convierta la imagen qcow2 a rawarchivo escaso:
qemu-img convert -p -f qcow2 -O raw -t none -T none thinimage.qcow2 rawsparce.raw
Escriba el archivo disperso en el lv delgado de la VM:
dd if=rawsparce.raw of=/dev/mapper/pve-vm--100--disk--1 bs=8M conv=sparse status=progress
Respuesta3
El formato RAW solo admite la preasignación, es por eso que obtuvo un disco de tamaño completo cuando convirtió mediante qemu-img
.
Intente convertir vmdk
el archivo de imagen al qcow2
formato, que puede funcionar sin asignación previa.