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

Выяснение, почему я превышаю квоту на жесткий диск

Я плохо разбираюсь в системном администрировании, поэтому, если я ошибаюсь, пожалуйста, дайте мне знать.

Вот кое-что, что сводит меня с ума. На работе у нас есть большой NFS-сервер, который обслуживает всех сотрудников нашей компании. У каждого есть определенное количество ГБ, на которое им разрешено записывать. Я часто получаю ошибки «превышена квота», потому что я запускаю некоторые программы, которые генерируют много временных файлов и затем удаляют их, но прежде чем удалить их, они достигают квоты.

Поговорив с нашими системными администраторами, я узнал, что моя квота уже увеличена до уровня, намного превышающего то, что мне нужно для этих тестов, но похоже, что я трачу эту квоту в других местах, кроме моей домашней папки. Системный администратор объяснил мне, что каждый файл на сервере NFS, владельцем которого является мое имя пользователя, засчитывается в мою квоту.

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

Для меня это звучит странно: когда Linux выдает ошибку «превышена квота», кажется, что он сразу же узнает, что я превышаю свою квоту. Не трудоемкий процесс. Так почему же я не могу получить список файлов, учитываемых в моей квоте, без долгого поиска?

Я могу думать о двух вещах, которые могут вызвать проблемы с квотами.

Во-первых, вы должны знать, что квоты реализуются путем создания крошечной базы данных в файловой системе, которая обновляется каждый раз при создании, изменении или удалении файла. (На самом деле их две: одна для пользовательских квот и одна для групповых квот.) Когда квоты были впервые включены, эта база данных была инициализирован путем проверки использования каждого файла в файловой системе и записи результатов для каждого пользователя и / или группы в этих файлах. Поскольку они обновляются драйвером файловой системы каждый раз, когда происходит активность, поиск текущей квоты пользователя выполняется быстро.

Существует проблема. База данных квот может быть повреждена, если файловая система не отключена должным образом, например, если произошло резкое отключение питания. Когда это происходит, администратор должен бегать quotacheck для проверки и восстановления базы данных при перезагрузке системы, но этого могло и не произойти. Их могут повредить космические лучи или отказ жесткого диска.

Бег quotacheckоднако требуется, чтобы файловая система была размонтирована или как минимум смонтирована только для чтения, поэтому она недоступна для использования во время перестройки базы данных квот. Это может занять много времени, поэтому, к сожалению, это делается редко. Администратору сервера NFS следует запланировать время простоя для проверки квот файловой системы и рассмотреть возможность изменения процедур, чтобы quotacheck всегда запускается при перезагрузке после сбоя.

Во-вторых, исходя из вашего описания, возможно, вы достигли квоты inode. Помимо ограничения объема дискового пространства, квоты также могут ограничивать количество файлов, которые могут быть созданы. Если вы создаете большое количество временных файлов, возможно, именно это и происходит. Вы (или администратор сервера NFS) также должны Проверь это. Бегать quota -s чтобы узнать, что, по мнению базы данных, вы использовали, по сравнению с вашими пределами.

Помимо возможности коррупции, которую предлагает @MichaelHampton, вот некоторые основы:

  • проверьте в / tmp. Иногда некоторые процессы беспорядочные, прерываются или убиваются - файлы сеансов, установщики / распаковщики, задания на печать и тому подобное. Ищите заблокированные или скрытые (точечные) файлы. Если вы что-то найдете, не просто удаляйте это, используйте временные метки, чтобы понять, что это создало и когда.

  • Также, ps -edalf и просмотрите свой список процессов и все его аргументы файла, и посмотрите, не создает ли что-нибудь загадка нежелательные большие файлы или неожиданные области.

  • "Похоже, я трачу эту квоту не на свою домашнюю папку" Знаете ли вы примерно, какой каталог какое место занимает, или он полностью слеп?

  • Выясните, много ли у вас маленьких файлов / каталогов, несколько больших файлов или и то, и другое. Попробуйте сделать быструю оценку с помощью du -sh ... или find -size <threshold> ... Чтобы узнать, создаются ли новые файлы, touch сигнальный файл, когда вы выходите из системы вечером, затем на следующий день find ... -newer SENTINEL чтобы увидеть, было ли что-то создано. Вы можете запустить его посреди ночи.

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