Während des normalen Betriebs können Ressourcen der DomUs angepasst werden. XEN erlaubt das dynamische Verteilen von CPUs, RAM, Block-Devices und Scheduling-Zeiten. Mittels LVM kann auch die Größe von Partitionen der DomUs verändert werden.
Für jede DomU wird im Conig-File die Größe des zur Verfügung stehenden Arbeitsspeichers angegeben. Die Zeilen in der Konfigurationsdatei können z. B. so aussehen:
maxmem = '256' memory = '128'
Bei Bedarf kann die Größe des Verfügbaren Arbeitsspeichers mit dem Befehl
$ xm mem-set <dom-u-name> <mem-size>
angepasst werden. Die Größe des Arbeitsspeichers kann dabei den von maxmem angegebenen Speicher nicht überschreiten. Diese Grenze kann ebenfalls zur Laufzeit erweitert werden.
$ xm mem-max <dom-u-name> <mem-size>
Wenn die DomU in einem logical Volume intsalliert wurde ist es relativ einfach nachträglich die Partitionsgröße zu verändern. Dazu sind zwei Schritte notwendig:
Theoretisch können Dateisysteme vom Typ ext2/3, reiserfs oder xfs im gemounteten Zustand vergrößert werden. Damit die Größenänderung der LV an die DomU weitergereicht wird muss diese neu gestartet werden. Wenn die Größenänderung der Partition von der Dom0 aus durchgeführt wird, soll die betreffende DomU nicht gestartet sein.
Nach dem Stop der DomU kann deren Systempartition mit folgenden Befehlen um 1GB vergrößert werden:
$ lvextend -L+1G </dev/vg-name/lv-name> $ e2fsck -f </dev/vg-name/lv-name> $ resize2fs </dev/vg-name/lv-name>
Zum verkleinern einer Partition, darf diese nicht gemountet sein, d. h. die betreffende DomU muss heruntergefahren sein und die folgenden Befehle müssen von der Dom0 aus gestartet werden.
$ e2fsck -f </dev/vg-name/lv-name> $ resize2fs </dev/vg-name/lv-name> <blocks> $ lvreduce -L-1G </dev/vg-name/lv-name>
Dadurch wird das Dateisystem angepasst und anschließend das logical Volume um 1GB verkleinert. Details zur Angabe der Dateisystemgröße finden sich in der Manpage von resize2fs
Die Anzahl der virtuellen CPUs für eine DomU kann im jeweiligen Config-File definiert werden. Die Anuzahl der virtuellen CPUs kannen mit dem Befehl
$ xm vcpu-set <domain> <vcpu-count>
definiert werden. Mit xm vcpu-list kann die Verteilung der virtuellen CPUs betrachtet werden. Mit dem Parameter vcpu-pin kann eine virtuelle CPU einer realen CPU zugeordnet werden. Details dazu in der Manpage von xm
Eine Liste der Block-Devices einer Domain kann mit
$ xm block-list [-l] <domain-id>
angezeigt werden.
Um Block-Devices (Massenspeicher wie Festplatten) zur Laufzeit einer DomU hinzuzufügen wird der Befehl
$ xm block-attach <domain-id> <be-dev> <fe-dev> <mode> [<bedomain-id>]
verwendet.
$ xm block-attach 5 phy:sda7 /dev/sdc rw
Dieser Befehl fügt in der DomU mit der ID 5 einen neuen Datenträger als /dev/sdc hinzu. Ursprünglich handelt es sich um den physischen Datenträger sda7 aus der Domain0.
Ein Block-Device kann mit folgendem Befehl wieder aus einer DomU entfernt werden.
$ xm block-detach <domain-id> <dev-id>
xm block-list domain-id angezeigt werden kann.
Diskussion