Время от времени я сталкиваюсь с проблемами, когда жесткие диски сервера (Linux) быстро заполняются множеством небольших файлов. Когда это происходит, я должен попытаться выяснить, сколько места занимает и где находятся файлы, которые занимают это место. Это может быть на удивление неприятной задачей, потому что:
Я хочу быстро и точно узнать, где находится все мое пространство на жестком диске, где терабайты пространства могут быть заняты миллионами небольших файлов.
Кажется, что это невозможно с обычными файловыми системами (если нет, я бы хотел услышать об этом)
Мой вопрос в том, есть ли какие-либо из новых файловых систем, доступных в Linux (btrfs, zfs, reiserfs и т. Д.), Супер-умными функциями, которые могут помочь в решении этой проблемы. Например, я могу представить себе какой-то журнал - который постоянно обновляется каждый раз при записи - который содержит запись об объеме пространства, занятого в каждой ветке файловой системы. Тогда задать свой вопрос будет просто вопросом чтения журнала.
Это просто пример своего рода особенность это может помочь, но я прошу привести примеры любой функции, которая могла бы помочь с ответом на вопрос: скажите мне быстро и точно, где именно используется пространство на моем жестком диске.
Спасибо Том
Я все еще использую ncdu с моими файловыми системами ZFS. Сейчас это даже более важно, так как он учитывает разреженные файлы и помогает разобраться в сжатых файловых системах ZFS.
Видеть: Как я могу определить, что занимает так много места?
У меня есть опыт работы с ZFS только из указанного вами списка. С помощью ZFS вы можете создавать иерархические тома, например:
и т.д
С помощью команды «zfs list» вы можете получить используемое, доступное и справочное пространство для каждого тома в течение нескольких секунд. Но это, конечно, работает только тогда, когда вы можете позволить своему приложению правильно разделить его.