Linux Fundamentals, Part 4 / Основы Linux от основателя Gentoo. Часть 4: Filesystem quotas

← →
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Квоты файловой системы
Знакомство с квотами

Bomber 04.12.11 в 08:46

0

Квоты - это такая фича Linux, которая позволяет вам следить за использованием диска пользователем или группой. Квоты полезны для предотвращения захвата большей части фаловой системы каким либо одим пользователем или руппой или вобщем от переполнения файловой системы. Квоты могут быть активированны и управляться только пользователем root. В этой части я расскажу как настроить квоты в вашем Linux и управлять ими эффективно.
Поддержка квот ядром

Bomber 04.12.11 в 08:56

0

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

Bomber 04.12.11 в 08:58

0

# cd /usr/src/linux
# grep -i quota .config
CONFIG_QUOTA=y
CONFIG_XFS_QUOTA=y

Bomber 04.12.11 в 08:58

0

Ели эта комманда возвращает что-то отличное (такое как CONFIG_QUOTA is not set), тогда вы должны пересобрать ваше ядро с включенной поддержкой квот. Это не сложный процесс, но это выходит за рамки этого раздела руководства.
Поддержка квот файловой системой

Bomber 04.12.11 в 09:00

0

До погружения в администрирование квот, пожайлуста учтите, что квоты поддерживаются в Linux с версей ядра 2.4.х не полностью. В этой версии существуют проблемы с квотами на файловых системах ext2 и ext3, а ReiserFS вообще не поддерживает квоты. Это руководство основано на примере XFS, котоая, кажется, должным образом поддерживает квоты.
Настрйка квот

Bomber 04.12.11 в 09:05

0

Для начала настройки квот в вашей системе, вы должны отредактировать /etc/fstab для монтирования целевой файловой системы с включенными квотами. Например, мы монтируем XFS с квотами для пользователей и групп:

Bomber 04.12.11 в 09:07

0

# grep quota /etc/fstab
/usr/users /mnt/hdc1 xfs usrquota,grpquota,noauto 0 0
# mount /usr/users

Bomber 04.12.11 в 09:07

0

Учтите, что опции usrquota и grpquota не обязательно включать поддержку квот в файловой системе. Вы можете быть увереннымы, что квоты включены, если используете комманду quotaon:

Bomber 04.12.11 в 09:09

0

# quotaon /usr/users

Bomber 04.12.11 в 09:10

0

Соответственно отключить квоты можно командой quotaoff:

Bomber 04.12.11 в 09:11

0

# quotaoff /usr/users

Bomber 04.12.11 в 09:11

0

Но на данный момент, если вы попробуете ввести эти комманды, будьте уверены, что квоты включаться.
Комманда quota

Bomber 04.12.11 в 09:14

0

Команда quota отображает использование диска пользователем и лимиты для всех примонтированных файловых систем. Опция -v включит в вывод файловые системы, для которых квоты включены, но не включит в вывод данные квот выделенных для текущего пользователя.

Bomber 04.12.11 в 09:18

0

# quota -v

Bomber 04.12.11 в 09:18

0

Disk quotas for user root (uid 0):
Filesystem blocks quota limit grace files quota limit grace
/dev/hdc1 0 0 0 3 0 0

Bomber 04.12.11 в 09:18

0

В колонке blocks показано как много дискового пространство использует root на каждой из перечисленных файловых систем. Следующие колонки quota и limit относятся к ограничению текущего места на диске. Мы объясним разницу между квотами и лимитами и осмыслим значение колонки grace позже. Колонка files показывает каким количеством файлов пользователь root владеет на указанной файловой системе. Следующие колонки quota и limits относятся к ограничению файлов.
Просмотр квот

Bomber 04.12.11 в 09:26

0

Любой пользователь может использовать команду quota для просмотра его квот, так же как показано в предыдущем примере. Однако только root может видеть квоты остальных пользователей и групп. Например скажем у нас есть файловая система /dev/hdc1 примонтированная в /usr/users с двумя пользователями: jane и john. Сначала посмотрим использование диска и ограничения jane:

Bomber 04.12.11 в 09:29

0

# quota -v jane

Bomber 04.12.11 в 09:29

0

Disk quotas for user jane (uid 1003):
Filesystem blocks quota limit grace files quota limit grace
/dev/hdc1 4100 0 0 6 0 0

Bomber 04.12.11 в 09:29

0

В этом примере мы видим, что квоты jane раны нулю, что значит для нее нет ограничений.
Команда edquota

Bomber 04.12.11 в 09:31

0

Теперь, скажем, мы хотим пользователю jane задать квоту. Мы сделаем это с помощью команды edquota. До начала редактирования квот, давайте посмотри как много места у нас доступно в /usr/users:

Bomber 04.12.11 в 09:32

0

# df /usr/users

Bomber 04.12.11 в 09:32

0

Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hdc1 610048 4276 605772 1% /usr/users

Bomber 04.12.11 в 09:33

0

Это не очень большая фаловая система, доступно только около 600Мб. Кажется разумным определить квоты для jane, чтобы она не смогла превысить разумные пределы. Когда мы запустим edquota временный файл создастся для каждого пользователя или группы, указанной в качестве аргумента.

Bomber 04.12.11 в 09:37

0

Команда edquota откроет редактор, в котором вы сможете включить и/или изменить квоты в этом временном файле.

Bomber 04.12.11 в 09:38

0

# edquota jane

Bomber 04.12.11 в 09:38

0

Disk quotas for user jane (uid 1003):
Filesystem blocks soft hard inodes soft hard
/dev/hdc1 4100 0 0 6 0 0

Bomber 04.12.11 в 09:38

0

Данный вывод похож на вывод команды quota данный выше, столбцы blocks и inodes во временном файле относятся к дисковому пространству и числу файлов, исользуемых jane. Вы не можете изменить число блоков или инодов, любые попытки сделать это будут просто отклонены системой. Колонки soft и hard показывают квоты jane, который, как мы видим, на данный момент неограничены (напомню: 0 обозначает, что квот нету).
Понимание edquota

Bomber 04.12.11 в 09:45

0

Мягкое (soft) ограничение - это максимальное количество используемого дикового пространства, которое jane выделено в ее файловой системе (другими словами - ее квота). Если jane использует больше дискового пространства, чем ей выделено в "soft limit", она будет предупреждена о превышении квоты по e-mail. Жесткое (hard) ограничение показывает аблосютное ограничение на использование дискового пространства, которое пользователь не сможет превысить. Если jane попытается использовать большее дискового пространства, чем указано в "hard limits", то она получит ошибку"Disk quota exceeded" ("Дисковая квота превышена") и не сможет авершить действие.
Вносим изменения

Bomber 04.12.11 в 09:52

0

Так, мы изменили мягкое и жесткое ограничения jane и сохранили файл:

Bomber 04.12.11 в 09:53

0

Disk quotas for user jane (uid 1003):
Filesystem blocks soft hard inodes soft hard
/dev/hdc1 4100 10000 11500 6 2000 2500

Bomber 04.12.11 в 09:53

0

Запустив команду quota, мы сможет проверить наши изменения:

Bomber 04.12.11 в 09:54

0

# quota jane

Bomber 04.12.11 в 09:54

0

Disk quotas for user jane (uid 1003):
Filesystem blocks quota limit grace files quota limit grace
/dev/hdc1 4100 10000 11500 6 2000 2500

Bomber 04.12.11 в 09:54

0

Копирование квот

Bomber 04.12.11 в 09:54

0

Как мы помним, у нас есть другой пользователь в системе - john. Если мы хотим применить к нему те же квоты, чтои к jane, то мы можем использовать опцию -p команды edquota, используя квоты jane как прототип для следующих пользователей. Это простой путь для настройки квот для групп и пользователей.

Bomber 04.12.11 в 09:57

0

# edquota -p jane john
# quota john

Bomber 04.12.11 в 09:57

0

Disk quotas for user john (uid 1003): Filesystem blocks quota limit grace files quota limit grace

Bomber 04.12.11 в 09:57

0

/dev/hdc1 0 10000 11500 1 2000 2500

Bomber 04.12.11 в 09:57

0

Групповые ограничения
Мы можем также использовать edquota для ограничения дискового пространства для групп. Например отредактируем квоты для группы users:

Bomber 04.12.11 в 09:59

0

# edquota -g users
Disk quotas for group users (gid 100): Filesystem blocks soft hard inodes soft hard /dev/hdc1 4100 500000 510000 7 100000 125000

Bomber 04.12.11 в 09:59

0

И посмотрим на изменения квот для группы users:

Bomber 04.12.11 в 10:00

0

# quota -g users
Disk quotas for group users (gid 100): Filesystem blocks quota limit grace files quota limit grace /dev/hdc1 4100 500000 510000 7 100000 125000

Bomber 04.12.11 в 10:01

0

Команда repquota

Bomber 04.12.11 в 10:01

0

Осмотр квоты всех польователей используя команду quota может быть весьма утомительным, если у вас много польователей в файловой системе. Команда repquota представляет суммарную информацию по квотам файловой системы в понятном виде. Например посмотрим квоты всех пользователей и групп в /usr/users:

Bomber 04.12.11 в 10:05

0

# repquota -ug /usr/users
*** Report for user quotas on device /dev/hdc1
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 0 0 0 3 0 0
john -- 0 10000 11500 1 2000 2500
jane -- 4100 10000 11500 6 2000 2500

Bomber 04.12.11 в 10:05

0

*** Report for group quotas on device /dev/hdc1
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
Group used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 0 0 0 3 0 0
users -- 4100 500000 510000 7 100000 125000

Bomber 04.12.11 в 10:05

0

Аргументы команды repquota

Bomber 04.12.11 в 10:05

0

Для repquota есть пара опций, которые следует отметить. repquota -a выведет все текущие примонтирование на чтение и запись файловые систем, для которых активны квоты. repquota -n не будет преобразовывать uids и gids в имена. Это может ускорить вывод большого списка.
Мониторинг квот

Bomber 04.12.11 в 10:10

0

Для repquota есть пара опций, которые следует отметить. repquota -a выведет все текущие примонтирование на чтение и запись файловые систем, для которых активны квоты. repquota -n не будет преобразовывать uids и gids в имена. Это может ускорить вывод большого списка.
Мониторинг квот

Bomber 04.12.11 в 10:10

0
Минутку...

Следующая страница →