История для анализа:
Сервер Fujitsu rx300 s6, RAID6 из 6 1Тб дисков, работает на XenServer 6.2, запущено несколько серверов, включая Ubuntu с несколькими файловыми шарами, 3,5 миллиона файлов, 1,5 Тб данных, которые постепенно растут.
Задача: настроить резервное копирование данных с файлового сервера, частично ежедневно, частично еженедельно.
Имеется Windows-машина для резервного копирования с RAID5 (бюджетный системный блок с встроенным RAID-контроллером) плюс отдельный 2Тб диск для промежуточного копирования текущего состояния файлов. Можно было использовать любой дистрибутив Linux, но эта машина уже была в наличии с RAID-массивом и лицензией Windows.
Устанавливаем на сервер резервного копирования , настраиваем «зеркало» всех файлов на файловом сервере раз в сутки вечером после 18 часов с запуском через планировщик.
Важно: при сохранении пакетной задачи обязательно отметьте «Закрывать окно задачи при завершении», иначе процессы будут плодиться и размножаться.
В исключения по маске добавляем временные файлы: *.dwl, *.dwl2, *.tmp.
FreeFileSync очень эффективно использует сеть, копирование происходит в нескольких потоках, скорость достигает 80 Мбс при копировании крупных файлов, заторов при копировании мелких файлов обнаружено не было.
Архивирование будет происходить уже на локальном сервере резервного копирования, вместо ранее использовавшегося для архивирования по сети. Кстати, TheCopier замечательный! Но при таких объемах просто не успевает все переместить, несмотря на 1Гбит/с интерфейс на сервере резервного копирования и 2Гбит/с на файловом (дублирование двух сетевых карт).
Ранее также использовался , но при этом количестве файлов более 1,5-2 миллионов он перестал нормально работать, просто не справлялся.
Для архивирования необходимых папок пишем батник для :
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 — създаване на архив
:: -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 работеше добре, синхронизирайки на летища, но при текущите обеми много ядеше памет и ресурси на процесора както на файловия сървър с Ubuntu, така и на Windows резервното, където беше пуснато като услуга, и просто насищаше дисковата система с постоянни четения-записи.
Въпреки че архиваторът е 7-zip, архивираме в zip формат вместо родния 7z, тъй като е много по-бързо, а разликата в компресията при mx=1 практически не съществува, проверено с много експерименти.
Архивите се изпълняват последователно.
Почистването на папката с архиви също се извършва чрез планирано задача с помощта на утилитата fpurge, оставяйки архиви не по-стари от седмица.
В резултат имаме копие на файловете за предходния ден, а също и архиви за последната седмица, изтритите файлове FreeFileSync поставя в кошчето.
Източник: habr.com
