Бэкап дадзеных з дапамогай звязкі FreeFileSync і 7-zip

Анамнез, так бы мовіць:

Сервер Fujitsu rx300 s6, RAID6 з 6 1Тб дыскаў, падняты XenServer 6.2, круцяцца некалькі сервераў, сярод іх Убунта з некалькімі шарамі, 3,5 мільёна файлаў, 1,5 Тб дадзеных, усё гэта паступова расце і пухне.

Задача: наладзіць рэзервовае капіраванне дадзеных з файлавага сервера, часткова штодня, часткова штотыдзень.
Маем віндовую машыну для бэкапу з RAID5 (па беднасці звычайны сістэмнік з убудаваным у маці RAID-кантролерам) плюс асобная 2Тб кружэлка для прамежкавага капіявання бягучага стану файлаў. Можна было выкарыстоўваць любы лінукс дыстрыбутыў, але гэтая машына ўжо была ў наяўнасці з рэйд-масівам і віндоуз-ліцэнзіяй.

Усталёўваны на бэкап-сервер FreeFileSync, наладжваем «люстэрка» за ўсё запар з усіх шар файлсервера раз у суткі ўвечары пасля 18 гадзін запускам праз планавальнік.

Важны момант: пры захаванні пакетнай задачы абавязкова адзначыць "Зачыняць акно задачы пры завяршэнні", інакш працэсы будуць размнажацца і пладзіцца.

У выключэнні па масцы які кідаецца часавыя файлы: *.dwl, *.dwl2, *.tmp.

FreeFileSync надзвычай добра выкарыстоўвае сетку, капіраванне ідзе ў некалькі патокаў, хуткасць дасягае 80 Мбс пры капіяванні буйных файлаў, затыка на дробных файлах выяўлена не было.

Архіваванне будзем праводзіць ужо на лакальным бэкапным серверы, замест выкарыстоўванага раней TheCopier з архіваваннем па сетцы. Дарэчы, TheCopier выдатны! Але пры такіх аб'ёмах проста не паспявае ўсё перакінуць, нягледзячы на ​​1Гбс інтэрфейс на бэкапніку і 2Гбс на файлавым (бонд двух сеткавых карт).

Таксама раней выкарыстоўваўся SyncToy, Але пры колькасці файлаў больш за 1,5-2 мільёнаў ён перастаў нармальна працаваць, проста не спраўляўся.

Для архівавання патрэбных тэчак пішам батнік для 7-маланкі:

set now=%TIME:~0,-3%
set now=%now::=.%
set now=%now: =0%
set now=%DATE:~-4%.%DATE:~3,2%.%DATE:~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 - стварэнне архіва
:: -tzip або -t7z - тып архіва (zip у 1.5-2 разу хутчэй)
:: -mx=1 — ступень сціску (1 мінімум, 9 максімум значэння x=[0 | 1 | 3 | 5 | 7 | 9])
:: -mmt=on - уключае шматструменнасць дзе раптам не ўключаная
:: -mtc=off - адключае таймстампы файлавай сістэмы (калі захаваны, зменены і г.д.)
:: -ssw - сціскае таксама файлы, адчыненыя для запісу
:: -xr!.Sync* - выключае часовыя файлы BtSync з архівацыі, пакідаючы сталыя

Канструкцыя з set now=% і гэтак далей дазваляе захаваць фармат запісу часу ў імя файла без праблем, якія ўзнікалі, калі лік дня ці месяца было меней 10, гэта значыць падстаўляны нулік.

Каментар -xr!.Sync* гэта рудымент, пакінуты ад першапачаткова скарыстанага BTSync.

Да 500 Гб і 700-800 тысяч файлаў BTSync працаваў яшчэ нічога, сінхранізаваў на лета, але пры бягучых аб'ёмах вельмі жэр памяць і рэсурсы працэсара як на убунтавым файл-серверы, так і на віндовым бэкапным, дзе быў запушчаны службай, а таксама проста гвалтаваў дыскавую сістэму пастаяннымі чытаннямі-запісамі.

Хоць архіватар і 7-zip, але які архівуецца ў фармат zip замест роднага 7z, бо нашмат хутчэй, а розніцы ў сціску пры mx=1 практычна няма ніякай, праверана шматлікімі эксперыментамі.

Архівы выконваюцца па чарзе.

Чыстка тэчкі з архівамі адбываецца таксама праз запланаваную задачу з дапамогай утыліты fpurge, пакідаючы архівы не старэйшыя за тыдзень.
У выніку маем копію файлаў за папярэдні дзень, а таксама архівы за апошні тыдзень, выдаленыя файлы FreeFileSync складае ў кошык.

Крыніца: habr.com

Дадаць каментар