Migrieren unprivilegierter LXC-Container

vorhergehende Artikel in: Linux Virtualisierung
13.01.2023

Hauptsächlich zu meiner Erinnerung...

Ich schreib das hier mal auf, damit ich beim nächsten Mal sofort weiß, wie man das macht... Hauptgrund für die Art und Weise, die ich hier vorstellen möchte war, dass ich einen meiner Server entlasten wollte, dessen Massenspeicherfüllstand sich gefährlich auf 90% zu bewegte. Aus diesem Grund war auch ein einfaches Einpacken per tar nicht möglich - das entstehende Archiv hätte nicht mehr auf den Massenspeicher gepasst.

Also entschied ich mich für die direkte Variante: Transparentes Verpacken mittels tar und senden des Archivstreams per ssh zum Zielrechner, wo das Archiv transparent aus der Standardeingabe sofort wieder entpackt wird. Das Kommando dafür lautet:

sudo tar -C ~/.local/share/lxc/ -cpf - <container_name> | \
pv | \
ssh -Y <remote_user>@<target_host> \
"SUDO_ASKPASS=<path_to>/ssh-askpass sudo -A tar --same-owner -C /home/<remote_user>/.local/share/lxc -xf -"

Dabei ist <container_name> der Name des Containers, der zu migrieren ist (Vor der Migration ist dieser natürlich zunächst mittels lxc-stop -n <container_name> anzuhalten). <target_host> ist der Name des Rechners, auf den der Container migriert werden soll, <remote_user> ist der Nutzername des Nutzers, der den Container nach der Migration ausführen soll.

Nun zu den einzelnen Bestandteilen des Kommandos:

sudo tar -C ~/.local/share/lxc/ - sudo muss hier verwendet werden, da nicht alle Dateien in einem Container dem aktuellen Nutzer gehören, aber alle kopiert werden müssen. die Option -C legt das Verzeichnis fest, in dem tar arbeiten soll.

-cpf - - -p gibt hier an, dass die Permissions der Dateien und Verzeichnisse mit im Archiv übertragen werden sollen, -f - spezifiziert, dass das resultierende Archiv auf der Standardausgabe ausgegeben werden soll.

pv - realisiert eine rudimentäre Fortschrittsanzeige während des Prozesses

ssh -Y @ - die Option -Y gibt hier an, dass es ermöglicht werden soll, die GUI graphischer Anwendungen vom Zielrechner zu übertragen - das wird für die Anzeige der Authentifizierungsdialoge für das remote ausgeführte sudo zu ermöglichen.

SUDO_ASKPASS=/ssh-askpass sudo -A - Hier wird abgegeben, welche Anwendung zur Abfrage der Authentifizierungsinformationen für sudo verwendet werden soll (muss auf <target_host> installiert sein) und - mittels -A - dass sudo einen askpass Agenten dafür benutzen soll.

tar --same-owner -C /home//.local/share/lxc - tar wird schließlich angewiesen, in welchem Verzeichnis es arbeiten soll und dass die Zuordnung zu Nutzern und Gruppen wiederhergestellt werden soll. Diese Option --same-owner ist auch der Grund, warum hier sudo benötigt wird!

-xf - - schließlich gibt an, dass ein auf der Standardeingabe verfügbare Archiv entpackt werden soll.

Alle Artikel rss Wochenübersicht Monatsübersicht Codeberg Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Ticketsysteme sind lebende Wesen

    29.03.2020

    Hier zunächst wieder eine Triggerwarnung: Dieser Artikel wird meine Meinung abbilden. es kann sein, dass sie dem einen oder anderen nicht gefällt - das ist mir aber egal. Und wenn hier irgendwelche Schneeflocken mitlesen, dann sind die selber schuld.

    Weiterlesen...

Neueste Artikel

  • Weitere Experimente mit dem Clifford-Attractor

    Ich berichtete hier bereits über Experimente mit dem Clifford-Attractor, allerdings war ich noch Experimente unter geringfügig geänderten Parametern schuldig...

    Weiterlesen
  • Neues Feature in meinem Static Site Generator: externe URLs

    Es wurde wieder einmal Zeit für ein neues Feature in meinem Static Site Generator mittels dessen ich ja auch meine Heimatseite im Zwischennetz gestalte und verwalte...

    Weiterlesen
  • Eine Bestandsaufnahme

    Es kamen mehrere Faktoren zusammen: die Tatsache, dass ich nicht mehr ganz so kürzlich die 50 überschritten habe hatte ebenso darauf Einfluss wie das heutige trübe Wetter und auch der Fakt, dass ich bereits beinahe alle Wochenendpflichten erledigt habe. Der letzte Stein des Anstoßes war dann aber, dass sich heute zum 125. Mal der Geburtstag von Erich Fromm jährt.

    Weiterlesen

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen Codeberg-Repositories findet man hier.