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

Разреженные файлы UNIX / Linux - используются? Как вы справляетесь с этим?

С самого начала стандартные системы UNIX / Linux поддерживают разреженные файлы, это файл, который содержит неиспользуемое пространство, которое не выделяется до тех пор, пока оно не понадобится. Чтобы просмотреть, сгенерировать с помощью программы C: создать файл, позиция 2G, написать ОДИН байт, закрыть файл. Выполнение ls -l показывает, что размер равен 2G .... однако ls -ls показывает, что размер в блоках ближе к однобайтовому файлу. Если вы логически обращаетесь к файлу (т.е. cp sparse_file xxx), результирующий файл xxx действительно будет содержать полностью выделенные 2 Гбайта.

Раньше я создавал разреженные файлы в качестве средства тестирования для некоторых приложений. Однако их существование вызвало ряд проблем.

Важная проблема заключается в том, что вне программы «дамп» программы резервного копирования и общие процедуры обращаются к этим типам файлов логически, и, таким образом, для разреженного 1-байтового файла создается резервная копия с 2 ГБ нулевых данных. Когда я это делаю, это расстроило некоторых специалистов по резервному копированию.

Есть ли хорошие решения для такой ситуации?

GNU Tar имеет - разреженный (-S) опции, упрощающие работу с файлами запчастей.

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

Программы резервного копирования на основе rsync должны иметь возможность без проблем обрабатывать пространственные файлы (rsync имеет параметры --sparce / -S)

Программа-звезда намного быстрее работает с разреженными файлами, чем GNU tar. При работе с такими файлами требуется опция -sparse. Для простого копирования используйте cp --sparse = auto