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 , 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 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 , 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 :
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 .
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
