Учебники

Linux Admin — Управление квотами

Дисковые квоты CentOS могут быть включены как; оповещение системного администратора и отказ в дальнейшем доступе к дисковому хранилищу для пользователя до превышения емкости диска. Когда диск заполнен, в зависимости от того, что находится на диске, вся система может остановиться, пока не восстановится.

Включение управления квотами в CentOS Linux в основном состоит из 4 шагов:

  • Шаг 1 — Включите управление квотами для групп и пользователей в / etc / fstab.

  • Шаг 2 — Перемонтируйте файловую систему.

  • Шаг 3 — Создайте базу данных квот и сгенерируйте таблицу использования диска.

  • Шаг 4 — Назначьте политику квот.

Шаг 1 — Включите управление квотами для групп и пользователей в / etc / fstab.

Шаг 2 — Перемонтируйте файловую систему.

Шаг 3 — Создайте базу данных квот и сгенерируйте таблицу использования диска.

Шаг 4 — Назначьте политику квот.

Включить управление квотами в / etc / fstab

Во-первых, мы хотим сделать резервную копию нашей / etc / fstab filen —

[root@centosLocal centos]# cp -r /etc/fstab ./

Теперь у нас есть копия нашего известного рабочего / etc / fstab в текущем рабочем каталоге.

# 
# /etc/fstab 
# Created by anaconda on Sat Dec 17 02:44:51 2016 
# 
# Accessible filesystems, by reference, are maintained under '/dev/disk' 
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
# 
/dev/mapper/cl-root        /         xfs     defaults                      0 0
UUID = 4b9a40bc-9480-4     /boot     xfs     defaults                      0 0

/dev/mapper/cl-home        /home     xfs     defaults,usrquota,grpquota    0 0

/dev/mapper/cl-swap        swap      swap    defaults                      0 0

Мы внесли следующие изменения в раздел параметров / etc / fstab для тома или метки, к которой должны применяться квоты для пользователей и групп.

  • usrquota
  • grpquota

Как видите, мы используем файловую систему xfs . При использовании xfs необходимо выполнять дополнительные шаги вручную. / home находится на том же диске, что и /. Дальнейшее исследование показывает / установлено для noquota , которая является опцией монтирования на уровне ядра. Мы должны заново настроить параметры загрузки ядра.

root@localhost rdc]# mount | grep ' / ' 
/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

[root@localhost rdc]#

Переконфигурирование параметров загрузки ядра для файловых систем XFS

Этот шаг необходим только при двух условиях:

  • Когда диск / раздел, на котором мы включаем квоты, использует файловую систему xfs
  • Когда ядро ​​передает параметр noquota в / etc / fstab во время загрузки

Шаг 1 — Сделайте резервную копию / etc / default / grub.

cp /etc/default/grub ~/

Шаг 2 — Изменить / etc / default / grub .

Вот файл по умолчанию.

GRUB_TIMEOUT=5 
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" 
GRUB_DEFAULT=saved 
GRUB_DISABLE_SUBMENU=true 
GRUB_TERMINAL_OUTPUT="console" 
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet" 
GRUB_DISABLE_RECOVERY="true"

Мы хотим изменить следующую строку —

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet" 

в

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv 
=cl/swap rhgb quiet rootflags=usrquota,grpquota"

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

Шаг 3 — Сделайте резервную копию вашего рабочего grub.cfg

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

Сделайте новый grub.cfg

[root@localhost rdc]# grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ... 
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64 
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img 
Found linux image: /boot/vmlinuz-0-rescue-dbba7fa47f73457b96628ba8f3959bfd 
Found initrd image: /boot/initramfs-0-rescuedbba7fa47f73457b96628ba8f3959bfd.img 
done

[root@localhost rdc]#

перезагружать

[root@localhost rdc]#reboot

Если все изменения были точными, у нас не было бы возможности добавить квоты в файловую систему xfs .

[rdc@localhost ~]$ mount | grep ' / ' 
/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
 
[rdc@localhost ~]$

Мы передали параметры usrquota и grpquota через grub.

Теперь, снова отредактируйте / etc / fstab, чтобы включить / since / home на тот же физический диск.

/dev/mapper/cl-root/xfs
defaults,usrquota,grpquota        0 0

Теперь давайте включим базы данных квот.

[root@localhost rdc]# quotacheck -acfvugM

Убедитесь, что квоты включены.

[root@localhost rdc]# quotaon -ap 
group quota on / (/dev/mapper/cl-root) is on 
user quota on / (/dev/mapper/cl-root) is on 
group quota on /home (/dev/mapper/cl-home) is on 
user quota on /home (/dev/mapper/cl-home) is on 
[root@localhost rdc]#

Перемонтировать файловую систему

Если раздел или диск отделены от активно загружаемого раздела, мы можем перемонтировать их без перезагрузки. Если квота была настроена на диске / разделе, загруженном в корневой каталог /, нам может потребоваться перезагрузить операционную систему. Для принудительного перемонтирования и применения изменений необходимость перемонтирования файловой системы может варьироваться.

[rdc@localhost ~]$ df 
Filesystem              1K-blocks     Used      Available      Use%     Mounted on
/dev/mapper/cl-root     22447404      4081860   18365544       19%         /
devtmpfs                903448        0         903448         0%          /dev
tmpfs                   919308        100       919208         1%          /dev/shm
tmpfs                   919308        9180      910128         1%          /run
tmpfs                   919308        0         919308         0%          /sys/fs/cgroup
/dev/sda2               1268736       176612    1092124        14%         /boot
/dev/mapper/cl-var      4872192       158024    4714168        4%          /var
/dev/mapper/cl-home     18475008      37284     18437724       1%          /home
tmpfs                   183864        8         183856         1%          /run/user/1000

[rdc@localhost ~]$

Как мы видим, тома LVM используются. Так что просто перезагрузиться. Это перемонтирует / home и загрузит изменения конфигурации / etc / fstab в активную конфигурацию.

Создать файлы базы данных квот

CentOS теперь может работать с дисковыми квотами в / home. Чтобы включить полную поддержку квот, мы должны запустить команду quotacheck .

quotacheck создаст два файла —

  • aquota.user
  • aquota.group

Они используются для хранения информации о квоте для дисков / разделов с квотой.

Ниже приведены общие переключатели квотчек.

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

Добавить ограничения квоты на пользователя

Для этого мы будем использовать команду edquota, за которой следует имя пользователя —

[root@localhost rdc]# edquota centos

Disk quotas for user centos (uid 1000):  
Filesystem                   blocks       soft       hard     inodes     soft     hard 
/dev/mapper/cl-root              12          0          0         13        0        0  
/dev/mapper/cl-home            4084          0          0        140        0        0

Давайте посмотрим на каждый столбец.

  • Файловая система — это квоты файловой системы для пользователя, применяемые к

  • blocks — Сколько блоков пользователь использует в каждой файловой системе.

  • soft — установить блоки для мягкого ограничения. Мягкий лимит позволяет пользователю переносить квоты на данный период времени

  • hard — установить блоки для жесткого ограничения. Жесткий лимит — общая допустимая квота

  • inodes — сколько inode использует пользователь

  • soft — мягкий предел inode

  • hard — жесткий предел inode

Файловая система — это квоты файловой системы для пользователя, применяемые к

blocks — Сколько блоков пользователь использует в каждой файловой системе.

soft — установить блоки для мягкого ограничения. Мягкий лимит позволяет пользователю переносить квоты на данный период времени

hard — установить блоки для жесткого ограничения. Жесткий лимит — общая допустимая квота

inodes — сколько inode использует пользователь

soft — мягкий предел inode

hard — жесткий предел inode

Чтобы проверить нашу текущую квоту как пользователь —

[centos@localhost ~]$ quota 
Disk quotas for user centos (uid 1000):  
Filesystem             blocks     quota      limit grace    files   quota   limit   grace 
/dev/mapper/cl-home    6052604    56123456   61234568       475     0       0       [centos@localhost ~]$

Ниже приведена ошибка, выдаваемая пользователю, когда предел жесткой квоты превышен.

[centos@localhost Downloads]$ cp CentOS-7-x86_64-LiveKDE-1611.iso.part ../Desktop/

cp: cannot create regular file ‘../Desktop/CentOS-7-x86_64-LiveKDE-
1611.iso.part’: Disk quota exceeded

[centos@localhost Downloads]$

Как мы видим, мы находимся в пределах дисковой квоты этого пользователя. Давайте установим мягкое предупреждение о пределе. Таким образом, пользователь получит предварительное уведомление до истечения срока действия квоты. Исходя из своего опыта, вы получите жалобы конечных пользователей, когда они приступят к работе, и вам потребуется 45 минут для очистки файлов, чтобы фактически приступить к работе.

Как администратор, мы можем проверить использование квоты с помощью команды repquota .

[root@localhost Downloads]# repquota  /home  
                    Block limits                            File limits  
User            used     soft     hard     grace       used     soft     hard     grace 
----------------------------------------------------------------------------------------
root      --       0         0        0                   3        0        0        
centos    -+ 6189824  56123456 61234568                 541      520      540      6days 

[root@localhost Downloads]#

Как мы видим, пользовательские centos превысили свою квоту жесткого блока и больше не могут использовать больше дискового пространства в / home .

+ обозначает жесткую квоту, превышенную в файловой системе.

При планировании квот необходимо немного подсчитать. Администратор должен знать: сколько пользователей в системе? Сколько свободного места нужно выделить среди пользователей / групп? Сколько байтов составляет блок в файловой системе?

Определите квоты в единицах блоков, относящихся к свободному пространству на диске. Рекомендуется оставить «безопасный» буфер свободного пространства в файловой системе, который останется в худшем случае: все квоты одновременно превышаются. Это особенно относится к разделу, который используется системой для записи логов.