Использование диска
100%

Файловая система · Урок 9

Использование диска

Узнайте, как `df` и `du` показывают разные представления потребления блоков и inode файловой системы.

У ёмкости файловой системы есть как минимум два ограничения: блоки данных и объекты метаданных, например inode. df сообщает распределение с точки зрения файловой системы, а du обходит достижимые пути и суммирует приписанное им использование. Значения отвечают на разные вопросы и не обязаны совпадать.

Ёмкость файловой системы через `df`

Покажите тип смонтированной файловой системы и удобные для чтения показатели блоков:

$ df -hT
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sda1      ext4  6.2G  2.3G  3.6G  40% /

Size, Used и Avail берутся из учёта файловой системы. Доступное место может быть меньше разности общего и использованного из-за зарезервированных блоков, метаданных, политики распределения, квот или округления. Запустите df с путём, чтобы получить файловую систему, содержащую его:

$ df -hT /var/log

О чём прежде всего сообщает df?

Ёмкость inode

Файловые системы, выделяющие inode-подобные объекты, могут исчерпать их при наличии свободных блоков:

$ df -i /var

Множество мелких файлов может занять все inode. Удаление одного большого файла освобождает много блоков, но обычно только один inode; удаление множества ненужных мелких файлов снижает давление inode. Некоторые файловые системы выделяют метаданные динамически и иначе отображают эти понятия.

Что может произойти, если в файловой системе есть свободные блоки, но нет свободных inode?

Использование путей через `du`

Суммируйте выделенное пространство, достижимое под одним каталогом:

$ du -sh /var/log

Сравните непосредственных потомков, оставаясь в одной файловой системе:

$ sudo du -xhd1 /var | sort -h

Показанные параметры GNU означают удобный формат, максимальную глубину один и одну файловую систему. Разрешения могут скрыть поддеревья и дать неполную сумму. По умолчанию du также может учитывать файлы с жёсткими ссылками только один раз, различать видимый размер и выделенные блоки и по-разному обрабатывать разреженные файлы в зависимости от параметров.

Какая команда суммирует выделенное использование под /var/log?

Почему `df` и `du` различаются

Распространённые причины:

  • процесс удерживает удалённый файл открытым, поэтому его блоки остаются выделенными, но пути для du уже нет;
  • метаданные файловой системы, зарезервированное место, журналы, reflink, снимки или сжатие влияют на учёт;
  • внутри обходимого дерева смонтирована другая файловая система;
  • разрешения не дают du прочитать некоторые каталоги;
  • видимый и выделенный размеры разреженных файлов различаются.

Для удалённых, но открытых файлов проверьте авторизованные процессы инструментом вроде lsof +L1; перезапустите ответственную службу или отправьте ей сигнал обычным способом, не обрезая неизвестные дескрипторы.

Почему df может показывать занятое место, которое основанный на путях du не находит?

Исследование без усугубления инцидента

Начните с заполненной файловой системы из отчёта df, найдите её цель монтирования через findmnt, затем сужайте поиск du в пределах той же файловой системы. Учитывайте снимки, слои контейнеров, журналы, кеши пакетов и политику хранения приложений. Не удаляйте файлы лишь из-за большого размера; сначала определите владельца, резервирование, нормативные требования и поведение службы.

Как безопаснее всего поступить, найдя большой файл?

Урок завершён

Вы завершили Использование диска

Теперь вы можете согласовывать отчёты о месте на уровне файловой системы и путей.

  • Использовать df для ёмкости блоков смонтированной файловой системы.

  • Использовать df -i для давления inode, где это поддерживается.

  • Выполнять ограниченные обходы du, чтобы приписывать использование достижимым путям.

  • Исследовать удалённые открытые файлы и особенности учёта конкретной файловой системы.

  • Применять правила владения и хранения до удаления данных.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Следующий Урок
Назад к Файловая система