Как 7 ГБ макета данных? Сколько файлов? Какие файлы (БД, картинки, текст, документы, документы)? Каков средний / меньший / больший размер файла? Как изменяются файлы: новые файлы добавляются, файлы полностью изменяются, некоторые байты меняются / добавляются к некоторым существующим файлам?
Это важная информация для правильного выбора способа резервного копирования ...
Например, если ваши файлы не маленькие, просто скопируйте в другую папку (можно найти алгоритм для различий на уровне каталогов в этом устройстве ).
7 ГБ огромен для zip-архива. Конечно, вы можете работать с zip-файлами такого размера, но, по-моему, это неправильный формат для инкрементного резервного копирования.
Одна из проблем, связанных с форматом zip, заключается в том, что для обновления файла необходимо удалить предыдущую версию, поэтому все содержимое zip необходимо переписать ... в лучшем случае содержимое файла перемещается.
Так что, если вы хотите регулярно обновлять резервную копию (например, каждый день), обычный формат архива - не лучший кандидат.
Я бы предложил использовать какой-нибудь формат плоского файла, такой как наш Open Source Synopse Big Table , и хранить либо простое содержимое, либо сжатую версию (не используйте формат zip / deflate, который работают медленно, но, например, наш алгоритм SynLZ , который быстрее любого другого - даже быстрее, чем LZO - для сжатия). Если сжатие выполняется быстрее, чем доступ к диску, резервное копирование будет выполняться быстрее: сжатие / сжатие медленнее, чем доступ к диску для сжатия, но SynLZ намного быстрее, поэтому вы сэкономите время за счет сжатия содержимого SynLZ.
В Big Table вы можете использовать метаданные в памяти для атрибутов файла (имя, версия, дата, атрибуты, идентификатор предыдущей версии ...), а затем разрешить сжатый контент на диске.
Если файлы огромны, и изменяются только некоторые байты, рассмотрите возможность использования двоичного различий вместо записи всего содержимого каждый раз, чтобы хранить только разницу между основными версиями. Вот одна единица , что очень быстро, и мы используем для хранения различий между версиями для части управления версиями файла нашего инструмента SynProject .