- A+
管理文件系统上的磁盘配额是Linux管理员最常见的日常操作任务之一,在本文中,我们将演示如何在Linux服务器(如CentOS,RHEL,Ubuntu和Debian)上的XFS文件系统/分区上设置磁盘配额。此处磁盘配额意味着实施磁盘使用限制和文件或inode使用限制。
XFS文件系统上的磁盘配额实现如下:
- 用户配额
- 集团配额
- 项目配额(或目录配额)
要在XFS文件系统上设置磁盘配额,首先我们必须使用以下挂载选项启用配额:
- uquota:启用用户配额并强制使用限制。
- uqnoenforce:启用用户配额和报告使用情况,但不强制使用限制。
- gquota:启用组配额并强制使用限制。
- gqnoenforce:启用组配额和报告使用情况,但不强制使用限制。
- prjquota / pquota:启用项目配额并强制执行使用限制。
- pqnoenforce:启用项目配额和报告使用情况,但不强制使用限制。
在文章中我们将在/ home分区上实现用户和组磁盘配额,除此之外,我们还将看到如何在/ home文件系统上设置inode配额和/ var文件系统上的项目配额。
[root@linuxtechi ~]# df -Th /home /var Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/Vol-home xfs 16G 33M 16G 1% /home /dev/mapper/Vol-var xfs 18G 87M 18G 1% /var [root@linuxtechi ~]#
在/ home上启用用户和组配额
卸载/ home分区,然后编辑/ etc/fstab文件,
[root@linuxtechi ~]# umount /home/
在/ etc/fstab文件中为/ home分区的default关键字后添加uquota和gquota,示例如下所示
[root@linuxtechi ~]# vi /etc/fstab …………………………… /dev/mapper/Vol-home /home xfs defaults,uquota,gquota 0 0 ……………………………
现在使用“ mount -a ”命令下面的/ home分区挂载,
[root@linuxtechi ~]# mount -a [root@linuxtechi ~]#
验证是否在/ home上启用了配额,
[root@linuxtechi ~]# mount | grep /home /dev/mapper/Vol-home on /home type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota) [root@linuxtechi ~]#
注意:如果你让/ home忙,你可以在umount / home分区中编辑fstab文件,在/ home分区的默认关键字之后添加uquota和gquota关键字,然后重新启动你的系统。重启后,我们将看到/ home上启用了配额。
XFS文件系统上的配额由名为“ xfs_quota ” 的命令行工具管理。xfs_quota有两种工作模式:
- 基本模式 - 对于此模式,只需键入xfs_quota然后您将进入基本模式,您可以为用户打印所有文件系统和磁盘配额的磁盘使用情况,示例如下所示
- 专家模式 - 在“xfs_quota”命令中使用“-x”选项调用此模式,顾名思义此模式用于在xfs文件系统上为本地用户配置磁盘和文件配额。
- 要在任何文件系统上打印磁盘配额,让我们说/ home,使用以下命令,
[root@linuxtechi ~]# xfs_quota -x -c 'report -h' /home User quota on /home (/dev/mapper/Vol-home) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] pkumar 12K 0 0 00 [------] Group quota on /home (/dev/mapper/Vol-home) Blocks Group ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] pkumar 12K 0 0 00 [------] [root@linuxtechi ~]#
配置用户配额
假设我们有一个名为“pkumar”的用户,让我们使用“xfs_quota”命令在他的主目录上设置磁盘和文件配额
[root@linuxtechi ~]# xfs_quota -x -c 'limit bsoft=4250m bhard=4550m pkumar' /home
另外,在上述命令,bsoft是以MB块软限制和bhard是阻断的MB硬限制,限制是实现用于特定用户的文件系统上的磁盘或文件限制关键字。
让我们在他的主目录中为用户pkumar设置文件或inode限制,
[root@linuxtechi ~]# xfs_quota -x -c 'limit isoft=400 ihard=500 pkumar' /home
在上面的命令中,isoft是inode或文件软限制,ihard是inode或文件硬限制。
可以使用单个命令应用块(磁盘)限制和Inode(文件)限制,示例如下所示,
root@linuxtechi ~]# xfs_quota -x -c 'limit bsoft=4250m bhard=4550m isoft=400 ihard=500 pkumar' /home [root@linuxtechi ~]#
现在使用以下xfs_quota命令验证是否在pkumar用户上实现了磁盘和inode限制,
[root@linuxtechi ~]# xfs_quota -x -c "report -bih" /home
在上面的xfs_quota命令中,report是关键字,b是用于块报告,i用于inode报告,h用于以人类可读格式显示报告,
配置组配额
假设我们有一个名为“ engineering ” 的组和两个本地用户(shashi&rakesh),其次要组是工程
现在设置以下配额:
- 软块限制:6 GB(或6144 MB),
- 硬块限制:8 GB(或8192 MB),
- 软文件限制:1000
- 硬文件限制:1200
因此,要在工程组上配置磁盘和文件配额,请使用下面的xfs_quota命令,
[root@linuxtechi ~]# xfs_quota -x -c 'limit -g bsoft=6144m bhard=8192m isoft=1000 ihard=1200 engineering' /home [root@linuxtechi ~]#
注意:在xfs_quota中,我们还可以指定GB的块限制大小,如“bsoft = 6g和bhard = 8g”
现在使用以下命令验证组工程的配额详细信息,
[root@linuxtechi ~]# xfs_quota -x -c "report -gbih" /home Group quota on /home (/dev/mapper/Vol-home) Blocks Inodes Group ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace ---------- --------------------------------- --------------------------------- root 0 0 0 00 [------] 3 0 0 00 [------] pkumar 12K 0 0 00 [------] 4 0 0 00 [------] engineering 0 6G 8G 00 [------] 0 1000 1.2k 00 [------] shashi 12K 0 0 00 [------] 4 0 0 00 [------] rakesh 12K 0 0 00 [------] 4 0 0 00 [------] [root@linuxtechi ~]#
我们可以看到上面的命令输出,磁盘和文件配额是在工程组上实现的,在工程组下,我们有两个用户。
配置项目(或目录)配额
假设我们要在“/var /log ” 上设置项目配额或目录配额,那么首先在/ var文件系统上启用项目配额(prjquota),编辑/ etc/fstab文件,在默认关键字后添加“ prjquota ”/var文件系统,示例如下所示,
[root@linuxtechi ~]# vi /etc/fstab ………………………………. /dev/mapper/Vol-var /var xfs defaults,prjquota 0 0 …………………………………
保存并退出该文件
要使上述更改生效,我们必须重新启动系统,
[root@linuxtechi ~]# init 6
重启后,我们可以使用下面的mount命令验证/ var文件系统上是否启用了项目配额
[root@linuxtechi ~]# mount | grep /var /dev/mapper/Vol-var on /var type xfs (rw,relatime,seclabel,attr2,inode64,prjquota) [root@linuxtechi ~]#
正如我们在上面的输出中看到的那样,项目配额现在已启用,因此要配置quota / var / log目录,首先我们必须在文件/etc/projects中定义目录路径及其唯一ID(在我的情况下,我将151作为/var/log的唯一ID
[root@linuxtechi ~]# vi /etc/projects 51:/var/log
保存并退出该文件
现在将上面的id“151”关联到一个名为“ Logs ” 的项目,创建一个文件/etc/projid并添加以下内容,
[root@linuxtechi ~]# vi /etc/projid Logs:151
保存并退出该文件
使用xfs_quota命令初始化“Logs”项目目录,
语法: #xfs_quota -x -c'project -s project_name'project_directory
[root@linuxtechi ~]# xfs_quota -x -c 'project -s Logs' /var Setting up project Logs (path /var/log)... Processed 1 (/etc/projects and cmdline) paths for project Logs with recursion depth infinite (-1). [root@linuxtechi ~]#
假设我们要在/ var / log目录上实现10 GB硬盘限制和8 GB软限制,请运行以下xfs_quota命令,
[root@linuxtechi ~]# xfs_quota -x -c 'limit -p bsoft=8g bhard=10g Logs' /var [root@linuxtechi ~]#
在上面的命令中,我们在limit关键字之后使用了“-p”,表示我们要实现项目配额
使用下面的xfs_quota命令在/ var / log目录上设置文件或inode限制
[root@linuxtechi ~]# xfs_quota -x -c 'limit -p isoft=1800 ihard=2000 Logs' /var [root@linuxtechi ~]#
使用以下命令打印项目配额详细信息
[root@linuxtechi ~]# xfs_quota -xc 'report -pbih' /var Project quota on /var (/dev/mapper/Vol-var) Blocks Inodes Project ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace ---------- --------------------------------- --------------------------------- #0 137.6M 0 0 00 [------] 1.5k 0 0 00 [------] Logs 3.1M 8G 10G 00 [------] 33 1.8k 2k 00 [------] [root@linuxtechi ~]#
通过在/var/log文件夹下创建大文件来测试项目配额,看看是否可以跨越10GB的块限制,
[root@linuxtechi ~]# cd /var/log/ [root@linuxtechi log]# dd if=/dev/zero of=big_file bs=1G count=9 9+0 records in 9+0 records out 9663676416 bytes (9.7 GB) copied, 37.8915 s, 255 MB/s [root@linuxtechi log]# dd if=/dev/zero of=big_file2 bs=1G count=5 dd: error writing ‘big_file2’: No space left on device 1+0 records in 0+0 records out 1069219840 bytes (1.1 GB) copied, 3.90945 s, 273 MB/s [root@linuxtechi log]#
上面的dd错误命令确认配置的项目配额工作正常,我们也可以从xfs_quota命令确认相同的,
这一切都来自本教程,我希望这些步骤可以帮助您了解XFS文件系统上的配额,请在下面的评论部分分享您的反馈和意见。
- 安卓客户端下载
- 微信扫一扫
- 微信公众号
- 微信公众号扫一扫