Я знаю, что это обычное дело, когда результат 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
подсчитывает блоки, используемые жестко связанными файлами, один раз, а не один раз для каждой жесткой ссылки. Однако есть несколько причин, по которым дедупликация может не сработать:
Таблица du, используемая для де-дублирования файлов с жесткой связью, имеет фиксированный размер. Если у вас больше файлов с жесткой связью, чем может хранить таблица, дедупликация может быть неудачной. (Некоторые версии du
иметь таблицу динамического размера и не иметь этой проблемы.)
Дедупликация основана на значениях inode. Если сервер NAS показывает разные номера inode для файлов, которые жестко связаны, дедупликация невозможна. Некоторые серверы NAS отлично справляются с представлением inodes, потому что они используют файловую систему с inodes. Другим приходится «притворяться» и не делать хорошо.
Кстати...
du
считает только данные файла.
df
подсчитывает использование блоков для данных файла плюс все метаданные: каталоги, суперблок, таблица индексных дескрипторов, прямые / косвенные / двойные блоки и т. д.
Следовательно, df
должен возвращать меньший "использованный" размер, чем du
. Если происходит обратное, я предполагаю, что дедупликация нарушена или сервер NAS сделал что-то, что делает df
отображать неверную информацию.
Спасибо всем за отличные ответы и предложения. Я пишу, чтобы ответить на мою конкретную проблему. Просто случайно это кому-то поможет (что вполне может не учитывать обстоятельства)
NAS, с которого я получал информацию о своей файловой системе, имеет - если я не ошибаюсь - определенный уровень виртуализации разделов (HP X9000). Следовательно df
должен вернуть точную «оценку», если все пойдет хорошо.
Однако из-за ошибки с NAS, которая с тех пор была исправлена, размер виртуального раздела не обновлялся и, следовательно, df
вернет недопустимое (устаревшее) значение. Отображение 270Go вместо фактического правильного значения 320Go (я ошибся в своих комментариях)
Все вышеперечисленные проблемы вытекают из этого. С тех пор это также происходило иногда, когда NAS работал в деградированном режиме (по какой-либо причине).
Еще раз спасибо, ребята.