Da btrfs in diesem Monat die Produktion in Oracle EL 14 erreicht hat (zusammen mit der Arbeit mit fsck und dem Scrubben von Linux 3.2), dachte ich darüber nach, meine aktuelle Backup-Lösung neu zu entwerfen, um sie zu nutzen. Beachten Sie, dass ich darüber nachdenke, dies für kleine Datenmengen mit weniger als 10 TB zu tun, die relativ statisch sind (weniger als 1% werden täglich geändert). Kurz gesagt, eine SMB / SOHO-Backup-Lösung.
Was die Sicherung tun soll:
- Erstellen Sie einen LVM-Snapshot von ext [234] / XFS / JFS auf dem Produktionsserver
rsync
/ Geänderte Daten an btrfs auf dem Sicherungsserver übertragen- Snapshot des btrfs-Dateisystems
- Löschen Sie alte Schnappschüsse, wenn der verfügbare Speicherplatz knapp wird
Vorteile:
- Alle Dateien leicht verfügbar, keine Dekomprimierung oder Loop-Montage erforderlich
- Vergangene Schnappschüsse auch leicht verfügbar ...
- ... damit ich sie als schreibgeschützte Samba-Freigaben freigeben kann (mit Unterstützung für Schattenkopien)
- Snapshots benötigen dank Copy-on-Write nur minimalen Speicherplatz (Snapshot ohne Änderungen benötigt buchstäblich wenige KB auf der Festplatte)
- Hohe Backup-Konsistenz: Prüfsummen für Dateien, Bereinigung aller Daten und integrierte Redundanz
Fragen:
- Gibt es eine Sicherungslösung (in Form von Bacula, BackupPC usw.), die das Copy-on-Write-Dateisystem erkennt oder einfach erkennt?
- Oder muss ich eine In-Home-
rsync
Lösung verwenden? - Was machen Leute mit ZFS-Boxen für Backups, um ihre Linux-Maschinen zu sichern?
cons
! Eine davon ist, dass Btrfs-Snapshots nur Teilsicherungen entsprechen (keine physische Kopie pro Sicherung Ihrer Datei auf der CD). Dies könnte bei Problemen mit der Festplattenoberfläche von Bedeutung sein. Beachten Sie, dass Sie eine Duplizierung erzwingen können, wenn die native RAID1-Unterstützung in Btrfs enthalten ist.pro
- mehr als zwei Kopien werden nicht wirklich benötigt, wenn Sie Prüfsummen haben und den FS aktiv schrubben, drei werden wahrscheinlich mit RAID6-Unterstützung geliefert. Wie gesagt, es handelt sich um ein Setup für ein dediziertes Backup-System, nicht um "Backup" -Kopien innerhalb des FS auf einem einzelnen Computer. Das wäre "RAID ist kein Backup" und "Snapshots sind kein Backup".cp -a
undrsync
sind dafür ...rsync -a --delete /home/user /mnt/butterfs/backups/ && snapper create
- abgesehen davon , dass ich nach dem Sichern einen Snapshot erstellt habe, was meinen Sie mit COW-fähig?rsync
without erhalten--inplace
Sie mehrere Kopien derselben Daten im Remote-Dateisystem. (rsync kopiert normalerweise Daten in eine temporäre versteckte Datei und verschiebt sie dann über die alte Datei. Mit einem Copy-On-Write-Dateisystem erhalten Sie auf diese Weise zwei Kopien mit unveränderten Daten.)Antworten:
Ich habe in der letzten Woche intensiv nach etwas Ähnlichem gesucht. Ich habe keine Lösung für alle 4 Schritte gefunden. Es gibt zahlreiche Blogs von Heimanwendern, die den ' rsync to btrfs' -Typ von Backups ausprobieren , und alle wichtigen Btrfs-Wikis beschreiben, wie Btrfs-Snapshots ausgeführt werden.
Es gibt auch einige Leute, die versuchen, Btrfs-Schnappschüsse auf unterschiedliche Weise zu drehen . Sie sind jedoch die erste Person, die Snapshots basierend auf dem Speicherplatz drehen möchte. Ich spiele selbst mit btrfs-snap , das eine Reihe von stündlichen, wöchentlichen und monatlichen Schnappschüssen erstellt, und es ist nett und einfach.
Das Dirvish- Projekt scheint viele Ihrer Anforderungen zu erfüllen. Einige Entwickler versuchen, Dirvish in Btrfs zu integrieren . Das Dirvish-Projekt scheint jedoch etwas ins Stocken geraten zu sein .
Zu diesem Zeitpunkt sind Sie der Kurve voraus.
quelle
Laut Avi Miller (sein Vortrag während LinuxConf.AU) wird an einem BTRFS-Senden / Empfangen gearbeitet. Es ist schneller als rsync, da es keine Verzeichnisse durchsuchen muss, um Änderungen in Dateien zu finden. Ich weiß jedoch nicht, ob es ein voraussichtliches Veröffentlichungsdatum gibt.
Es gibt jedoch ein in btrfs-progs eingebautes Dienstprogramm, das jede Datei auflistet, die sich zwischen snapshots / etc. Geändert hat. Btrfs subvolume find-new
quelle
Ich arbeite an einem Betriebssystem-Backup-System, das BackupPC ähnelt. Ich habe darüber nachgedacht. Was mich davon abgehalten hat, das zu implementieren, ist, dass Sie keine festen Verbindungen zwischen Subvolumes herstellen können. Sie können auch nur Momentaufnahmen von Subvolumes erstellen -> Ein Subvolume pro Backup-Client. Daher kann die Deduplizierungsfunktion auf Dateiebene nicht gleichzeitig mit diesem Ansatz ausgeführt werden. Und diese Deduplizierung auf Dateiebene spart normalerweise viel Platz. Möchten Sie nur einen Server sichern?
Wenn btrfs eine Deduplizierung auf Blockebene hatte, kann dieses Problem wahrscheinlich vermieden werden, aber das ist normalerweise auch unerträglich langsam ...
Dann würde ein solcher Ansatz natürlich eine enge Integration in ein Dateisystem (btrfs) mit sich bringen, so dass dies eine optionale Funktion sein sollte.
Ich frage, weil ich darüber nachdenke, eine solche Kuh-Funktion hinzuzufügen, aber ich weiß nicht, ob ich das tun soll, weil die oben genannten Nachteile vorliegen.
Edit: UrBackup unterstützt Backups wie in der Frage beschrieben jetzt mit Linux-Kerneln> = 3.6 (mit Cross-Volume-Reflink-Unterstützung). Sehen Sie, wie es eingerichtet wird.
quelle
cp --reflink
) ist entweder bereits implementiert oder wird in naher Zukunft implementiert. Online-Deduplizierung in FS ist entweder langsam (lessfs) oder benötigt große Mengen an RAM (ZFS) so je nach wäre es wirklich eine schlechte Funktion in Backup - Software sein. In jedem Fall wird die BTRFS-orientierte Backup-Software ein großes Publikum haben, sie sollte doch die nächste ext3 sein.Die btrfs-Wiki-Seite " Use Cases " listet einige Tools auf: SnapBtr , Snapper, btrfs-time-machine, UrBackup.
Es gibt einen Vorschlag für ein eingebautes Tool namens Autosnap :
Ab Oktober 2013 heißt es jedoch im Wiki : "Die Autosnap-Funktionalität ist derzeit nicht in der Upstream-Version von btrfs enthalten."
quelle
Ich hatte ähnliche Frustrationen und habe am Ende ein paar Skripte erstellt, die ich Snazzer nenne . Zusammen bieten sie Schnappschusserstellung, Bereinigung, Messung und Transport über ssh (können aber ab heute auch lokale Dateisysteme senden / empfangen). Messungen sind nur Berichte über sha512sum und PGP-Signaturen von Snapshot-Pfaden. Es ist noch nicht fertig für die Veröffentlichung, aber ich würde mich über Feedback freuen, wenn jemand Zeit hat, es zu diesem frühen Zeitpunkt zu überprüfen.
CLI-nur an dieser Stelle, aber ich habe einige Zeit gedauert, um es einfach mit Subvolumes vielen Btrfs auf Systeme verwendet werden - in der Regel Ich habe getrenntes Subvolumes für
/var/cache
,/home
etc. , die von Snapshot- oder mehr / weniger ausgeschlossen kann es erforderlich sein aggressive Schnittpläne.Ich befürchte, der Bereinigungsalgorithmus entscheidet nur über das Vorhandensein der Schnappschüsse und ihrer Daten. Es gibt nichts, was Sie bereinigen können, bis eine Einschränkung der Festplattennutzung erfüllt ist. Welche löschen Sie zuerst? Reduzieren Sie zuerst die Anzahl der Stunden- oder Tageszeitungen? Lassen Sie vielleicht den ältesten fallen, z. Jährliche? Unterschiedliche Bereitstellungen haben unterschiedliche Prioritäten. und ich kann nicht wissen, ob dies die einzige Sicherungsstufe ist (in diesem Fall sollten Sie bei rechtlichen / versicherungstechnischen Verpflichtungen die ältesten Sicherungen nicht löschen), oder nur eine Zwischenstufe (in diesem Fall haben Sie diese Jahrbücher wahrscheinlich an einem sicheren Ort archiviert anderswo).
Ich werde irgendwann ZFS-Unterstützung und / oder Interoperabilität hinzufügen. es ist hauptsächlich in posix-ish-Shell und Perl geschrieben, da ich im Moment keine Abhängigkeiten mehr haben möchte. Ich hoffe, dass irgendwann eine sauberere alternative Python-Implementierung parallel gepflegt wird.
quelle