如何在 XFS 或 Ext4 Linux 系统上启用磁盘配额_centos

磁盘配额系统基于伯克利磁盘配额系统,它为系统管理员提供了一种控制磁盘空间使用的方法。它可以为单个 Linux 用户或组定义。

在磁盘上建立的限制基于您可以使用 edquota 命令(用于 JFS 文件系统)和使用 j2edlimit 命令(用于 JFS2 文件系统)进行更改的参数:

  • 用户或组的软限制
  • 用户或组的硬性限制
  • 配额宽限期

磁盘配额系统跟踪 quota.user 和 quota.group 文件中的用户配额和组配额,这些文件位于启用配额的文件系统的根目录中。这些文件是使用 quotacheck 和 edquota 命令创建的,并且可使用 quota 命令读取。

让我们首先确定 Linux 系统的文件系统,以及是否已经启用配额。

$ mount | grep ' / '
# Ext4
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro)

# XFS
/dev/mapper/cs-root on / type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)

从输出中可以明显看出,ext4 和 xfs 文件系统上都没有启用磁盘配额。


在 XFS 文件系统上启用磁盘配额

从输出检查配额是否被禁用,如果是,则输出中将没有配额mount | grep ' / '

$ mount | grep ' / '
/dev/mapper/cs-root on / type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)

如果启用了磁盘配额,您将在输出中看到“usrquota”和“groupquota”。

使用以下命令编辑 Grub 配置文件。

sudo vim /etc/default/grub

添加到末尾rootflags=usrquota,grpquota

GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/cs-swap rd.lvm.lv=cs/root rd.lvm.lv=cs/swap rootflags=usrquota,grpquota"

备份您当前的 Grub2 配置文件。

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

对于 EFI 引导系统,该文件位于 '/boot/efi/EFI/centos/grub.cfg'

sudo cp /boot/efi/EFI/centos/grub.cfg /boot/efi/EFI/centos/grub.cfg.orig

生成新的 Grub 配置文件。

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

对于 EFI

sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

重新启动服务器,然后检查

mount | grep ' / '

设置用户配额。

sudo xfs_quota -x -c 'limit bsoft=4g bhard=5g myuser'  /home
sudo xfs_quota -x -c 'limit -g bsoft=4g bhard=5g myuser' /home

显示报告。

sudo report -h -u

在 EXT4 文件系统上启用磁盘配额

检查系统中是否已启用磁盘配额。

/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro)

如果系统中已启用配额,则输出将包含“usrquota”和“groupquota”。

$ mount | grep ' / '
/dev/xvda1 on / type ext4 (rw,usrquota,grpquota)

编辑文件并/etc/fstab

UUID=<UUID> /                       ext4    defaults,usrquota,grpquota 0 0

我的服务器示例:

UUID=b60999df-940a-4c3a-9128-8312e991abeb /               ext4    defaults,usrquota,grpquota,errors=remount-ro  0  1

您可以重新挂载文件系统以使更改生效。

sudo mount -o remount /

安装提供 quotacheck 命令的配额包。

sudo apt update && sudo apt install quota -y

接下来使用命令创建配额数据库。这将在 / 下创建 和 :quotacheckaquota.useraquota.group

sudo quotacheck -cugmv /

哪里:

  • -c指定我们正在创建文件配额
  • -u指定创建基于用户的配额文件
  • -g指定组磁盘配额的创建
  • -m在执行初始配额统计时禁用以只读方式重新挂载文件系统
  • -v详细输出

通过运行以下命令打开磁盘配额。

sudo quotaon /

使用 edquota 命令编辑用户的磁盘配额。

sudo edquota -u myuser

对于组的配额,请使用该选项。

sudo edquota -g mygroup

对于单个命令使用setquota

sudo setquota -u myuser 800M 2G 0 0 /
sudo quota -vs myuser

可以使用配额报告打印。

sudo repquota -s /