Lösung 1:
Ich würde überprüfen, was Sie sichern, und möglicherweise einen "Multi-Path" -Ansatz verwenden. Beispielsweise könnten Sie die Git-Repositories sichern, indem Sie ständig Git-Pulls auf einem Backup-Server durchlaufen. Das würde nur das Diff kopieren und Ihnen eine zweite Kopie aller Git-Repositories belassen. Vermutlich könnten Sie mit der API neue Repos erkennen.
Und verwenden Sie die "eingebauten" Sicherungsverfahren, um die Probleme usw. zu sichern. Ich bezweifle, dass die 3 TB von diesem Teil stammen, sodass Sie sehr oft Sicherungen zu sehr geringen Kosten durchführen können. Sie könnten die PostgreSQL-Datenbank auch mit einem Warm-Standby mit Replikation einrichten.
Möglicherweise stammen Ihre 3 TB aus Container-Images in der Docker-Registrierung. Müssen Sie diese sichern? Wenn ja, dann gibt es vielleicht einen besseren Ansatz dafür.
Grundsätzlich würde ich empfehlen, sich genau anzusehen, was Ihr Backup ausmacht und die Daten in verschiedenen Teilen zu sichern.
Sogar das Backup-Tool von GitLab hat Optionen, um bestimmte Teile des Systems wie die Docker-Registrierung einzuschließen/auszuschließen.
Lösung 2:
Für eine so kurze Zeit zwischen Backups (1 Stunde) verlassen Sie sich am besten auf Snapshots auf Dateisystemebene und send/recv
Unterstützung.
Wenn die Verwendung von ZoL in Ihrer Umgebung kein Problem darstellt, würde ich dringend dazu raten, es zu verwenden. ZFS ist ein sehr robustes Dateisystem und Sie werden alle Extras (z. B. Komprimierung) mögen, die es bietet. Bei Kopplung mit sanoid/syncoid
, kann es eine sehr starke Sicherungsstrategie bieten. Der Hauptnachteil ist, dass es nicht im Mainline-Kernel enthalten ist, also müssen Sie es separat installieren/aktualisieren.
Alternativ, wenn Sie sich wirklich auf Mainline-Inhalte beschränken müssen, können Sie BTRFS verwenden. Aber stellen Sie sicher, dass Sie seine (vielen) Nachteile und Pita verstehen.
Schließlich ist eine alternative Lösung die Verwendung von lvmthin
um regelmäßige Backups zu machen (zB:mit snapper
), die auf Tools von Drittanbietern angewiesen sind (z. B.:bdsync
, blocksync
, usw.), um nur Deltas zu kopieren/zu versenden.
Ein anderer Ansatz wäre, zwei zu haben replizierte Maschinen (über DRBD
), wo Sie unabhängige Schnappschüsse über lvmthin
machen .