Wie speichere ich den Status eines laufenden LXC-Containers?

Wie speichere ich den Status eines laufenden LXC-Containers?

Mit VirtualBox oder KVM kann ich den Status der Gast-VM speichern, den Host neu starten und dann den Gast fortsetzen.
Wie kann ich das tun, wenn mein Gast nur ein Container und keine VM ist?

Antwort1

Dies ist mit CRIU möglich.

Beachten Sie, dass es mehr ist, als es kanntheoretischdurchgeführt werden, aber wenn Ihre Container irgendetwas auch nur annähernd Komplexes tun (wie etwa systemd ausführen, das Namespaces verwendet, ein TTY hat, usw.),es wird wahrscheinlich scheitern.

Die praktischere Antwort ist, dass dies derzeit nicht mit Allzweckcontainern möglich ist. Vielleicht in der Zukunft, aber angesichts des aktuellen Entwicklungstempos von CRIU ist dies unwahrscheinlich.

Die spezifischen Befehle unterscheiden sich je nachdem, ob Sie reines LXC oder den LXD-Verwaltungsdaemon verwenden.


LXC

Wenn Sie LXC im Rohzustand verwenden, benötigen Sie das lxc-checkpointTool. Es gibt einige Beispieleim CRIU-Wiki, Unddie lxc-checkpoint-manpages.

bitte beachten Sieder CRIU-Wiki-Eintragempfiehlt, dass Sie Ihre Container auf besondere Weise konfigurieren, vermutlich um zu versuchen, die Probleme mit der Namespace- und Gerätevererbung zu vermeiden:

lxc.console = none
lxc.tty = 0
lxc.cgroup.devices.deny = c 5:1 rwm

Dies kann ein Ausschlusskriterium sein, wenn Sie diese Geräte in Ihrem Container benötigen.

So erstellen Sie einen Prüfpunkt:

lxc-checkpoint -s -D /path/to/checkpoint -n containername

(Hinweis: -sDer Container wird nach der Prüfpunkterstellung gestoppt.)

So stellen Sie einen Prüfpunkt wieder her:

lxc-checkpoint -r -D /path/to/checkpoint -n containername

Der Prüfpunkt bleibt bestehen, bis Sie ihn löschen.


LXD

Wenn Sie eine Snap-Installation von LXD verwenden, müssen Sie zuerst CRIU aktivieren:

snap set lxd criu.enable=true
systemctl reload snap.lxd.daemon

So stoppen Sie einen Container zustandsgesteuert:

lxc stop --stateful containername

Wenn Sie späterlxc start ohne --stateless, sollte der vorherige Zustand wiederhergestellt werden.

lxc snapshotSie können mit / auch manuell Status-Snapshots erstellen lxc restore.

verwandte Informationen