
Ich habe eine Proxmox-Installation. Ich möchte eine VMDK in eine LVM importieren und das Verfahren ist:
$ qemu-img convert -p -f vmdk "IE11 - Win7-disk1.vmdk" -O raw "IE11 - Win7-disk1.raw"
und dann:
$ dd if="IE11 - Win7-disk1.raw" bs=1M|pv| dd of=/dev/mapper/pve-vm--103--disk--1
Und das funktioniert gut.
Auf einem 127 GB großen virtuellen Laufwerk befinden sich jedoch 8,8 GB Daten:
$ qemu-img info "IE11 - Win7-disk1.raw"
image: IE11 - Win7-disk1.raw
file format: raw
virtual size: 127G (136365211648 bytes)
disk size: 8.8G
Und wenn ich das RAW-Laufwerk mit „dd“ ausführe, sehe ich, dass 127 GB kopiert wurden, obwohl nur 8,8 GB davon von Bedeutung sind. Und das ist quälend langsam.
Gibt es einen besseren Weg?
Antwort1
Ein schnellerer Weg ist, nicht zu verwendendd
pv < "IE11 - Win7-disk1.raw" > /dev/mapper/pve-vm--103--disk--1
Am schnellsten geht es über cat
die direkte
cat "IE11 - Win7-disk1.raw" > /dev/mapper/pve-vm--103--disk--1
Ihr Aufruf von dd
verwendete 512-Byte-Blöcke, was zu zwei Systemaufrufen pro KB oder ~2000 pro MB führen würde. Mit cat
kommen Sie wahrscheinlich mit einem pro MB aus.
Antwort2
Ich habe von XenServer zu Proxmox migriert und diese Lösung gefunden.
Holen Sie sich zunächst eine qcow2-Datei, falls Sie diese noch nicht haben (möglicherweise müssen Sie hier einen anderen Befehl verwenden, wenn Ihre Quelldatei kein Raw-Disk-Image ist. Wichtig ist, dass Sie als Ergebnis eine qcow2-Datei erhalten).
qemu-img convert rawimage.img -O qcow2 thinimage.qcow2
Konvertieren Sie das qcow2-Bild in RAWSparse-Datei:
qemu-img convert -p -f qcow2 -O raw -t none -T none thinimage.qcow2 rawsparce.raw
Schreiben Sie die Sparse-Datei in das Thin-Level der VM:
dd if=rawsparce.raw of=/dev/mapper/pve-vm--100--disk--1 bs=8M conv=sparse status=progress
Antwort3
Das RAW-Format unterstützt nur die Vorabzuweisung, deshalb erhalten Sie bei der Konvertierung per die Festplatte in voller Größe qemu-img
.
Versuchen Sie, vmdk
die Bilddatei in qcow2
ein Format zu konvertieren, das ohne Vorzuweisung funktioniert.