LINUX.ORG.RU
решено ФорумAdmin

In-place замена файла на sparse файл.

 ,


1

1

Rsync'нул много данных с опцией --sparse и получил разницу в объёме в 100 гигов. Т.е. на целевом сервере на 100 гигов места занято больше, чем хотелось бы. Свободного места осталось всего ничего.
Есть какие-нибудь штатные тулзы для преобразования обычных файлов в sparse с перезаписью ?

Deleted

А как это у тебя такое получилось?

Мне не повезло, потому что использовал также опцию preallocate: missing option: preallocate for all files except for sparse. Иначе всё должно бы быть нормально, даже лучше: места могло занять меньше, что я считаю тоже багом.

На rsync надо полагаться, чтобы потом получать backup, а не свалку. Так что если ты можешь воспроизвести ошибочное поведение (или более менее описать), надо бы завести баг репорт.

anonymous
()
Ответ на: комментарий от Deleted

Ну вот, дело совсем не в --sparse, а в том, что нужно использовать -a (archive). Без него симлинки были скопированы по-новому (а также были потеряны остальные метаданные).

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

anonymous
()
Ответ на: комментарий от Deleted

симлинков нет

Ну, если уверен.

В таком варианте --sparse не отработает ?

Вроде, должен. А на получателе ФС вообще умеет sparse? А какой там размер кластера? Что-то стандартное типа ext4 (4K)? И получатель тоже Debian 8?

anonymous
()
Ответ на: комментарий от Deleted

Тогда было бы интересно найти пару файликов заметно разного размера на отправителе и получателе.

anonymous
()
Ответ на: комментарий от anonymous

Сделал du -hs * | sort -h
Только несколько каталогов получились жирнее, на 3 гига в сумме.
Причём, когда сравниваешь эти различающиеся по размеру каталоги, то файлы внутри них одинаковых размеров.

Deleted
()

Есть какие-нибудь штатные тулзы для преобразования обычных файлов в sparse с перезаписью ?

fallocate --verbose --dig-holes filename
       -d, --dig-holes
              Detect and dig holes.  This  makes  the  file  sparse  in-place,
              without  using  extra  disk space.  The minimum size of the hole
              depends on filesystem  I/O  block  size  (usually  4096  bytes).
              Also,  when  using  this  option, --keep-size is implied.  If no
              range is specified by --offset and  --length,  then  the  entire
              file is analyzed for holes.

              You  can  think of this option as doing a «cp --sparse» and then
              renaming the destination file to the original, without the  need
              for extra disk space.

              See --punch-hole for a list of supported filesystems.
i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Блаодарю !
Хоть и вопрос в какой-то мере рассосался.

Deleted
()
Ответ на: комментарий от i-rinat

Надо же, волшебство какое-то. Я использовал её лишь для быстрой аллокации не-разреженного файла, а оказывается и так умеет.

anonymous
()
Ответ на: комментарий от Deleted

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

Как я и ожидал:

Не говоря уже о том, что проверять занимаемое место тоже нужно аккуратно. Т.к. ...

Так что хорошо, что проверил, перед тем как убирать за rsync. И хорошо, что с rsync'ом всё в порядке. А в огород «линукс для десктопа» ещё один камешек.

anonymous
()
Ответ на: комментарий от anonymous

А там и не десктоп. Руководствовался выводом df.
Наверно дело в том, что сервер как-то страдал от переполнения и свободного места бывало 0.

Deleted
()
Ответ на: комментарий от Deleted

А причём тут целый сервер? Ты сравнивал не /data и server:/data, а целый раздел, что df и делает?

А я о том, что du не может показать размер файла (величина определённая), а только занимаемое им место (что есть величина переменная). А если использовать btrfs, так о du & Co. вообще можно забыть.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.