IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Linux | Open source  >

Подготовка к экзамену LPI 101: Устройства, файловые системы Linux и стандарт Filesystem Hierarchy Standard

Младший уровень администрирования (LPIC-1). Тема 104.

developerWorks
На предыдущую страницуСтраница 5 из 12 На предыдущую страницу

Опции документа

Обсудить


Выскажите мнение об этом учебном пособии

Помогите нам улучшить содержание


Раздел 5. Дисковые квоты

Данный раздел охватывает материалы темы 1.104.4 для экзамена 101 на младший уровень администрирования. Раздел имеет третий уровень значимости.

Из этого раздела вы узнаете, как:

  • устанавливать дисковые квоты
  • устанавливать пределы квот
  • проверять квоты
  • получать отчеты о квотах

Установка квот позволяет контролировать использование дисков пользователями и группами пользователей. Квоты не дают отдельным пользователям и группам использовать большую часть файловой системы, чем им разрешено, или полностью заполнять эту часть. Квоты устанавливаются и изменяются пользователем root. Чаще всего они используются в многопользовательских системах, реже – в однопользовательских рабочих станциях.

Установка режима квотирования

Для установки режима квотирования необходима поддержка ядра. Как правило, современные ядра версий 2.4 или 2.6 имеют всю необходимую поддержку. В более ранних версиях поддержка могла быть неполной, что требовало от вас сборки собственного ядра. В современных реализациях поддержка квот чаще всего реализуется в виде модулей ядра. Существует три версии поддержки квот; vfsold (версия 1), vfsv0 (версия 2) и xfs (для файловой системы XFS). Данный раздел охватывает вторую версию квотирования для файловых систем, отличных от XFS, и квоты xfs для файловой системы XFS.

Первый шаг для введения квотирования – указание опций usrquota или grpquota в определении файловой системы в /etc/fstab, соответственно тому, что вы хотите ввести: квоты для пользователей, групп или то и другое. Рассмотрим создание обоих типов квот в файловой системе XFS, используемой для каталогов home в нашем примере, а также для файловой системы /boot, чтобы видеть, как это делается в различных файловых системах. Сделайте, как показано в листинге 31.


Листинг 31. Установка режима квотирования в /etc/fstab
                    
/dev/hda2       /boot           ext3    defaults,usrquota,grpquota    0   2
/dev/hda7       /home           xfs     defaults,usrquota,grpquota    0   2

В файловой системе XFS информация о квотах входит в состав метаданных. В других файловых системах информация о квотах для пользователей хранится в файле aquota.user в корне файловой системы, а для групп пользователей – в файле aquota.group. Для квот первой версии использовались файлы quota.user и quota.group.

Внеся изменения в /etc/fstab и добавив квоты, необходимо перемонтировать файловые системы и, для файловых систем, отличных от XFS, создать файлы квот и разрешить проверку квотирования. Команда quotacheck проверяет квотирование на всех файловых системах и создает необходимые файлы aquota.user и aquota.group, если их не существует. Также она может восстановить поврежденные файлы квот. Более подробно см. руководство man. Команда quotaon включает проверку квот. Пример показан в листинге 32. Следующие опции используются в обеих командах:

-a
для всех файловых систем в /etc/fstab, для которых разрешено автоматическое монтирование
-u
для пользовательских квот (установлено по умолчанию)
-g
для групповых квот
-v
для подробного вывода


Листинг 32. Создание файлов квот и включение квотирования
                    
root@pinguino:~# quotacheck -augv
quotacheck: Scanning /dev/hda2 [/boot] quotacheck: Cannot stat old user quota 
file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
done
quotacheck: Checked 4 directories and 23 files
quotacheck: Old file not found.
quotacheck: Old file not found.
quotacheck: Skipping /dev/hda7 [/home]
root@pinguino:~# quotaon -ugva
/dev/hda2 [/boot]: group quotas turned on
/dev/hda2 [/boot]: user quotas turned on

Проверка квот при загрузке

Команды quotacheck и quotaon обычно входят в состав инициализационных сценариев, поэтому квотирование включается каждый раз при перезагрузке системы. Дополнительная информация содержится в руководстве Quota Mini HOWTO (см. Ресурсы).

Команда quotaoff отключает использование квот, если необходимо.



В начало


Установка пределов квот

Как видно, квотирование управляется либо через бинарные файлы в корне файловой системы, либо через метаданные файловой системы. Для установки квоты для отдельного пользователя используется команда edquota. Эта команда извлекает информацию о квотах для данного пользователя из различных файловых систем, для которых включено квотирование, создает временный файл и открывает редактор, позволяющий изменять квоты. Информацию о том, какой именно редактор используется, см. в документации man команды edquota. Для изменения квот необходимо обладать полномочиями root. Полученная информация будет выглядеть примерно так, как в листинге 33.


Листинг 33. Запуск edquota
                    
Disk quotas for user ian (uid 1000):
  Filesystem           blocks       soft       hard     inodes     soft     hard
  /dev/hda2                 0          0          0          0        0        0
  /dev/hda7              2948          0          0        172        0        0

Как видно из примера, edquota показывает текущее использование блоков 1К и inode для каждой файловой системы, где включено квотирование. Также существуют мягкие и жесткие пределы на использование блоков и inode. В данном примере их значения установлены в 0, что означает, что пределы квот не установлены.

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

Изменение пределов квот

Чтобы изменить пределы квот, отредактируйте значения во временном файле и сохраните его. Чтобы не применять изменения, закройте файл без сохранения. Предположим, вы хотите установить для меня ограничения в файловой системе /home: по объему – 10 Мбайт, по количеству – 1000 файлов. Добавляя 10% запаса на жесткие пределы, устанавливаем значения, как показано в листинге 34.


Листинг 34. Установка пределов
                    
Disk quotas for user ian (uid 1000):
  Filesystem           blocks       soft       hard     inodes     soft     hard
  /dev/hda2                 0          0          0          0        0        0
  /dev/hda7              2948      10240      11264        172     1000     1100

Сохраните файл, чтобы применить изменения. В данном примере для пользователя ian в файловой системе /boot квоты не были изменены, поскольку пользователь ian не имеет прав для записи в эту файловую систему. Также обратите внимание, что любые изменения, внесенные в данные об используемых блоках или inodes, будут проигнорированы.

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

Теперь предположим, что вы создаете идентификаторы для группы пользователей – слушателей учебного курса. Допустим, у вас есть пользователи gretchen, tom и greg, и вы хотите назначить им такие же квоты, как у ian. Для этого применяется опция -p команды edquota, которая использует значения квот пользователя ian в качестве прототипа для квот других пользователей, как показано в листинге 35.


Листинг 35. Установка квот по прототипу
                    
root@pinguino:~# edquota -p ian gretchen tom greg

Квоты для групп пользователей

Команду edquota также можно использовать для ограничения выделения дискового пространства на основании принадлежности файлов группам. Пусть, например, три упомянутых выше слушателя объединены в основную группу xml-101. Чтобы задать пределы на суммарный объем, используемый всеми членами группы, на уровне 25 Мбайт и 2500 файлов, используйте команду edquota -q xml-101 и установите значения, как показано в листинге 36.


Листинг 36. Установка квот для группы пользователей
                    
Disk quotas for group xml-101 (gid 1001):
  Filesystem           blocks       soft       hard     inodes     soft     hard
  /dev/hda2                 0          0          0          0        0        0
  /dev/hda7                28      25600      28160         10     2500     2750

Льготный период

Пользователи могут превышать мягкие пределы квот в течение "льготного периода", который по умолчанию составляет 7 дней. После истечения этого периода мягкие пределы становятся жесткими. Льготные периоды устанавливаются с помощью опции -y команды edquota. Перед вами вновь окажется редактор с данными, аналогичными представленным в листинге 37. Как и раньше, сохраните изменения, чтобы обновить значения. Убедитесь, что пользователям предоставлено достаточно времени для получения предупреждений по электронной почте и удаления некоторых файлов.


Листинг 37. Установка льготных периодов
                    
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
  Filesystem             Block grace period     Inode grace period
  /dev/hda2                     7days                  7days
  /dev/hda7                     7days                  7days



В начало


Проверка квот

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


Листинг 38. Просмотр квот
                    
root@pinguino:~# quota
Disk quotas for user root (uid 0): none
root@pinguino:~# quota -v
Disk quotas for user root (uid 0):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/hda2   19173       0       0              26       0       0
      /dev/hda7      16       0       0               5       0       0
root@pinguino:~# quota -v ian
Disk quotas for user ian (uid 1000):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/hda2       0       0       0               0       0       0
      /dev/hda7    2948   10240   11264             172    1000    1100

Наряду с текущими уровнями использования выводятся жесткие и мягкие пределы. В листинге 39 показано, что будет, если превысить границы мягкого предела, и что произойдет, если попытаться превысить жесткий предел. В данном примере мы создаем файл размером примерно 4 Мбайт, а затем копируем его. Вместе с первоначальным уровнем использования около 3 Мбайт этого достаточно для превышения мягкого предела. Обратите внимание, что рядом с мягким пределом выводится звездочка, показывающая, что пользователь превысил квоту. Также заметьте, что в столбце grace period теперь показано, сколько времени есть у пользователя, чтобы исправить положение.


Листинг 39. Превышение квот
                    
ian@pinguino:~$ dd if=/dev/zero of=big1 bs=512 count=8000
8000+0 records in
8000+0 records out
4096000 bytes transferred in 0.019915 seconds (205674545 bytes/sec)
ian@pinguino:~$ cp big1 big2
ian@pinguino:~$ quota
Disk quotas for user ian (uid 1000):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/hda7   10948*  10240   11264   7days     174    1000    1100
ian@pinguino:~$ cp big1 big3
cp: writing `big3': Disk quota exceeded



В начало


Создание отчета о квотах

Проверять квоты для каждого пользователя последовательно не очень удобно, поэтому для создания отчета о квотах используется команда repquota. В листинге 40 показано, как просмотреть квоты для всех пользователей и групп каталога /home.


Листинг 40. Превышение квот
                    
root@pinguino:~# repquota -ug /home
*** Report for user quotas on device /dev/hda7
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      16       0       0              5     0     0
ian       +-   11204   10240   11264  6days     175  1000  1100
tom       --       8   10240   11264              3  1000  1100
gretchen  --       8   10240   11264              3  1000  1100
greg      --      12   10240   11264              4  1000  1100


*** Report for group quotas on device /dev/hda7
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
Group           used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      16       0       0              5     0     0
ian       --   11204       0       0            175     0     0
xml-101   --      28   25600   28160             10  2500  2750

Обратите внимание на знак плюс в листинге для пользователя ian. Он показывает, что ian превысил квоту.

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



В начало


Предупреждение пользователей

Команда warnquota используется для отправки предупреждений по электронной почте пользователям, превысившим квоты. Если квоту превысила группа, сообщения по электронной почте отправляются пользователям, указанным в /etc/quotagrpadmins. Обычно warnquota запускается периодически как задание cron. Более подробно о cron и warnquota см. документацию man.



В начало



На предыдущую страницуСтраница 5 из 12 На предыдущую страницу
    IBM в России Конфиденциальность Контакты