Titel: Backupstrategien
Beitrag von: Sebastian am 04. Juni 2025, 13:46:07
Ich möchte hier einfach mal berichten, wie ich meine Backups bzw. und/oder meine Langzeitarchivierung mache. Und gleichzeitig die Frage an euch stellen, wie ihr das so macht.
Grundsätzlich teile ich meine Daten wie folgt auf:
- Betriebssystemdaten (Mountpunkt: /)
- Benutzerdaten (Mountpunkt: /home)
- Daten für Langzeitarchivierung
Betriebssystemdaten:
Sind für mich nicht ganz so wichtig, im schlimmsten Fall installiere ich mein Betriebssystem halt noch mal neu. Aus Bequemlichkeitsgründen (damit ich nicht neu installieren muss) mache ich davon hin und wieder ein Backup in mehreren Stufen.
1. Wird bei mir automatisch bei jeder Paketinstallation ein Btrfs Snapshot meiner Betriebssystemdaten (und auch stündlich) erstellt. Davon werden 7 täglich und 2 wöchentliche Snapshots aufbewahrt. Alle Snapshots, die älter oder über diese Anzahl gehen werden automatisch gelöscht, sobald der nächste Snapshot angelegt wird.
2. Hin und wieder sende ich solch einen Snapshot als Datenstrom direkt in ein restic Repository, um es auf meiner externen Festplatte, die ich auch für Langzeitarchivierungen verwende, zu sichern. Dies ermöglicht es mir bei einem defekt meiner internen Festplatte mein Betriebssystem wiederherzustellen (Ist der Bequemlichkeit geschuldet ;D). Die Deduplizierung der Daten übernimmt hierbei restic, sodass die Datenströme der Betriebssystem Snapshots depubliziert im restic Repository abgelegt werden. Damit nicht unnötig viel Speicherplatz verwendet wird. Ein restic Repository als Speicherort gegenüber dem Differenzzillen Speichern von Snapshots auf ein anderes Btrfs hat den Vorteil, dass ich das Repository auch auf ein anderes Dateisystem übertragen könnte. Zudem kommt eine Differenzielle Btrfs Snaphot Strategie wegen meines Rotationsprinzips nicht in Betracht. Da mir so der Referenz Snapshot irgendwann gelöscht werden würde, den ich zum differenziellen Abgleich brauchen würde.
Benutzerdaten:
Auch hier werden auf meinen lokalen Datenträger Btrfs Snapshots angelegt nur mit einer anderen Rotation:
Code:
keep_hourly = 8 keep_daily = 7 keep_weekly = 4 keep_monthly = 1 keep_yearly = 0
|
|
Hier übertage ich aber nicht wie bei den Betriebssystemdaten ganze Snapsots auf meine externe Festplatte. Sondern sortiere hier die relevanten Daten aus und sichere diese direkt in ein restic Repository, sodass auch hier eine Deduplizierung stattfinden kann.
Daten für Langzeitarchivierung:
Daten, die ich aufbewahren möchte, aber selten bis ga nicht mehr ran gehen muss, sichere ich mir in ein Squashfs. Das ich zwecks Langzeitarchivierung hochgradig mit dem zstd Algorithmus auf Stufe 15 komprimiere. Dieses Dateisystem landet als Datei dann auch auf meine externe Festplatte wo ein Btrfs zum Einsatz kommt.
Ein hoch komprimiertes Squashfs bevorzuge ich gegenüber eines einfachen komprimierten Archives im Übrigen wegen der Möglichkeit, Daten per FUSE aus dem Dateisystem holen zu können und bei einen IO Fehler nicht das ganze Archiv/Dateisystem zerstört wird, sondern nur einzelne Daten in ihm. Zudem behält ein Squashfs auch alle Unix Rechte bei etc. Bei einem komprimierten Archiv müsste zudem erst immer das ganze Archiv entpackt werden, (falls es als ein großer Datenstrom angelegt wurde, wie es bei tar der Fall ist) und zudem wäre bei einem defekt alles nach dem defekt so verloren. Das eignet sich also schon mal nicht für Langzeitarchivierung.
Btrfs Konfiguration der externen Festplatte:
Das Btrfs auf der externen Festplatte habe ich mit folgendem Befehl erzeugt:
Code:
mkfs.btrfs -d DUP -m DUP -L Archiv /dev/externeplatte
|
|
Auf dieser habe ich ein Subvolumen namens @archiv angelegt, wo die Daten abgelegt werden. Die Daten lege deshalb nicht im Rootverzeichnis des Btrfs ab, weil ich so ein Snapshot von dem Subvolumen @archiv machen kann, um diesen per btrfs send an meine zweite externe Festplatte zu senden.
Jetzt fragt ihr euch bestimmt, warum ich nicht statt dem Datenprofil DUP nicht einfach das Datenprofil RAID1 von Btrfs nutze, damit Btrfs automatisch auf beiden externen Festplatten die Daten spiegelt. Ganz einfach, da ich nicht immer beide Festplatten angeschlossen haben möchte. So verwende ich quasi eine Festplatte als Master Platte und die andere fungiert als weiteres Backup. DUP verwende ich zudem auch für die Daten, weil meine Platte mit 8 TB so groß ist, das ich den ganzen Speicherplatz nicht brauche. Daher nehme ich hier gerne etwas parity auf dem gleichen Datenträger mit. Damit im Falle eines Bitflips auf dem Datenträger Btrfs die Daten reparieren kann.
Meine Btrfs liegen natürlich alle in einen LUKS Volumen. Damit Daten niemals in Klartext auf einem Datenträger landet. Da ich nie weis, ob ich ein Datenträger später vielleicht mal reklamieren oder weggeben möchte. Oder ich auch so meine Hardware mal zu Reparaturzwecken mit der Festplatte weggeben kann, ohne diese ganz ausbauen zu müssen.
LG Sebastian
|
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2003, YaBB SE Dev Team. All Rights Reserved.
|