Ключевые слова:linux, quota, limit, (найти похожие документы)
From: Соколов Роман <romanso@rt.mipt.ru.>
Date: Mon, 20 Sep 2004 18:21:07 +0000 (UTC)
Subject: Ограничение дискового пространства в Linux
Оригинал: http://www.rt.mipt.ru/~romanso/diskquota.html
Disk Quota - ограничение дискового пространства пользователям
Введение.
В большинстве компьютерных систем, дисковое пространство не
бесконечно. Система квотирования - diskquota обеспечивает механизм для
управления используемым дисковым пространством. Ограничения могут быть
установлены для каждого пользователя в отдельности, для любой или для
всех файловых систем. Система ограничений (quota) будет предупреждать
пользователей когда они превысят свой дозволенный лимит, но будет
позволять использовать некоторое дополнительное пространство для
текущей работы. Система ограничений (quota system) является частью
ядра Linux , и для использования должна быть включена в ядре при
конфигурировании ядра. Этот документ будет описывать как пользователи
могут использовать систему ограничений и как система ограничений
(quota system) может быть настроена системным администратором.
* Доступны два типа ограничений, которые могут быть
наложены на пользователя, обычно если используется одно из
ограничений то и второе тоже будет использоваться. Ограничение
может быть установлено как на все дисковое пространство
пользователя, которое используется этим пользователем так и на
число inodes, которыми он может владеть, и которое определяет
максимальное количество файлов, которое пользователь может создать.
Quota обеспечивает информацию на ограничения , которые были
установлены системным администратором, на каждую из областей,
которые используются в данный момент. Ограничения по inodes и block
накладываются как на uid (идентификатор пользователя) так и на gid
(идентификатор группы) - userquota & grpquota.
Так если вы входите в группу пользователей, которая превысила ,
наложенное на нее ограничение ,то вы не сможете использовать
дисковое пространство даже если вы все еще не превысили личную
квоту.
Существуют четыре числа для каждого ограничения:
1. Используемое в данное время ограничение;
2. "мягкое" ограничение (softlimit);
3. "жесткое" ограничение (hardlimit);
4. промежуток времени , после истечения которого"мягкое" ограничение
интерпретируется как "жесткое";
"Мягкое" ограничение определяет число блоков размером 1Кбайт, после
которого пользователь будет предупреждаться о превышении квоты.
"Жесткое" ограничение не может быть превышено ни каким образом.
Если пользователь пытается превысить данное число , то он получает
сообщение о невозможности сделать это.
Этапы настройки disk quota:
1. Все операции настройки системы квотирования проводятся
администратором (суперпользователем) root. В ядро (kernel) должна быть
включена поддержка quota. Войдите как администратор root и проверьте
это:
root:~% cd /usr/src/linux
root:/usr/src/linux% make menuconfig
далее, проверяем в пункте меню "File systems"
2. Необходимо решить для каких файловых систем будет применена квота -
для этого надо некоторые внести изменения в файл /etc/fstab - добавить
usrquota в опции монтирования выбранной файловой системы
(ВАЖНО: на момент датирования документа квотирование работает для
файловых систем: ext2, ext3, xfs - для ядер версий 2.4, 2.5)
root:~% cat /etc/fstab
/dev/hda1 swap swap defaults 0 0
/dev/hda2 / ext2 defaults 0 1
/dev/hda3 /home ext2 defaults,usrquota 0 1
/dev/fd0 /floppy ext2 noauto 0 0
/dev/fd0 /a vfat noauto 0 0
/dev/hdd /cdrom iso9660 ro,noauto 0 0
none /proc proc defaults 0 0
root:~% _
командой:
root:/home% mcedit /etc/fstab
3. Затем необходимо суперпользователем выполнить:
root:/home% touch quota.user
Эта команда создаст новый (пустой) файл в директории /home куда и
будут сохраняться устанавливаемые ограничения для пользователей
(users). Имя файла базы данных квот - quota.user - уникально - менять
нельзя! Местоположение - в "корне" квотируемой файловой системы.
4. Пустой файл базы данных квотирования - quota.user необходимо
заполнить - для этого просто выполним программу проверки базы данных
квотирования:
root:/home% repquota -avug [-m]
5. Ядро должно перечитать измененный файл /etc/fstab и изменить форму
монтирования квотируемой файловой системы, для этого не нужно делать
перезагрузку компьютера, а нужно перемонтировать квотируемую файловую
систему
root:~% umount /dev/hda1 (или, то же самое - umount /home)
root:~% mount -a
или
root:~% mount /dev/hda1 /home -o remount
Если этого не происходит - необходимо остановить пользовательские
процессы, занимающие файловую систему. Можно увидеть их имена с
помощью команды:
root:/home% lsof | grep /home
А останавливать можно с помощью команд:
root:/home% killall -9 [PROCESS NAME]
6. Далее необходимо отредактировать пользовательские квоты - ввести
сами ограничения. Редактор по умолчанию vi - многим он не нравится,
поэтому можно изменить переменную среды командного процессора EDITOR
под более удобный редактор - например, mcedit:
root:~% EDITOR=mcedit
root:~% export EDITOR
или
root:~% export EDITOR=mcedit
После этого следующей командой откроется файл записей квоты (база
данных квот) для редактирования ограничений для пользователя test:
root:~%edquota -u test
Появится запись в редакторе похожего типа:
Quotas for user test:
/dev/hda6: blocks in use: 419, limits (soft = 0, hard = 0)
inodes in use: 58, limits (soft = 0, hard = 0)
Редактировать необходимо только значения после слов soft и hard.
Параметр Soft - это мягкое ограничение, а hard - жесткое. Они
измеряются в блоках, то есть сколько блоков может использовать
пользователь. Строка "blocks in use:" определяет сколько мегабайт УЖЕ
использовал пользователь на диске, а строка "inodes in use:" сколько
дескрипторов файлов (не самих файлов!) сейчас занимает пользователь.
Quotas for user test:
/dev/hda6: blocks in use: 419, limits (soft = 50000, hard = 10000)
inodes in use: 58, limits (soft = 20000, hard = 40000)
50000 блоков - это примерно 5Мб (5120000 байт)
7. Следующим шагом включается использование квоты
root:~% quotaon -va
8. Затем необходимо запустить программу проверки квоты:
root:~% quotacheck -va [-m]
9. Теперь посмотрим что получилось командой распечатки всех квот:
root:~% repquota -va
10. Входим контрольным пользователем test и пробуем копировать каталог
общей документации (большой) /usr/doc в домашнюю директорию
пользователя test.
test:~% cp -r /usr/doc .