XFS文件系统磁盘配额和目录配额操作(超详细)

Linux系统评论阅读模式

上篇文章《EXT3/4文件系统磁盘配额操作》讲解了EXT文件系统磁盘配额操作,这篇文章主要讲解XFS文件系统如何做磁盘配额和目录配额,在CentOS系统中,不同的文件系统使用不同磁盘配额配置管理工具。例如,XFS文件系统通过xfs_quota工具进行管理; EXT3/4文件系统通过quota工具进行管理,ext文件系统无法对目录进行配额只能对设置整个文件系统。

XFS文件系统磁盘配额和目录配额操作(超详细)

XFS文件系统磁盘配额和目录配额操作(超详细)

前提条件:使用磁盘配额需要指定的分区已经挂载,且支持磁盘配额,已挂载的文件系统需要取消挂载重新挂载带配额参数的文件系统。

设置用户磁盘配额

格式化/dev/sdb1磁盘分区为xfs文件系统

[root@local101 ~] # mkfs.xfs /dev/sdb1

挂载带配额的文件系统

为了方便测试可以修改/user2/目录权限为777,允许任何用户写入数据

[root@local101 ~] # mount -o usrquota,grpquota /dev/sdb1 /user1
[root@local101 ~] # chmod 777 /user2 //修改目录权限为777

如果开机自动以支持配额功能的方式挂载该分区,可以将"usrquota,grpquota挂载参数写入/etc/fstab"文件中(可选)

[root@localhost ~]# vim /etc/fstab //设置开机自动挂载
/dev/sdb1 /user1 xfs defaults,usrquota,grpquota 0 0

编辑用户或组配额

[root@local101 ~] # xfs_quota -x -c 'limit bsoft=18M bhard=20M isoft=8 ihard=10 -u sunlei' /user1

-x:启动专家模式

-c:直接调用管理命令(不加-c会进入交换模式)

-u:指定用户

-g:指定用户组

bsoft:设置磁盘容量的软限制数值

bhard:设置磁盘容量的硬限制数值

isoft:设置磁盘文件数的硬限制数值

ihard:设置磁盘文件数的软限制数值

查询配额

"quota"字段对应的是软限制;"Limit"字段对应的是硬限制

[root@local101 ~] # xfs_quota -x
xfs_quota> quota -vhbi sunlei
Disk quotas for User sunlei (1000)
Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
/dev/sdb1 0 18M 20M 00 [------] 0 8 10 00 [------] /user1

-u:指定查询用户

-b:查询磁盘容量限制

-i:查询磁盘文件数限制

-h:人性化可读

-v:显示详细信息

验证配额

切换限制配额用户sunlei使用dd转换工具测试配额。

[sunlei@local101 /user1] $ dd if=/dev/zero of=/user1/2 bs=1M count=18 //正常写入
记录了18+0 的读入
记录了18+0 的写出
18874368字节(19 MB)已复制,0.0137819 秒,1.4 GB/秒
[sunlei@local101 /user1] $ dd if=/dev/zero of=/user1/2 bs=1M count=21 //超过磁盘硬限制
dd: 写入"/user1/2" 出错: 超出磁盘限额
记录了21+0 的读入
记录了20+0 的写出
20971520字节(21 MB)已复制,0.0291852 秒,719 MB/秒

注:dd命令是一个设备转换和复制命令,if="指定输入设备(或文件)、“of="指定输出设备(或文件)、"bs="指定读取数据块的大小、"count="指定读取数据块的数量,/dev/zero “零”设备,可以无限的提供空字符。

设置目录配额

格式化磁盘/dev/sdb2为xfs文件系统,以支持目录配额方式挂载到/user2

[root@local101 ~] # mkfs.xfs /dev/sdb2
[root@local101 ~] # mount -o prjquota /dev/sdb2/ /user2

新建一个测试目录/user2/log

[root@local101 ~] # mkdir /user2/log

配置目录配额

[root@local101 ~] # xfs_quota -x -c 'project -s -p /user2/log 10' /user2 //设置目录树配额和ID号
Setting up project 10 (path /user2/log)...
Processed 1 (/etc/projects and cmdline) paths for project 10 with recursion depth infinite (-1).
[root@local101 ~] # xfs_quota -x -c 'limit -p bhard=10M 10' /user2 //设置目录配额硬限制

第二种方法:

[root@local101 ~] # echo "12:/user2/log2" >> /etc/projects //ID号到目录数的映射
[root@local101 ~] # echo "log2:12" >> /etc/projid //ID号到项目名称的映射
[root@local101 ~] # xfs_quota -x -c 'project -s log2' /user2 //启动目录配额

注:project用于配置目录配额

-p:用于直接在命令行设置目录配额

-s:指定配额目录和ID号

查询目录配额

[root@local101 ~] # xfs_quota -x -c 'report' /user2
Project quota on /user2 (/dev/sdb2)
Blocks
Project ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
#0 0 0 0 00 [--------]
#10 0 0 15360 00 [--------]
log2 0 0 10240 00 [--------]

测试目录配额

[root@local101 ~] # dd if=/dev/zero of=/user2/log/a bs=1M count=8
记录了8+0 的读入
记录了8+0 的写出
8388608字节(8.4 MB)已复制,0.00901992 秒,930 MB/秒
[root@local101 ~] # dd if=/dev/zero of=/user2/log/a bs=1M count=12 //超出配额拒绝写入
dd: 写入"/user2/log/a" 出错: 设备上没有空间
记录了11+0 的读入
记录了10+0 的写出
10485760字节(10 MB)已复制,0.0160793 秒,652 MB/秒

xfs_quota 命令

-x:启动专家模式

-c:直接调用管理命令(不加-c会进入交换模式)

[root@local101 ~] # xfs_quota -x -c '命令 选项' /挂载点

ASFASDFADS FDSAFASDFASDFXFS文件系统磁盘配额和目录配额操作(超详细)

文章末尾固定信息

我的微信
这是我的微信扫一扫
weinxin
我的微信
我的微信公众号
我的微信公众号扫一扫
weinxin
我的公众号
 

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定