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

несоответствие между du -sh и df -h

Я знаю, что это обычное дело, когда результат du -sh меньше, чем возвращаемое файловой системой с df -h. (Потому что некоторые файлы все еще открыты в процессах и т.д ..) Но в моем случае у меня все наоборот.

Я запускаю Ubuntu 12.04 и пытаюсь получить используемый размер монтирования NFS

df -h возвращается 270G used пока du -sh из смонтированной папки возвращается 320G used.

Обновление: я монтирую раздел со следующими параметрами:

nas-server:/path/to/mount /mnt/mount/point  nfs proto=tcp,rsize=8192,wsize=8192,hard,intr,exec

Кто-нибудь знает, откуда это могло взяться? Правильный объем на диске должен быть 270 ГБ ~

Спасибо за вашу помощь. Я предоставлю любую необходимую дополнительную информацию.

du подсчитывает блоки, используемые жестко связанными файлами, один раз, а не один раз для каждой жесткой ссылки. Однако есть несколько причин, по которым дедупликация может не сработать:

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

  2. Дедупликация основана на значениях inode. Если сервер NAS показывает разные номера inode для файлов, которые жестко связаны, дедупликация невозможна. Некоторые серверы NAS отлично справляются с представлением inodes, потому что они используют файловую систему с inodes. Другим приходится «притворяться» и не делать хорошо.

Кстати...

du считает только данные файла.

df подсчитывает использование блоков для данных файла плюс все метаданные: каталоги, суперблок, таблица индексных дескрипторов, прямые / косвенные / двойные блоки и т. д.

Следовательно, df должен возвращать меньший "использованный" размер, чем du. Если происходит обратное, я предполагаю, что дедупликация нарушена или сервер NAS сделал что-то, что делает df отображать неверную информацию.

Спасибо всем за отличные ответы и предложения. Я пишу, чтобы ответить на мою конкретную проблему. Просто случайно это кому-то поможет (что вполне может не учитывать обстоятельства)

NAS, с которого я получал информацию о своей файловой системе, имеет - если я не ошибаюсь - определенный уровень виртуализации разделов (HP X9000). Следовательно df должен вернуть точную «оценку», если все пойдет хорошо.

Однако из-за ошибки с NAS, которая с тех пор была исправлена, размер виртуального раздела не обновлялся и, следовательно, df вернет недопустимое (устаревшее) значение. Отображение 270Go вместо фактического правильного значения 320Go (я ошибся в своих комментариях)

Все вышеперечисленные проблемы вытекают из этого. С тех пор это также происходило иногда, когда NAS работал в деградированном режиме (по какой-либо причине).

Еще раз спасибо, ребята.