XEN: eine XEN-Partition vergrößern

Aus Hergipedia
Zur Navigation springen Zur Suche springen

adaptiert von [1]

Einleitung

Xen Partitionen können dynamisch auf ihre Maximalgröße wachsen, wenn sparse files für das diskimage verwendet werden. Dies macht z.B. der grafische Xen Installer von OpenSuse automatisch. Da es immer schwieriger ist, ein partition zu shrinken, als sie wachsen zu lassen, sollte man grundsätzlich eher zu kleine Partitionen verwenden und diese bei Bedarf aufpumpen.

Eine Startgröße von 10GB sollte eine gute Startgröße für fast alle Anwendungen darstellen (altekiste)

Voraussetzungen

  • ein vorhandenes Diskimage, z.B. disk0 im Ordner /home/vm/images/altekiste (/var/lib/xen/images/altekiste)

Vorgehensweise

Das Grundprinzip ist einfach. von /dev/zero viele Nullen ans Ende von disk0 kopieren und das Dateisystem mit resize2fs ausdehnen auf die ungenutzten Bereiche. Bonuspunkt für das realisieren von Platzersparnis durch Verwendung von sparse files wo möglich.

VM anhalten und Backup erstellen

# ssh root@nasigoreng
cd /home/vm
xm shutdown altekiste

# warten, bis fertig, dann sparse backup ziehen
cp -r --sparse=always altekiste/ backup_altekiste

10 GB Nullen ans Ende hängen

cd backup_altekiste 
dd if=/dev/zero bs=1M count=10240 >> disk0
cp --sparse=always disk0 disk0_sparse
# vergleiche und staune ueber gesparten Platz
du -h disk0
du -h --apparent-size disk0
du -h disk0_sparse
du -h --apparent-size disk0_sparse

neues sparse_image an korrekte Position und Dateisystem resizen

cd ../altekiste
mv disk0 disk0.backup
mv ../backup_altekiste/disk0_sparse ./disk0
# resizen im Gastsystem
xm start altekiste
# login als root auf VM, folgende
xm console altekiste

# Delete the last partition and recreate it with the 
# start cylinder being identical as before and the 
# ending cylinder being the default (end of disk)
fdisk /dev/xvda
reboot
resize2fs /dev/xvda1
reboot

Aufräumen

# funktioniert alles?
# dann alte Dateien löschen.
# ssh root@nasigoreng
cd /home/vm
rm -r backup_altekiste
rm altekiste/disk0.backup