Vor kurzem hatte ich das Problem, dass ich einer domU zu wenig Festplattenspeicher zugewiesen habe. Hinterher ist man immer schlauer, und merkt dann auch, dass man mit 256 MB swap nicht weit kommt, wenn man die domU auslastet ;-). Blöderweise hat NetBSD (noch) kein funktionierendes Programm um das Dateisystem live zu verkleinern/vergrößern, sonst wäre die Änderung relativ kurz und schmerzlos.
Das bestehende resize_ffs
(aus NetBSD-current vom 31.10.2008) ist
leider nicht stabil und stürzte bei mir mit einem coredump ab.
Meine Installation, die ich hier beschrieben habe, setzt darauf, dass man Partitionen
erstellt und xen diese direkt übergibt, sodass sozusagen „unter-partitioniert”
wird, also in einer Partition erneut in der domU ein disklabel erstellt wird.
Daher gibt es keine Möglichkeit (zumindest keine mir bekannte), auf der dom0
die Daten 1:1 zu kopieren auf ein neues, größeres Dateisystem.
vnconfig
möchte zumindest keine Partitionen „loop-mounten”.
Die Lösung ist etwas umständlich und setzt voraus, dass du genug freien Speicherplatz auf der Festplatte hast:
-
Angenommen, die Festplatte heißt
/dev/wd0
, dann erstellen wir eine neue Partition, sagen wir/dev/wd0f
, welche groß genug ist. -
In der Konfiguration der domU ergänzen wir das disk-Array mit dem
Eintrag für die neue Festplatte, sodass es zum Beispiel so aussieht:
disk = [ 'phy:/dev/wd0e,0x2,w', 'phy:/dev/wd0f,0x3,w' ]
Wichtig ist dabei, dass die zweite Nummer nicht dieselbe ist, da sie zur Identifikation dient. -
In der domU haben wir dann ein neues block device namens
/dev/xbd1
. Diesem verpassen wir ein disklabel mit ausreichend Speicherplatz und Swapspace. -
Anschließend erstellen wir das Dateisystem mit
newfs /dev/xbd1a
und mounten es mitmount /dev/xbd1a /mnt
. Viadf -h
können wir uns noch vergewissern, dass diesmal genügend Platz da ist. - Sollte es sich um ein Live-System handeln, also um ein System mit kritischen Daten, die sich im Moment verändern, solltest du alle Dienste stoppen, sodass du einen möglichst konstanten Status des Systems hast, während du kopierst.
-
Mithilfe von dump und restore kopieren wir das Dateisystem 1:1 auf das
neue device:
cd /; dump 0f - . | (cd /mnt; restore -rf - )
Nach ca. 20 Minuten für 4 GB (auf meinem System) hat man dann eine exakte Kopie. -
Wir entfernen den alten Eintrag aus der domU-Konfiguration und starten
die domU neu. Nun nochmal mit
df -h
undswapctl -l
vergewissern das alles geklappt hat.
Logischerweise hat man anschließend zwar ein „Loch” in seiner Festplatte durch den nunmehr ungenutzten Speicher, den die domU vorher hatte, sofern man den nicht irgendwie wiederverwerten kann. Dafür hat man aber relativ problemlos seine domU migriert.
Möglicherweise gibt es eine geschicktere Variante mit dem Live-Migration-Feature von xen. Sofern du damit Erfahrungen gemacht hast, insbesondere unter NetBSD, kontaktiere mich bitte.
I run a blog since 2005, spreading knowledge and experience for almost 20 years! :)
If you want to support my work, you can buy me a coffee.
Thank you for your support! ❤️