Для начала немножко общей информации из хендбука...
Квоты - это опциональная возможность операционной системы, которая позволяет ограничивать объем дискового пространства и/или количество файлов для конкретного пользователя или членов определенной группы в рамках одной файловой системы. Чаще всего эта возможность используется в системах разделения времени, когда желательно ограничить количество ресурсов, которые может использовать один пользователь или группа пользователей. Это позволит не допустить ситуации, когда один пользователь или группа пользователей заполняют всё доступное дисковое пространство.
Итак... Использование квот требует поддержки со стороны ядра. Поэтому в конфигурационный файл ядра необходимо добавить строку
options QUOTA |
и пересобрать ядро (в стандартном ядре GENERIC эта опция по умолчанию отсутствует).
Будем считать, что данная опция уже вкомпилена в ядро. Следующим шагом собственно включаем квотирование дисков:
# echo '# Disk quotas' >> /etc/rc.conf |
Обратите внимание, что теперь при загрузке системы будет проверяться целостность квот каждой файловой системы, а это довольно продолжительный просесс, особенно при больших дисковых массивах. Соответственно, мои рекомендации, отключить при загрузке системы проверку целостности квот:
# echo 'check_quotas="NO"' >> /etc/rc.conf |
Далее необходимо включить поддержку квотирования непосредственно на уровне файловых систем. Можно включить поддержку квот для груп (groupquota), пользователей (userquota), а также и для пользователей и груп одновременно. Для этого необходимо отредактировать /etc/fstab, добавляя поддержку квотирования для определенной файловой системы. Для примера, наведу "кусочек" своего /etc/fstab, с поддержкой квот для пользователей (/home) и поддержкой квот для пользователей и груп одновременно (/usr и /var).
# less /etc/fstab | grep quota /dev/mirror/gm0s1d /home ufs rw,userquota 2 2 |
Запускаем службу квотирования вручную (неохота лишний раз перезагружать сервер, да и незачем это...)
# sh /etc/rc.d/quota start |
Вот, заругалось, что нету файлов квот. "Лечится" это очень просто . Запустим проверку квот, и отсутствующие файлы создадутся автоматически:
# quotacheck -a quotacheck: creating quota file /home/quota.user |
Теперь при запуске нету ругательств
# sh /etc/rc.d/quota start Enabling quotas: done. |
Также, кстати, включить поддержку квот для всех необходимых разделов (указано в /etc/fstab) можно следующей командой:
# quotaon -a |
Пора проверить, действительно ли поддержка квот включена. Проверить это можно следующей командой:
# quota -v Disk quotas for user root (uid 0): Filesystem usage quota limit grace files quota limit grace /home 186532 0 0 2512 0 0 /usr 3939724 0 0 307469 0 0 /var 100484 0 0 1851 0 0 |
Что ж, теперь можно заняться непосредственно заданием ограничений на дисковое пространство. Квоты задаются с помощью команды edquota.
Описание процесса задания квот возьму из хендбука (http://www.freebsd.org/doc/ru/books/handbook/quotas.html), кстати советую перейти по данному линку, возможно почерпнете что-то интересное для себя.
У вас есть несколько вариантов того, как приводить в действие ограничения по объему дискового пространства, который могут занимать пользователь или группа, а также по количеству файлов, которые они могут создать. Вы можете ограничивать размещение ресурсов на основе объема дискового пространства (квотирование блоков), количества файлов (квотирование inode) или их комбинации. Каждое из этих ограничений, в свою очередь, делится на две категории: мягкие и жёсткие ограничения.
Жёсткое ограничение не может быть превышено. Как только пользователь достиг своих ограничений, ресурсы соответствующей файловой системы ему больше выделяться не будут. Например, если пользователь имеет жесткое ограничение в 500 Кбайт на файловой системе и в текущий момент использует 490 Кбайт, то пользователь может получить дополнительно ещё 10 Кбайт. Попытка занять ещё 11 Кбайт окончится неудачно.
С другой стороны, мягкие ограничения могут быть превышены в течении некоторого периода времени. Этот период времени также называют периодом отсрочки, который по умолчанию равен одной неделе. Если пользователь превышает своё мягкое ограничение в течение периода времени, превышающего отсрочку, то это мягкое ограничение становится жестким и последующее выделение ресурсов будет запрещено. Когда пользователь вернётся обратно к отметке, меньшей, чем мягкое ограничение, то период отсрочки будет сброшен.
Далее приводится пример того, что вы можете наблюдать при запуске команды edquota. Когда вызывается команда edquota, вы оказываетесь в редакторе, заданном переменной переменной окружения EDITOR, или в редакторе vi, если переменная EDITOR не задана, и можете редактировать квоты.
# edquota -u test Quotas for user test: |
Для каждой файловой системы, на которой включено квотирование, вы должны увидеть две строки. В одной строке приведены ограничения на блоки, а в другой на количество inode. Например, чтобы увеличить ограничения на количество блоков для пользователя с мягкого ограничения в 50 и жёсткого ограничения в 75, на мягкое ограничение в 500 и жёсткое ограничение в 600, измените:
/usr: kbytes in use: 65, limits (soft = 50, hard = 75) |
на
/usr: kbytes in use: 65, limits (soft = 500, hard = 600) |
Новые ограничения вступят в силу после выхода из редактора.
Иногда желательно установить ограничения квот на некоторый диапазон UID (идентификаторов пользователей). Это можно сделать при помощи параметра -p в команде edquota. Во-первых, установите желаемое ограничение для пользователя, а затем запустите команду edquota -p protouser startuid-enduid. Например, если пользователь test имеет желаемые ограничения, то для дублирования этих ограничений на пользователей с UID от 10000 до 19999 может быть использована такая команда:
# edquota -p test 10000-19999 |
Для просмотра состояния системных квот советую воспользоваться командой repquota. Например, для того, чтобы просмотреть таблицу состояния системных квот для раздела /usr, команда будет выглядеть так:
# repquota /usr |
Последние комментарии
21 неделя 6 дней назад
46 недель 20 часов назад
2 года 46 недель назад
3 года 16 недель назад
3 года 39 недель назад
4 года 2 недели назад
4 года 3 недели назад
4 года 6 недель назад
4 года 18 недель назад
4 года 22 недели назад