Имеются ли разделители на уровне блоков?

Достаточно просто, когда tar-файл сделан на диске, будут ли экстенты дедуплицируемыми с экстентами внутри и / или вне tar? Я прошу в теоретическом смысле, поэтому, если экстенты данных идентичны внутри tar (без сдвига или разделения в пределах экстентов для того, чтобы скомбинировать), тогда теоретически экстенты будут одинаково соответствовать тем, которые находятся за пределами tar, и поэтому будут дедуплицируемыми ,

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

Очевидно, я говорю о несжатом tar, в частности GNU tar. Я просмотрел стандарт GNU tar и, похоже, поддерживает исходные данные блоков из того, что я прочитал, но, возможно, я неправильно интерпретировал то, что я прочитал.

One Solution collect form web for “Имеются ли разделители на уровне блоков?”

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

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

Как вы можете видеть, во время написания блока стоит платить. Но, по крайней мере, эта стоимость оплачивается только один раз за запись блока. Если файл 1 содержит aaaabbbbcccc , файл 2 содержит aabbbbcccc а размер блока – 4, тогда файлы не содержат одинакового блока, поэтому дедупликации не будет. Обнаружение того, что файл 2 включен в файл 1, потребует вычислительных контрольных сумм для блоков при любом выравнивании по невероятной цене.

Как правило, блоки файла в файле tar не выравниваются с блоками файловой системы. Файл в tar-архиве может начинаться с любого смещения, которое кратно 512 (размер блока tar), но большинство файловых систем используют больший размер блока. Если начало файла внутри архива происходит согласованным с началом блока файловой системы, то этот файл будет дедуплицирован, если появится такая возможность. Типичные размеры блоков файловой системы больше этого, хотя, поскольку они кратно 512, иногда происходит дедупликация, например, около 1 из 8 для 4096-байтовых блоков, предполагающих равномерное распределение размеров файлов по модулю 4096 (что не совсем так, поэтому вероятность на самом деле несколько меньше).

Типичным примером для дедупликации являются файлы, которые идентичны или в основном идентичны: резервные копии, старые версии файла и т. Д. Преобразованные файлы не являются типичными. Несжатые архивы особенно не типичны.

  • Как можно разделить ссылки при извлечении из файла tar?
  • TAR: лучше пропустить каталог или использовать split
  • Дождитесь завершения процесса, прежде чем перейти к следующей строке в сценарии оболочки
  • tar без сохранения пользователя
  • в каких единицах измеряется таргетинг?
  • Почему я не могу распаковать файлы .tar.bz2 или .tar.xz?
  • Возможно ли создать сжатый ленточный архив в папке из другого каталога?
  • Сжатие папки, но не сжимать определенные типы файлов, а включать их в файл gz
  • Упаковка с смолой
  • получить имя нового каталога, созданного из команды tar
  • Команда tar генерирует ошибку в сценарии оболочки
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.