Анамнез, так сказать:
Сервер 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