Kopia zapasowa danych przy użyciu FreeFileSync i 7-zip

Anamneza, że ​​tak powiem:

Serwer Fujitsu rx300 s6, RAID6 6 dysków 1 TB, zainstalowany XenServer 6.2, kilka serwerów wirujących, w tym Ubuntu z kilkoma kulkami, 3,5 miliona plików, 1,5 TB danych, to wszystko stopniowo rośnie i pęcznieje.

Zadanie: skonfiguruj kopię zapasową danych z serwera plików, częściowo codziennie, częściowo co tydzień.
Mamy maszynę do tworzenia kopii zapasowych Windows z RAID5 (kiepska standardowa jednostka systemowa z kontrolerem RAID wbudowanym w matkę) plus osobny dysk 2 TB do pośredniego kopiowania bieżącego stanu plików. Można było używać dowolnej dystrybucji Linuksa, ale ta maszyna była już dostępna z macierzą raid i licencją Windows.

Zainstaluj na serwerze zapasowym FreeFileSync, raz dziennie wieczorem po 18 godzinach konfigurujemy „lustro” wszystkiego z rzędu ze wszystkich udziałów serwera plików, uruchamiając je przez harmonogram.

Ważny punkt: zapisując zadanie wsadowe, pamiętaj o zaznaczeniu opcji „Zamknij okno zadania po zakończeniu”, w przeciwnym razie procesy będą się mnożyć.

Wrzucamy pliki tymczasowe do wyjątków masek: *.dwl, *.dwl2, *.tmp.

FreeFileSync bardzo dobrze wykorzystuje sieć, kopiowanie odbywa się w kilku wątkach, przy kopiowaniu dużych plików prędkość sięga 80 Mbps, na małych plikach nie stwierdzono blokowania.

Archiwizacja zostanie przeprowadzona na lokalnym serwerze kopii zapasowych, a nie na dotychczas używanym Kopiarka z archiwizacją sieciową. Swoją drogą, TheCopier jest świetny! Ale przy takich wolumenach po prostu nie ma czasu na transfer wszystkiego, pomimo interfejsu 1Gbps na kopii zapasowej i 2Gbps na pliku (połączenie dwóch kart sieciowych).

Również wcześniej używany SyncZabawka, ale gdy liczba plików przekroczyła 1,5-2 miliony, przestał działać normalnie, po prostu nie mógł sobie poradzić.

Aby zarchiwizować niezbędne foldery, piszemy plik wsadowy dla 7-zip:

ustaw teraz=%CZAS:~0,-3%
ustaw teraz=%teraz::=.%
ustaw teraz=%teraz: =0%
ustaw teraz=%DATA:~-4%.%DATA:~3,2%.%DATA:~0,2%_%teraz%
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 - tworzenie archiwum
:: -tzip lub -t7z - typ archiwum (zip jest 1.5-2 razy szybszy)
:: -mx=1 — stopień kompresji (1 minimalna, 9 maksymalnych wartości x=[0 | 1 | 3 | 5 | 7 | 9 ])
:: -mmt=on - włącza wielowątkowość tam, gdzie nie jest włączona
:: -mtc=off - wyłącza znaczniki czasu systemu plików (przy zapisywaniu, modyfikowaniu itp.)
:: -ssw - kompresuje także pliki otwarte do zapisu
:: -xr!.Sync* - wyklucza z archiwizacji tymczasowe pliki BtSync, pozostawiając pliki trwałe

Konstrukcja set now=% itd. pozwala na zapisanie formatu czasu nagrywania w nazwie pliku bez problemów, które pojawiały się, gdy numer dnia lub miesiąca był mniejszy niż 10, czyli podstawialiśmy zero.

Komentarz -xr!.Sync* jest pozostałością po pierwotnie używanym BTSync.

Do 500 GB i 700-800 tysięcy plików BTSync nadal działał dobrze, synchronizował się w locie, ale przy obecnych wolumenach bardzo zużywał pamięć i zasoby procesora zarówno na serwerze plików Ubuntu, jak i na kopii zapasowej Windows, gdzie został uruchomiony przez usługę, a także po prostu zgwałcił system dyskowy poprzez ciągłe odczyty i zapisy.

Mimo, że archiwizator to 7-zip, to archiwizujemy go w formacie zip, a nie natywnym 7z, bo jest dużo szybszy i praktycznie nie ma różnicy w kompresji przy mx=1, zostało to zweryfikowane wieloma eksperymentami.

Archiwa są wykonywane jedno po drugim.

Folder z archiwami jest również czyszczony w ramach zaplanowanego zadania za pomocą narzędzia fpurge, pozostawiając archiwa nie starsze niż tydzień.
W rezultacie mamy kopię plików z poprzedniego dnia, a także archiwa z ostatniego tygodnia; FreeFileSync umieszcza usunięte pliki w koszu.

Źródło: www.habr.com

Dodaj komentarz