QEMU-KVM: Konvertierung von RAW-Images zu Logical Volumes

Logical Volumes bieten ein sehr flexibles Storage-Management und sollten in keinem Linux-Storagesystem fehlen. Leider werden sie immer noch nicht so häufig verwendet, wie es ihr hoher Nutzen suggeriert.

In diesem kurzen Artikel konvertiere ich Standard KVM-Images zu Logical Volumes um damit flexibler zu sein, was nachträgliche Anpassungen der Speichergröße u.Ä. angeht. Die einzelnen Logical Volumes gehören zu einer Volume Group welche wiederum auf einem Raid 1 aufsetzt und somit redundant ausgelegt ist.

Voraussetzung ist, dass das Image im RAW-Format vorliegt und nicht in qcow2, vhd, vdi, vmdk oder Ähnlichem. Außerdem sollte die betroffene VM ausgeschaltet sein, damit während des Kopiervorgangs keine Daten mehr in das Image geschrieben werden.

Zum Kopieren werden wir dd nutzen.
Dabei spielt das Dateisystem und die Datenebene keine Rolle, weil alle Daten blockweise kopiert werden.

Ein gut gemeinter Rat: vor Ausführung eines dd-Befehls bitte immer ein Backup anlegen.

Nun aber ans Eingemachte...

Infos über das Imagefile bekommen wir mit qemu-img info /kvm/images/disk/deb8.img.

Output:

image: deb8.img
file format: raw
virtual size: 8.0G (8589934592 bytes)
disk size: 8.0G

Der Parameter virtual size gibt den maximal von der VM nutzbaren Speicher an, während der Wert disk size den belegten Speicher auf dem Host angibt.
Für das gleich folgende dd-Kommando ist es wichtig, ein mindestens genauso großes LV wie das IMG-file zu erstellen.

Erstellen des LVs

lvcreate -L 8589934592b vg_name -n deb8

Kopieren des Imageinhalts auf das angelegte LV

dd if=/kvm/images/disk/deb8.img of=/dev/vg_name/deb8

Sei vorsichtig bei der Anwendung von dd, es kann unschöne Spuren hinterlassen und komplette Dateisysteme zerschießen, wenn falsch angewendet.

Es wird nun blockweise von Input (if=) nach Output (of=) kopiert. Das bedeutet auch, dass das Zieldevice nicht mehr den Stand von vor Ausführung des Befehls haben wird, sondern mit dem des Inputs überschrieben wird. Etwaige wichtige Daten sind unwiederbringlich verloren, sollten sie nicht vorher gesichert worden sein.

Das Ganze kann je nach Größe durchaus etwas dauern. Sobald fertig, kontrolliere die Einstellungen der VM. Es sollte mindestens das Quelldevice des Storages der VM auf das neue geändert werden.

VM starten und über die gewonnene Flexibilität freuen!