5

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

В настоящее время я планирую сжать их с помощью 7zip в файлы .7z , но я бы предпочел сжимать дерево папок большими чеками, чтобы каждый архив содержал ~ 350Mb-1Gb данных (до сжатия), и мне интересно, как устойчивый формат для повреждения.

Структура архива такова, что "незначительный" ущерб можно исправить?
Или, если повреждение является "серьезным", уничтожит ли он весь архив - или только эти файлы в определенном месте повреждения в архиве?

По сути, скрытый вопрос здесь заключается в следующем: должен ли я упаковать много небольших отдельных архивов или несколько больших?

4 ответа4

7

Любой инструмент сжатия будет подвержен проблемам с повреждением очень больших файлов. Лучше всего, вероятно, использовать меньшие файлы, но НЕ тома большего архива - как отдельные архивы.

AFAIK 7zip потеряет весь архив, если у вас есть повреждение файла в части архива.

5

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

Если вы хотите иметь возможность восстанавливать не поврежденные файлы из поврежденного архива, вы должны создать не твердый архив, такой как zip с DEFLATE. Я пробовал несколько форматов, в том числе ARC, который допускает нестандартные архивы, но он был менее устойчивым, чем zip. Существует также формат PEA (от PEAzip), который допускает частичное извлечение, и RAR (от WinRAR), который специально имеет опцию "сохранять поврежденные файлы", чтобы разрешить частичное извлечение.

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

4

Если вам нужна избыточность в вашем сжатии, я бы предложил использовать файлы rar/par/par2. Это был стандарт избыточности сжатия для файлов, отправляемых через группы новостей и множество других источников. Вы разбиваете свои файлы на множество rar-файлов ... и вам даже может не хватать целых rar-файлов и все же восстанавливать ваши данные. Для данных, которые плохо сжимаются, это может увеличить общий размер, но это цена, которую вы платите за избыточность.

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .