Datensicherung mit der Kombination von FreeFileSync und 7-zip

Ein kurzer Überblick:

Server Fujitsu rx300 s6, RAID6 aus 6 x 1TB Festplatten, betrieben unter XenServer 6.2, mehrere Server laufen, darunter Ubuntu mit mehreren Freigaben, 3,5 Millionen Dateien, 1,5 TB Daten, alles wächst und expandiert schrittweise.

Aufgabe: Daten von dem Dateiserver teilweise täglich und teilweise wöchentlich zu sichern.
Wir haben eine Windows-Maschine für die Sicherung mit RAID5 (ein einfaches System mit integrierten RAID-Controller auf dem Motherboard) sowie eine separate 2TB-Festplatte für die Zwischenkopie des aktuellen Zustands der Dateien. Jeder Linux-Distributor hätte verwendet werden können, aber diese Maschine war bereits mit dem RAID-Verbund und einer Windows-Lizenz verfügbar.

Wir installieren auf dem Backup-Server FreeFileSync, und konfigurieren das "Spiegeln" aller Freigaben des Dateiservers einmal täglich abends nach 18 Uhr über den Task Scheduler.

Wichtiger Punkt: Bei der Speicherung der Batch-Aufgabe unbedingt die Option „Fenster der Aufgabe bei Abschluss schließen“ aktivieren, sonst werden Prozesse unkontrolliert erzeugt und vermehrt.

Temporäre Dateien werden per Maske ausgeschlossen: *.dwl, *.dwl2, *.tmp.

FreeFileSync nutzt das Netzwerk äußerst effektiv, die Kopiergeschwindigkeit erreicht 80 Mbit/s beim Übertragen großer Dateien, und es wurden keine Engpässe bei kleinen Dateien festgestellt.

Die Archivierung erfolgt nun auf dem lokalen Backup-Server, anstelle des vorher verwendeten. TheCopier mit der Archivierung über das Netzwerk. Übrigens, TheCopier ist großartig! Bei solch großen Datenmengen kann er jedoch nicht alles schnell genug übertragen, trotz 1 Gbit/s Schnittstelle am Backup-Server und 2 Gbit/s am Dateiserver (Bonding von zwei Netzwerkkarten).

Zuvor wurde auch SyncToyverwendet, aber bei mehr als 1,5-2 Millionen Dateien hat es nicht mehr richtig funktioniert, es kam einfach nicht klar.

Für die Archivierung der benötigten Ordner schreiben wir ein Batch-Skript für 7-zip:

set now=%TIME:~0,-3%
set now=%now::=.%
set now=%now: =0%
set now=TE:~-4%.TE:~3,2%.TE:~0,2%_%now%
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_10-04.zip E:10-04
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_35-110.zip E:35-110
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_asu.zip E:asu
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_director.zip E:director
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_gpr.zip E:gpr
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_otiz.zip E:otiz
C:„Program Files“7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_ps.zip E:ps
C:„Program Files“7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_pto.zip E:pto
C:„Program Files“7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_rza.zip E:rza
C:„Program Files“7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_smeta.zip E:smeta

:: a — Archiv erstellen
:: -tzip oder -t7z — Archivtyp ( zip ist 1,5- bis 2-mal schneller )
:: -mx=1 — Kompressionsgrad (1 Minimum, 9 Maximum Werte x=[0 | 1 | 3 | 5 | 7 | 9 ])
:: -mmt=on — aktiviert Multithreading, wenn es nicht bereits aktiviert ist
:: -mtc=off — deaktiviert Zeitstempel des Dateisystems (wann gespeichert, geändert usw.)
:: -ssw — komprimiert auch Dateien, die zum Schreiben geöffnet sind
:: -xr!.Sync* — schließt temporäre Dateien von BtSync von der Archivierung aus und lässt dauerhafte Dateien bestehen

Die Konstruktion aus set now=% usw. ermöglicht es, das Zeitformat im Dateinamen ohne Probleme zu speichern, die auftraten, wenn die Tages- oder Monatszahl weniger als 10 war, also wird eine Null eingefügt.

Kommentar -xr!.Sync* ist ein Überbleibsel von der ursprünglich verwendeten Konfiguration. BTSync.

Bis zu 500 GB und 700-800 Tausend Dateien – BTSync funktionierte anfangs gut, synchronisierte in Echtzeit, jedoch benötigte es bei den aktuellen Volumen sehr viel RAM und CPU-Ressourcen, sowohl auf dem Ubuntu-Dateiserver als auch auf dem Windows-Backup-Server, wo es als Dienst ausgeführt wurde. Zudem belastete es das Dateisystem durch ständige Lese- und Schreibvorgänge.

Obwohl wir 7-Zip als Archivierer nutzen, verpacken wir im Zip-Format anstelle des nativen 7z, da dies wesentlich schneller ist und es kaum Unterschiede in der Kompression bei mx=1 gibt, was durch zahlreiche Experimente bestätigt wurde.

Die Archive werden nacheinander erstellt.

Die Reinigung des Archivordners erfolgt ebenfalls über einen Zeitplan mit dem Tool fpurge, wobei Archive, die älter als eine Woche sind, gelöscht werden.
In der Folge haben wir eine Kopie der Dateien vom Vortag sowie Archive der letzten Woche. Gelöschte Dateien werden von FreeFileSync in den Papierkorb verschoben.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster