📅  最后修改于: 2020-10-31 13:26:26             🧑  作者: Mango
可以同时启用CentOS磁盘配额。在超出磁盘容量之前提醒系统管理员,并拒绝进一步的用户磁盘存储访问。当磁盘已满时,根据磁盘上驻留的内容,整个系统可能会停止运转直到恢复。
在CentOS Linux上启用配额管理基本上是一个四步过程-
步骤1-在/ etc / fstab中为组和用户启用配额管理。
步骤2-重新挂载文件系统。
步骤3-创建配额数据库并生成磁盘使用表。
步骤4-分配配额策略。
首先,我们要备份/ 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的选项部分中对卷或标签进行了以下更改,将卷应用于用户和组的配额。
如您所见,我们正在使用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]#
仅在以下两种情况下才需要执行此步骤-
步骤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参数。
现在,再次编辑/ etc / fstab以将/ 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将创建两个文件-
这些用于存储启用了配额的磁盘/分区的配额信息。
以下是常见的配额检查开关。
Switch | Action |
---|---|
-u | Checks for user quotas |
-g | Checks for group quotas |
-c | Quotas should be enabled for each file system with enables quotas |
-v | Displays verbose output |
为此,我们将使用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
让我们看一下每一列。
文件系统-这是应用到的用户的文件系统配额
块-用户当前在每个文件系统上使用多少个块
soft-将块设置为软限制。软限制允许用户在给定时间段内携带配额
硬-集块硬限制。硬限制是总允许配额
索引节点-用户当前正在使用多少个索引节点
soft-软inode限制
硬-硬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上的任何磁盘空间。
-+表示已在文件系统上超出硬配额。
在规划配额时,有必要做一些数学运算。管理员需要知道的是:系统上有多少个用户?在用户/组之间分配多少可用空间?文件系统上有多少字节组成一个块?
根据与可用磁盘空间相关的块来定义配额。建议在文件系统上保留可用空间的“安全”缓冲区,该缓冲区在最坏的情况下仍将保留:同时超过所有配额。特别是在系统用于写入日志的分区上。