[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Persistentes Live-System



Hi Debianer,

Ich bin eine weile am Überlegen, wie ich ein "Live-System" (mit
Hauptaugenmerk auf "kann einfach ausgeschaltet werden") realisere, das
trotzdem irgendwie Änderungen persistent speichern kann. Ich weis, dass
Dateisysteme mit Journalling zwar eigentlich sehr stabil sein sollten
bei sowas, aber ich halt es für unsauber, im betrieb auf die konsistenz
zu pfeiffen und beim nächsten boot dann auf die repair-werkzeuge zu
vertrauen.

Das System darf durchaus Momente bzw Zeitpunkte haben, in denen es
nicht abgeschaltet werden darf. Nur müssen diese Momente klar definiert
sein. Das ist von interesse, da ich denke, dass man das ganze am besten
mit einem "snapshot-system" realisiert (beschreibe ich unten nochmal
genauer). Eine Aktualtät der konsitenz ist auch nicht besonders wichtig.
(Änderungen zwischen snapshot und ausschalten dürfen verloren gehen)

Derzeit haben wir hier dafür ein Debian Live im Einsatz.
Das arbeitet so dass das eigentliche System in einem Squashfs liegt.
Das wird readonly gemountet. Darüber kommt per cow ein tmpfs, in dem
jetzt die eigentlichen Änderungen liegen. Bei dem snapshot-kommando
wird das tmpfs in einem Archiv gesichert. Beim nächsten Booten wird das
tmpfs aus diesem Archiv wiederhergestellt.

Funktioniert eigentlich ganz gut, allerdings skaliert das nicht
langfristig. Da wirklich "für immer" sämtliche Änderungen des Systems
seit dem erzeugen im tmpfs liegen und damit (wertvollen)
Arbeitsspeicher belegen. Gerade wenn man später updates machen will
oder vlt mal ein größeres Paket nachinstallieren wirds mist.

Ausserdem kann Debian Live im moment keine gelöschten Dateien
"tracken". Das heisst, wenn ich eine Datei vom grundsystem lösche,
einen snapshot erzeuge und wieder boote ist sie wieder da. Das ist aber
eher, denke ich, ein Fehler im Debian Live selbst.

Deswegen habe ich mir folgendes Überlegt (bisher nur in der Theorie)
- Das System liegt in einem "normalen" Dateisystem (ext3)
- Darüber - wie vorher - ein tmpfs per cow. 
- Das Snapshot-Kommando schreibt die änderungen des tmpfs auf das
  Hauptsystem zurück. Das tmpfs wird dabei geleert und der
  Arbeitsspeicher wieder freigegeben

hat sich schonmal wer mit der thematik befassen müssen. Gibts schon
fertige Implementierungen für das oder sowas änliches, wie ich es
beschrieben habe? Bin für Tipps und Hinweise (auch in ganz andere
Richtungen) dankbar.

Liebe Grüße,
Micha


Reply to: