LINUX.ORG.RU
ФорумAdmin

Не правильный подсчет размеров файлов du

 ,


1

1

Доброго времени суток!

Недавно столкнулся с непонятным явлением отностельно подсчета занимаемого файлами места. Есть установка зимбры и соответственно полный еженочный бэкап установки (каталога /opt/zimbra) рсюнком (команда rsync -avHK --delete --exclude=*.pid.....) Существует каталог /opt/zimbra/data/ldap/mdb/db в нем 2 файла: data.mdb и lock.mdb. data.mdb занимает 81Г. Но при просмотре: [root@serv1 db]# du -h -s -c * 1,6M data.mdb <--------!!!!!!!!!!!!!! 4,0K lock.mdb 1,6M итого

[root@serv1 db]# ls -l итого 1628 -rw------- 1 zimbra zimbra 85899345920 Янв 22 23:41 data.mdb -rw------- 1 zimbra zimbra 8192 Янв 22 23:56 lock.mdb

Но если посмотреть сбэкапленный рсюнком каталог на другой раздел, то размер файла data.mdb оказывается верным: [root@serv1 db]# du -h -s -c * 81G data.mdb 8,0K lock.mdb 81G итого

Используется CentOS 6.2. На данных разделах /opt и бэкапный - ext4. Прошу помочь разлбраться в ситуации.

скорее всего твой файлих забит нулями а хитрый ext4 (и некоторые другие файлухи) умеют это сжимать

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

такое вполне может быть, но оба раздела ext4. Почему на новом месте такого сжатия не происходит? [root@serv1 db]# mount ... /dev/sda3 on /share type ext4 (rw) <---раздел для бэкапа ... /dev/sdb1 on /opt type ext4 (rw) <---основно раздел ...

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

в каталоге, где du выводит кривой размер filefrag показывает 3 extents.

в каталоге, где нормальный размер - 241 extents

Вроде нормально все.

alex-123
() автор топика
Ответ на: комментарий от alex-123

filefrag показывает 3 extents.

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

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

Почему на новом месте такого сжатия не происходит?

Потому что приложение должно об этом попросить ФС. Либо изначально создать разреженный файл, а потом туда реальные данные писать, либо продавить дыру через fallocate (в свежих ядрах появилась такая возможность).

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

rsync просто не умеет работать с такими файлами?

Умеет, флаг -S

       -S, --sparse
              Try to handle sparse files efficiently  so  they  take  up  less
              space on the destination.  Conflicts with --inplace because it’s
              not possible to overwrite data in a sparse fashion.

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