Назад | Перейти на главную страницу

Как сделать резервную копию миллионов небольших файлов?

Как лучше всего сделать резервную копию миллионов небольших файлов за очень короткий период времени? У нас есть менее 5 часов на резервное копирование файловой системы, содержащей около 60 миллионов файлов, в основном небольших файлов.

Мы пробовали несколько решений, таких как richcopy, 7z, rsync, и все они, похоже, переживают тяжелые времена. Ищем самый оптимальный способ ...

Мы готовы сначала поместить файл в архив или перенести файл в другое место через сеть или перенос с жесткого диска.

Спасибо

Я настоятельно рекомендую использовать систему хранения файлов, которая позволяет делать снимки тома и резервные копии из снимка. Таким образом, это мало влияет на реальный сервер, и система резервного копирования может не торопиться с резервным копированием, не беспокоясь об основной системе. Вы не упоминаете операционную систему, но что-то вроде ZFS или файловой системы NetApp позволяет это, и обе они используются для этой точной функции повсеместно. Я уверен, что есть другие файловые системы, которые предлагают это, но я знаю, что они работают.

Надеюсь это поможет.

Я работал с сервером, на котором хранилось около 20 миллионов файлов, из которых 95% имеют размер менее 4 КБ и около 50% удаляются каждые 90 дней. Они используют необработанный образ диска для резервного копирования. Они также создают индексный файл имен, хэша md5 и даты, созданный с помощью сценария, и используют его для отслеживания содержимого.

Первоначальное решение для резервного копирования заключалось в загрузке файлов в виде больших двоичных объектов в базу данных по сигнатуре md5. Это было прекращено, поскольку создание миллионов хэшей md5 заняло больше времени, чем создание резервной копии необработанного образа.

Вам действительно нужно создавать резервные копии всех их каждый раз? Если вы делаете инкрементное / дифференциальное резервное копирование, вам нужно только создать резервную копию изменения каждый раз, а не все задействованные файлы.

Как вы смотрели на rsync, вы можете посмотреть на использование rsnapshot, который создает своего рода инкрементную резервную копию.

Затем сделайте резервную копию всего тома (раздела) как «сырого» устройства.

Узкими местами здесь будут файловая система и сам жесткий диск. При работе со многими небольшими файлами FS постоянно считывает метаданные о файлах, которые могут быть отдельными от файла, или файлы, которые вы читаете, могут не находиться в хорошем непрерывном скоплении на диске. В любом случае головка привода должна двигаться много.

Чем быстрее вы превратите все эти маленькие файлы в файлы большего размера, тем быстрее будет ваш общий процесс.

К сожалению, если все, что вы делаете, - это копируете эти файлы один раз, то хранение их в одном большом файле, таком как архив, только замедлит процесс.

читать все файлы> архив> место резервной копии

VS

прочитать все файлы> место для резервной копии

Оптимальными способами было бы либо скопировать все файлы один раз во вторичное место, а затем использовать измененные даты и размеры, либо бит архива, поскольку вы используете Windows (не проверка содержимого, например хэши, что все равно будет включать чтение файлов ), чтобы определить, какие файлы были изменены, и скопировать только их во вторичное расположение и сделать резервную копию оттуда. Или использовать систему, которая обходит FS, например, копию RAW, как предлагает poige.

Windows Server Backup в Windows 2008 и более поздних версиях создает образы на уровне тома, поэтому ему не нужно троллить все миллионы фрагментов метаданных файлов. Он просто делает снимок (или теневое копирование тома на языке MS), а затем по порядку выполняет резервное копирование всех используемых блоков в файловой системе. Чтение является последовательным, поэтому выполняется очень быстро и записывает результаты в большой файл .vhd на другом томе или в общей сетевой папке.

Есть несколько недостатков: каждая резервная копия представляет собой полную резервную копию, нет сжатия, и вы можете хранить только один «образ» для каждой целевой папки, если вы собираетесь использовать общий сетевой ресурс. Вы можете преодолеть последнее с помощью сценариев, а первое - с помощью других инструментов, таких как 7-zip, rsync или любого другого инструмента резервного копирования / сжатия / дедупликации, который может обрабатывать необработанные файлы.

Вы, вероятно, в конечном итоге используете командную строку wbadmin интерфейс для этого; игнорируйте графический интерфейс, он слишком упрощен для большинства случаев использования.

Вот что мы сделали:

Мы купили NAS с сервером хранения Windows 2008 R2 на нем. Создан целевой объект ISCSI, который фактически представляет собой один большой файл (.vhd). Смонтирован целевой объект ISCSI и перемещены все файлы на виртуальный диск.

Теперь мы делаем резервную копию vhd с помощью нашего программного обеспечения резервного копирования. Сделать резервную копию одного большого файла намного быстрее, чем множества маленьких файлов.

Вы также можете установить программное обеспечение резервного копирования на NAS и подключить к нему свой магнитофон. Таким образом, вам не нужно использовать двойное хранилище (зеркальное копирование данных и резервное копирование зеркальных данных, чтобы выиграть время)