Дисковые квоты 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 .
+ обозначает жесткую квоту, превышенную в файловой системе.
При планировании квот необходимо немного подсчитать. Администратор должен знать: сколько пользователей в системе? Сколько свободного места нужно выделить среди пользователей / групп? Сколько байтов составляет блок в файловой системе?
Определите квоты в единицах блоков, относящихся к свободному пространству на диске. Рекомендуется оставить «безопасный» буфер свободного пространства в файловой системе, который останется в худшем случае: все квоты одновременно превышаются. Это особенно относится к разделу, который используется системой для записи логов.