如何在Linux服务器上的XFS文件系统上设置磁盘配额

  • 如何在Linux服务器上的XFS文件系统上设置磁盘配额已关闭评论
  • 210 views
  • A+
所属分类:linux

管理文件系统上的磁盘配额是Linux管理员最常见的日常操作任务之一,在本文中,我们将演示如何在Linux服务器(如CentOSRHELUbuntuDebian)上的XFS文件系统/分区上设置磁盘配额。此处磁盘配额意味着实施磁盘使用限制和文件或inode使用限制。

如何在Linux服务器上的XFS文件系统上设置磁盘配额

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 
……………………………

如何在Linux服务器上的XFS文件系统上设置磁盘配额

现在使用“ 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然后您将进入基本模式,您可以为用户打印所有文件系统和磁盘配额的磁盘使用情况,示例如下所示

如何在Linux服务器上的XFS文件系统上设置磁盘配额

  • 专家模式 - 在“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

如何在Linux服务器上的XFS文件系统上设置磁盘配额

在上面的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命令确认相同的,

如何在Linux服务器上的XFS文件系统上设置磁盘配额

这一切都来自本教程,我希望这些步骤可以帮助您了解XFS文件系统上的配额,请在下面的评论部分分享您的反馈和意见。

  • 安卓客户端下载
  • 微信扫一扫
  • weinxin
  • 微信公众号
  • 微信公众号扫一扫
  • weinxin
avatar