【xfs"a】XFS文件系统中quota的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【xfs"a】XFS文件系统中quota的使用相关的知识,希望对你有一定的参考价值。
参考技术A XFS是扩展性高、高性能的文件系统,也是rhel7/CentOS7的默认文件系统。# cat /etc/redhat-release
# which xfs_quota
# rpm -qf /sbin/xfs_quota
# xfs_quota --help
# yum info xfsprogs
# man xfs_quota
如果用户需要使用大容量的磁盘空间,需要使用volume.
Quota主要来限制容器的rootfs, 这个rootfs一般是在host的磁盘会和别的容器共享,所以需要对它做限制。
容器实战高手课/在实战中深入理解容器技术的本质
https://time.geekbang.org/column/intro/365
磁盘配额(Quota)与进阶文件系统管理
https://wizardforcel.gitbooks.io/vbird-linux-basic-4e/content/124.html
XFS文件系统中quota的使用
https://kim1024.github.io/2018/11/27/quota-with-xfs
Linux 磁盘配额(XFS & EXT4)
https://www.cnblogs.com/llife/p/11406819.html
在XFS文件系统上实现针对目录的配额限制
https://www.ichenfu.com/2017/02/20/xfs-per-directory-quota
CentOS7.x xfs 文件系统配置quota 用户磁盘配额
https://www.cnblogs.com/ruiy/p/7446770.html
centos7 xfs 文件系统配置quota 用户磁盘配额
XFS是扩展性高、高性能的文件系统。也是rhel7/centos7的默认文件系统。
XFS支持metadata journaling,这使其能从crash中更快速的恢复。
它也支持在挂载和活动的状态下进行碎片整理和扩容。
通过延迟分配,XFS 赢得了许多机会来优化写性能。
可通过工具xfsdump和xfsrestore来备份和恢复xfs文件系统,
xfsdump可使用dump级别来完成增量备份,还可通过size,subtree,inode flags来排除文件。
也支持user、group、project配额。
下面将介绍如何创建xfs文件系统,分配配额以及对其扩容:
###############################################################################
将/dev/sdb分区(2G),并启动LVM功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[root @localhost zhongq] #parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type help to view a list of commands.
(parted) mkpart primary 4 2048
(parted) set 1 lvm on
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 4194kB 2048MB 2044MB primary lvm
|
###############################################################################
创建PV
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
[root @localhost zhongq] # pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
[root @localhost zhongq] # pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size 24.51 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 6274
Free PE 0
Allocated PE 6274
PV UUID 9hp8U7-IJM6-bwbP-G9Vn-IVuJ-yvE8-AkFjcB
"/dev/sdb1" is a new physical volume of "1.90 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 1.90 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID bu7yIH-1440-BPy1-APG2-FpvX-ejLS-2MIlA8
|
###############################################################################
将/dev/sdb1分配到名为xfsgroup00的VG
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
[root @localhost zhongq] # vgcreate xfsgroup00 /dev/sdb1
Volume group "xfsgroup00" successfully created
[root @localhost zhongq] # vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read / write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 24.51 GiB
PE Size 4.00 MiB
Total PE 6274
Alloc PE / Size 6274 / 24.51 GiB
Free PE / Size 0 / 0
VG UUID T3Ryyg-R0rn-2i5r-7L5o-AZKG-yFkh-CDzhKm
--- Volume group ---
VG Name xfsgroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read / write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 1.90 GiB
PE Size 4.00 MiB
Total PE 487
Alloc PE / Size 0 / 0
Free PE / Size 487 / 1.90 GiB
VG UUID ejuwcc-sVES-MWWB-3Mup-n1wB-Kd0g-u7jm0H
|
###############################################################################
使用命令lvcreate来创建xfsgroup00组大小为1G的名为xfsdata的LV
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
[root @localhost zhongq] # lvcreate -L 1024M -n xfsdata xfsgroup00
WARNING: xfs signature detected on /dev/xfsgroup00/xfsdata at offset 0. Wipe it? [y/n] y
Wiping xfs signature on /dev/xfsgroup00/xfsdata.
Logical volume "xfsdata" created
[root @localhost zhongq] # lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID EnW3at-KlFG-XGaQ-DOoH-cGPP-8pSf-teSVbh
LV Write Access read / write
LV Creation host, time localhost, 2014-08-18 20:15:25 +0800
LV Status available
# open 2
LV Size 2.03 GiB
Current LE 520
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID zmZGkv-Ln4W-B8AY-oDnD-BEk2-6VWL-L0cZOv
LV Write Access read / write
LV Creation host, time localhost, 2014-08-18 20:15:26 +0800
LV Status available
# open 1
LV Size 22.48 GiB
Current LE 5754
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/xfsgroup00/xfsdata
LV Name xfsdata
VG Name xfsgroup00
LV UUID O4yvoY-XGcD-0zPm-eilR-3JJP-updU-rRCSlJ
LV Write Access read / write
LV Creation host, time localhost.localdomain, 2014-09-23 15:50:19 +0800
LV Status available
# open 0
LV Size 1.00 GiB
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
|
###############################################################################
格式化分区为xfs文件系统。
注意:xfs被创建后,其size将无法缩小,但可以通过xfs_growfs来增大
1 2 3 4 5 6 7 8 9 10 |
[root @localhost zhongq] # mkfs.xfs /dev/xfsgroup00/xfsdata
meta-data=/dev/xfsgroup00/xfsdata isize=256 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
|
###############################################################################
挂载xfs系统分区到指定目录,并通过参数uquota,gquota开启文件系统配额。
1 2 3 4 5 |
[root @localhost zhongq] # mkdir /xfsdata
[root @localhost zhongq] # mount -o uquota,gquota /dev/xfsgroup00/xfsdata /xfsdata
[root @localhost zhongq] # chmod 777 /xfsdata
[root @localhost zhongq] # mount|grep xfsdata
/dev/mapper/xfsgroup00-xfsdata on /xfsdata type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
|
###############################################################################
使用xfs_quota命令来查看配额信息以及为用户和目录分配配额,并验证配额限制是否生效。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
[root @localhost zhongq] # xfs_quota -x -c report /xfsdata
User quota on /xfsdata (/dev/mapper/xfsgroup00-xfsdata)
Blocks
User ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
Group quota on /xfsdata (/dev/mapper/xfsgroup00-xfsdata)
Blocks
Group ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
[root @localhost zhongq] # xfs_quota -x -c limit bsoft=100M bhard=120M zhongq /xfsdata
[root @localhost zhongq] #xfs_quota -x -c report /xfsdata
User quota on /xfsdata (/dev/mapper/xfsgroup00-xfsdata)
Blocks
User ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
zhongq 0 102400 122880 00 [--------]
Group quota on /xfsdata (/dev/mapper/xfsgroup00-xfsdata)
Blocks
Group ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
[root @localhost zhongq] # su zhongq
[zhongq @localhost ~]$ dd if =/dev/zero of=/xfsdata/zq00 bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 28.9833 s, 3.6 MB/s
[zhongq @localhost ~]$ dd if =/dev/zero of=/xfsdata/zq01 bs=1M count=100
dd: error writing ‘/xfsdata/zq01’: Disk quota exceeded
21+0 records in
20+0 records out
20971520 bytes (21 MB) copied, 4.18921 s, 5.0 MB/s
[zhongq @localhost ~]$ exit
[root @localhost zhongq] # xfs_quota
xfs_quota> help
df [-bir] [-hn] [-f file] -- show free and used counts for blocks and inodes
help [command] -- help for one or all commands
print -- list known mount points and projects
quit -- exit the program
quota [-bir] [-gpu] [-hnNv] [-f file] [id|name]... -- show usage and limits
Use help commandname for extended help.
xfs_quota> print
Filesystem Pathname
/ /dev/mapper/centos-root
/boot /dev/sda1
/var/lib/docker /dev/mapper/centos-root
/xfsdata /dev/mapper/xfsgroup00-xfsdata (uquota, gquota)
xfs_quota> quota -u zhongq
Disk quotas for User zhongq (1000)
Filesystem Blocks Quota Limit Warn/Time Mounted on
/dev/mapper/xfsgroup00-xfsdata 122880 102400 122880 00 [6 days] /xfsdata
|
###############################################################################
先使用命令lvextend将LV扩展为1.5G(初始容量是1G),然后使用命令xfs_growfs来对xfs文件系统扩容(这里以block计数)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[root @localhost zhongq] # lvextend -L 1.5G /dev/xfsgroup00/xfsdata
Extending logical volume xfsdata to 1.50 GiB
Logical volume xfsdata successfully resized
[root @localhost zhongq] # xfs_growfs /dev/xfsgroup00/xfsdata -D 393216
meta-data=/dev/mapper/xfsgroup00-xfsdata isize=256 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 262144 to 393216
[root @localhost zhongq] # df -h|grep xfsdata
/dev/mapper/xfsgroup00-xfsdata 1.5G 153M 1.4G 10% /xfsdata
|
以上是关于【xfs"a】XFS文件系统中quota的使用的主要内容,如果未能解决你的问题,请参考以下文章
centos7 xfs 文件系统配置quota 用户磁盘配额