Регистрация Войти
Вход на сайт
Качественные бесплатные шаблоны dle скачать с сайта
» » » Установка дисковых квот в FreeBSD

Установка дисковых квот в FreeBSD

10-08-2010
Автор: synergix
Просмотров: 5 865
Комментариев: 0
Версия для печати
Квоты придумали для того, чтобы ограничивать для пользователей и групп пользователей объем занимаемого дискового пространства. Квоты используют, пожалуй, во всех многопользовательских операционных системах (по крайней мере, в тех, что мне известны). Рассмотрим здесь, как же настроить систему под управлением FreeBSD на использование квот. Ничего сложного нет. Данный вопрос освещен в Руководстве довольно неплохо, а потому приступим к прежде всего к пересборке ядра, потому что поддержка квот во FreeBSD должна быть включена в ядро. А в GENERIC ядре данная возможность отсутствует. Для пересборки ядра с поддержкой квот следует добавить в конфигурационный файл соответствующую опцию:
options    QUOTA


О том, как пересобирается ядро описано в этой статье. После того, как пересоберете ядро, не спешите перегружать систему. Сначала следует отредактировать файл /etc/fstab прописав в нем поддержку квот в дополнительных опциях монтирования каждой файловой системы, для которой Вы желаете подключить квоту.
# Device      MNTP    FS     Options                 Dump  Pass
/dev/ad0s1b   none    swap   sw                        0    0
/dev/ad0s1a   /       ufs    rw,userquota,groupquota   1    1
/dev/ad0s1d   /tmp    ufs    rw,userquota,groupquota   2    2
/dev/ad0s1e   /home   ufs    rw,userquota,groupquota   2    2
/dev/ad0s1f   /var    ufs    rw,userquota,groupquota   2    2
/dev/ad0s1g   /usr    ufs    rw,userquota,groupquota   2    2

Опция userquota дает возможность использовать квоты для пользователей. Опция groupquota - для групп пользователей. Кроме этого, следует на каждом разделе создать специальные файлы, в которых будет храниться информация о квотах. Эти файлы называются quota.user (пользовательские квоты) и quota.group (групповые квоты). Права на эти файлы должны быть установлены в 640, а владелец root:operator
# ls -la /quota* /tmp/quota* /usr/quota* /var/quota* /home/quota*
-rw-r-----  1 root  operator  ... /quota.group
-rw-r-----  1 root  operator  ... /quota.user
-rw-r-----  1 root  operator  ... /tmp/quota.group
-rw-r-----  1 root  operator  ... /tmp/quota.user
-rw-r-----  1 root  operator  ... /usr/quota.group
-rw-r-----  1 root  operator  ... /usr/quota.user
-rw-r-----  1 root  operator  ... /var/quota.group
-rw-r-----  1 root  operator  ... /var/quota.user
-rw-r-----  1 root  operator  ... /home/quota.group
-rw-r-----  1 root  operator  ... /home/quota.user

Напоследок, для подключения квот при запуске системы, добавьте в /etc/rc.conf
    enable_quotas="YES"
    check_quotas="NO"


По желанию, можно выставить check_quotas=”YES”, но иногда этот процесс (проверки квот при запуске) может занимать довольно длительное время. Теперь все готово. Перегружайте систему. При старте, на экране (и в логах) появится:
Feb  1 14:35:07 synergix kernel: Enabling quotas:
Feb  1 14:35:07 synergix kernel: done.


Если есть такое, значит все в порядке. Теперь можно заняться ограничением дискового пространства для определенных пользователей. Для работы с квотами применяются несколько утилит. Основные из них: quota, quotacheck, edquota, repquota. quota - служит для получения информации о текущем использовании квоты пользователем или группой. В простом виде каждый пользователь, чтобы узнать занимаемую им квоту, может выполнить:
$ quota
Disk quotas for user synergix (uid 1001):
Filesystem usage    quota    limit  grace files  quota  limit grace
    /tmp   1874     102400   204800        299    3000   3000
    /home  17918086 26214400 31457280      19597  500000 500000

Как это все читается? Для начала следует сказать о том, что существуют ограничения не только на используемое дисковое пространство, но и на количество файлов (инод) в конкретной файловой системе. Как известно, количество инод ограничено, а потому, чтобы не дать пользователю забить раздел огромным количеством мелких файликов ему выставляют квоту на общее число создаваемых файлов. Второе, что следует знать - квоты бывают “мягкие” (soft) и “жесткие” (hard). Soft квота может быть установлена несколько ниже значения hard квоты. При достижении пользователем soft квоты у него еще будет возможность в течении grace времени (по умолчанию семь дней) записывать файлы на диск сверх мягкой квоты. По истечении grace срока писать на диск пользователь больше ничего не сможет, пока не удалит свои файлы на жестком диске, чтобы их суммарный объем не превышал soft квоту. Если пользователь достиг hard квоты система моментально ему об этом сообщит и более записать что-либо на диск он не сможет, пока не удалит лишние файлы. Soft и hard квоты устанавливаются также и на количество файлов. В вышеприведенном примере пользователь synergix использовал на разделе /home 17918086 килобайт (~17Gb) в 19597 файлах. Установленная квота для synergix на разделе /home: 26 Gb - soft; 30Gb - hard. По количеству файлов и жесткая и мягкая квоты одинаковы - 50 тысяч файлов может быть у пользователя synergix на разделе /home. Пользователь также может проверить квоту для группы в которой он находится. Для этого следует запустить команду quota с опцией -g :
$ quota -g wheel
Disk quotas for group wheel (gid 0): none


Данное сообщение означает, что для группы wheel не установлено никаких квот. Командой edquota администратор может создавать/редактировать квоты. Запуская edquota c ключом -u или -g можно задавать квоты для пользователей или групп соответственно. При этом, выполнив:
# edquota -u john

у Вас откроется текстовый редактор по-умолчанию:
Quotas for user john:
/: kbytes in use: 0, limits (soft = 0, hard = 0)
        inodes in use: 0, limits (soft = 0, hard = 0)
/tmp: kbytes in use: 34, limits (soft = 1024, hard = 1024)
        inodes in use: 7, limits (soft = 100, hard = 100)
/usr: kbytes in use: 0, limits (soft = 0, hard = 0)
        inodes in use: 0, limits (soft = 0, hard = 0)
/var: kbytes in use: 14, limits (soft = 1024, hard = 1024)
        inodes in use: 1, limits (soft = 10, hard = 15)
/home: kbytes in use: 120, limits (soft = 1024, hard = 2048)
        inodes in use: 13, limits (soft = 450, hard = 500)

в котором можно внести изменения в использования квот пользователя john. Аналогично можно выполнить изменения и для квот группы. Данную команду может запускать только root. Кроме этого, у администратора есть еще один инструмент для просмотра состояния квот - repquota. Запуская repquota c ключом -u или -g, а также указывая файловую систему, по которой требуется информация, можно просмотреть состояние квот для пользователей или групп соответственно для указанной файловой системы.
# repquota -u /home
                  Block  limits          File  limits
User        used   soft    hard  grace  used soft hard grace
stan   --   6793 102400 1024000    -     485 1000 1000     -
serg   --      4  10240   10240    -       2  300  300     -
mike   --     28   1024    1024    -      12   50   50     -
peter  --  96498 307200  512000    -     199 3000 3000     -
romeo  --    834  10240   10240    -     138  500  500     -
zein   --   7298  10240   10240    -      18  200  200     -
ana    --     42      0       0    -      20    0    0     -
still  --     34      0       0    -      15    0    0     -

Если у какого-то пользователя будет превышена квота, то это будет отмечено “плюсиком”, а grace покажет сколько еще времени пользователь может превышать soft квоту:
               Block  limits          File  limits
User        used   soft    hard  grace  used soft hard grace
...
denis  +- 442562 102400 1024000  7days  527  1200 1200     -
...

Для того, чтобы запустить вручную проверку квот можно выполнить:
# quotacheck -uv /home
*** Checking user quotas for /dev/ad6s1g (/home)

Ключ -v выводит дополнительную информацию на экран. Ключ -u или -g указывает проверять квоты для пользователей или групп соответственно.
Теги: freebsd unix quota
Рейтинг статьи:
  • 0
  
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.