Сервер 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-zip:
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-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:\backups\All\%now%_10-04.zip E:\10-04
C:\«Program Files»\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:\backups\All\%now%_35-110.zip E:\35-110
C:\«Program Files»\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:\backups\All\%now%_asu.zip E:\asu
C:\«Program Files»\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:\backups\All\%now%_director.zip E:\director
C:\«Program Files»\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:\backups\All\%now%_gpr.zip E:\gpr
C:\«Program Files»\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:\backups\All\%now%_otiz.zip E:\otiz
C:\«Program Files»\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:\backups\All\%now%_ps.zip E:\ps
C:\«Program Files»\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:\backups\All\%now%_pto.zip E:\pto
C:\«Program Files»\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:\backups\All\%now%_rza.zip E:\rza
C:\«Program Files»\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:\backups\All\%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 складывает в корзину.
Sazonov
А что, разве копирование в несколько потоков даёт какой-то прирост в скорости?
Sioln
Да, такое может быть в случае TCP. Утилизация сети увеличивается.
SergeyMax
Увеличивается скорее не утилизация сети, а утилизация многошпиндельного RAID-массива. С другой стороны, системная функция копирования файлов в современных Windows сама по себе льёт в несколько потоков.
Sioln
80 мегабит даст и зачуханный 5400 rpm
SergeyMax
По контексту понятно, что речь не о мегабитах, а о мегабайтах.