Plattenplatz für Xen-DomU vergrößern
Wie bei einem "normalen" Linux-Rechner auf Blech, so kommt auch bei einem virtualisierten System irgendwann der Tag, an dem der Plattenplatz nicht mehr reicht und erweitert werden muss.
Da ich meine Xen-DomUs auf LVM-Volumes angelegt habe, ist das reine Vergrößern
des Plattenplatzes kein Problem.
Solange noch Plattenplatz auf dem Hostsystem verfügbar ist, reicht ein
lvextend
um das Volume zu vergrößern.
Ist auf dem Host auch kein Platz mehr, stecke ich eine zusätzliche Platte ein,
füge diese zur Volume-Group hinzu und schon ist wieder Platz da.
Bevor ich beginne, mache ich auf jeden Fall ein Backup des betroffenen Systems!
Zu Hause verwende ich den Default-Toolstack für Xen mit xm
als
Kommandozeilenprogramm.
Bei diesem ist die Konfiguration für die DomUs im Verzeichnis /etc/xen/ zu
finden, jeweils in einer Datei, benannt nach der DomU mit dem Suffix .cfg.
Die verfügbaren Plattenbereiche sind beim Eintrag disk angegeben.
Hier gibt es bereits einige Unterschiede, die ich beachten muss.
Auf älteren Systemen habe ich die Plattenpartitionen einzeln direkt angegeben, so wie sie in der DomU eingebunden werden:
disk = [
'phy:/dev/vg0/apt-proxy-swap,xvda1,w',
'phy:/dev/vg0/apt-proxy-disk,xvda2,w',
]
In letzter Zeit habe ich hingegen meist nur ein LVM-Volume angegeben, das in der DomU als gesamte Platte verwendet und dort partitioniert wird.
disk = ['phy:/dev/camion/netinfo3,xvda,w']
Beim ersten System entsprechen /dev/xvda1 und /dev/xvda2 direkt den beiden Volumes apt-proxy-swap und apt-proxy-disk im LVM.
Beim zweiten System sind /dev/xvda1 und /dev/xvda2 Partitionen im Volume netinfo3 im LVM des Hosts.
Dementsprechend muss ich unterschiedlich vorgehen, um den Plattenplatz zu vergrößern.
Bei den DomUs, die Partitionen wie das erste System nutzen, kann ich alles vom Host aus erledigen:
$ XENDOMAIN="apt-proxy"
$ LVMVOLUME="/dev/vg0/${XENDOMAIN}-disk"
$ SIZE=20G
$ sudo xm shutdown -w ${XENDOMAIN}
$ sudo lvextend -L ${SIZE} ${LVMVOLUME}
$ sudo e2fsck -f ${LVMVOLUME}
$ sudo resize2fs ${LVMVOLUME}
$ sudo e2fsck -f ${LVMVOLUME}
$ sudo xm create ${XENDOMAIN}.cfg
Anschließend kann die DomU sofort den zusätzlichen Platz nutzen.
Bei den Systemen mit vollständigem Festplattenimage muss ich einen Teil in der DomU erledigen. Zunächst vergrößere ich das Image der Festplatte:
$ XENDOMAIN="netinfo3"
$ LVMVOLUME="/dev/camion/${XENDOMAIN}"
$ SIZE=20G
$ sudo xm shutdown -w ${XENDOMAIN}
$ sudo lvextend -L ${SIZE} ${LVMVOLUME}
$ sudo xm create ${XENDOMAIN}.cfg
Anschließend melde ich mich an der DomU an und bearbeite das Festplattenimage
mit fdisk
.
Dazu wechsle ich in den Single-User-Modus.
Will ich nur die letzte Partition vergrößern, entferne ich sie und lege sie
gleich darauf neu an.
Dazu sollte die Partition ausgehängt oder wenigstens read-only eingehängt
sein.
Anschließend folgt:
# e2fsck -f /dev/xvda5
# resize2fs /dev/xvda5
# e2fsck -f /dev/xvda5
Alternativ lege ich eine neue Partition an, formatiere diese, hänge sie an geeigneter Stelle im Dateibaum ein und verschiebe die zugehörigen Daten von der alten Partition auf die neue.
Nach einem Neustart kann ich den zusätzlichen Plattenplatz auch hier nutzen.
Posted 2014-01-24