Datensicherung mit der Kombination aus FreeFileSync und 7-zip

Anamnese, sozusagen:

Fujitsu rx300 s6 Server, RAID6 aus 6 1TB Festplatten, betrieben mit XenServer 6.2, mehrere Server laufen, darunter Ubuntu mit mehreren Shares, 3,5 Millionen Dateien, 1,5 TB Daten, die alle allmÀhlich wachsen und aufgeblÀht werden.

Aufgabe: Datenbackup vom Dateiserver einrichten, teilweise tÀglich, teilweise wöchentlich.
Wir haben eine Windows-Maschine fĂŒr das Backup mit RAID5 (ein einfacher Computer mit integriertem RAID-Controller auf dem Motherboard) sowie eine separate 2TB-Festplatte fĂŒr die Zwischenablage des aktuellen Zustands der Dateien. Jeder Linux-Distribution hĂ€tte verwendet werden können, aber diese Maschine war bereits mit einem RAID-Array und einer Windows-Lizenz vorhanden.

Wir installieren auf dem Backup-Server FreeFileSync, richten ein „Spiegeln“ aller Shares vom Dateiserver einmal tĂ€glich abends nach 18 Uhr ĂŒber den Taskplaner ein.

Wichtiger Punkt: Beim Speichern der Batch-Aufgabe unbedingt „Fenster der Aufgabe bei Beendigung schließen“ markieren, sonst vermehren sich die Prozesse.

Wir fĂŒgen temporĂ€re Dateien in die Ausschclusionsmaske ein: *.dwl, *.dwl2, *.tmp.

FreeFileSync nutzt das Netzwerk Ă€ußerst gut, das Kopieren erfolgt in mehreren Strömen, die Geschwindigkeit erreicht 80 MB/s beim Kopieren großer Dateien, kein Engpass bei kleinen Dateien festgestellt.

Die Archivierung wird nun auf dem lokalen Backup-Server erfolgen, anstelle der zuvor verwendeten TheCopier mit der Archivierung ĂŒber das Netzwerk. Übrigens, TheCopier ist hervorragend! Aber bei solchen Volumina schafft es einfach nicht alles zu ĂŒbertragen, trotz einer 1 Gbps-Schnittstelle am Backup-Server und 2 Gbps am Dateiserver (Bonding zweier Netzwerkkarten).

Ebenfalls wurde zuvor SyncToy, aber bei mehr als 1,5-2 Millionen Dateien hat es nicht mehr richtig funktioniert, es kam einfach nicht zurecht.

FĂŒr die Archivierung der erforderlichen 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-2 mal schneller)
:: -mx=1 — Kompressionsgrad (1 minimum, 9 maximum, x=[0 | 1 | 3 | 5 | 7 | 9 ])
:: -mmt=on — aktiviert Multithreading, falls nicht bereits aktiviert
:: -mtc=off — deaktiviert die 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 permanente zurĂŒck

Die Konstruktion von set now=% und so weiter ermöglicht es, das Zeitformat in den Dateinamen zu speichern, ohne Probleme zu verursachen, die entstanden, wenn die Tages- oder Monatszahl weniger als 10 war, also setzen wir eine Null.

Der Kommentar -xr!.Sync* ist ein Überbleibsel von der ursprĂŒnglich verwendeten BTSync.

Bis zu 500 GB und 700-800 Tausend Dateien arbeitete BTSync noch ganz gut, synchronisierte in Echtzeit, aber bei den aktuellen Volumina verbrauchte es viel Speicher und CPU-Ressourcen sowohl auf dem Ubuntu-Dateiserver als auch auf dem Windows-Backup-Server, wo es als Dienst ausgefĂŒhrt wurde, und so die Festplattensysteme mit stĂ€ndigen Lese- und SchreibvorgĂ€ngen belastete.

Obwohl der Kompressor 7-zip ist, archivieren wir im zip-Format anstelle des nativen 7z, da es viel schneller ist, und der Unterschied in der Kompression bei mx=1 praktisch nicht vorhanden ist, was durch viele Experimente bestÀtigt wurde.

Die Archive werden nacheinander ausgefĂŒhrt.

Die Bereinigung des Ordners mit Archiven erfolgt ebenfalls ĂŒber eine geplante Aufgabe mit dem Tool fpurge, wobei Archive, die Ă€lter als eine Woche sind, gelöscht werden.
Insgesamt haben wir eine Kopie der Dateien vom vorherigen Tag sowie Archive der letzten Woche, gelöschte Dateien werden von FreeFileSync in den Papierkorb verschoben.

Quelle: habr.com

60GB SSD 8Gb DDR4