Анамнез, так бы мовіць:
Сервер Fujitsu rx300 s6, RAID6 з 6 1Тб дыскаў, падняты XenServer 6.2, круцяцца некалькі сервераў, сярод іх Убунта з некалькімі шарамі, 3,5 мільёна файлаў, 1,5 Тб дадзеных, усё гэта паступова расце і пухне.
Задача: наладзіць рэзервовае капіраванне дадзеных з файлавага сервера, часткова штодня, часткова штотыдзень.
Маем віндовую машыну для бэкапу з RAID5 (па беднасці звычайны сістэмнік з убудаваным у маці RAID-кантролерам) плюс асобная 2Тб кружэлка для прамежкавага капіявання бягучага стану файлаў. Можна было выкарыстоўваць любы лінукс дыстрыбутыў, але гэтая машына ўжо была ў наяўнасці з рэйд-масівам і віндоуз-ліцэнзіяй.
Усталёўваны на бэкап-сервер
Важны момант: пры захаванні пакетнай задачы абавязкова адзначыць "Зачыняць акно задачы пры завяршэнні", інакш працэсы будуць размнажацца і пладзіцца.
У выключэнні па масцы які кідаецца часавыя файлы: *.dwl, *.dwl2, *.tmp.
FreeFileSync надзвычай добра выкарыстоўвае сетку, капіраванне ідзе ў некалькі патокаў, хуткасць дасягае 80 Мбс пры капіяванні буйных файлаў, затыка на дробных файлах выяўлена не было.
Архіваванне будзем праводзіць ужо на лакальным бэкапным серверы, замест выкарыстоўванага раней
Таксама раней выкарыстоўваўся
Для архівавання патрэбных тэчак пішам батнік для
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* гэта рудымент, пакінуты ад першапачаткова скарыстанага
Да 500 Гб і 700-800 тысяч файлаў BTSync працаваў яшчэ нічога, сінхранізаваў на лета, але пры бягучых аб'ёмах вельмі жэр памяць і рэсурсы працэсара як на убунтавым файл-серверы, так і на віндовым бэкапным, дзе быў запушчаны службай, а таксама проста гвалтаваў дыскавую сістэму пастаяннымі чытаннямі-запісамі.
Хоць архіватар і 7-zip, але які архівуецца ў фармат zip замест роднага 7z, бо нашмат хутчэй, а розніцы ў сціску пры mx=1 практычна няма ніякай, праверана шматлікімі эксперыментамі.
Архівы выконваюцца па чарзе.
Чыстка тэчкі з архівамі адбываецца таксама праз запланаваную задачу з дапамогай утыліты fpurge, пакідаючы архівы не старэйшыя за тыдзень.
У выніку маем копію файлаў за папярэдні дзень, а таксама архівы за апошні тыдзень, выдаленыя файлы FreeFileSync складае ў кошык.
Крыніца: habr.com