今天我测试了下ext4 quota和xfs独有的projects quota两者的区别


以下是个人理解

两者原理上的区别

quota是把用户的配额限制都写在了挂在点上的根目录,而project quota是xfs独有的项目配额,他不依赖于用户,而是在挂在点的根目录下写一条限制就可以,等于你挂在点下的每个目录都可以看做为一个项目,你可以自己定义每个项目的名称和id写到配置文件里


对于咱们java环境来讲,还是陈峰的方法操作起来更方便和灵活

1.不用格式化分区

2.不用再多管理配置文件,因为xfs的projects quota依赖两个配置文件

3.quota是把用户的配额限制都写在了挂在点上的根目录,而project quota是xfs独有的项目配额,他不依赖于用户,而是在挂在点的根目录下写一条限制就可以,等于你挂在点下的每个目录都可以看做为一个项目,你可以自己定义每个项目的名称和id写到配置文件里


首先创建了2个用户jvm-test1 jvm-test2 jvm

ext4 quota

1.vim /etc/fstab

/dev/vdb                /data0                  ext4     defaults,usrquota,grpquota  0 0

2.mount -o remount /data0/

3.setquota -u  jvm-test1  5000  10000 0  0  /data0

4.mkdir /data0/test1 /data0/test2

5.edquota -p jvm-test1 -u jvm-test2    复制jvm-test1规则

6.chown -R jvm-test1.jvm test1/ && chown -R jvm-test2.jvm test2/

7.repquota -auv  可以看到都有哪些用户做了quota 软硬配额是多少

8.su - jvm-test1

9.dd </dev/zero >userfile bs=1M count=100
vdb: write failed, user block limit reached.
dd: writing `standard output': Disk quota exceeded
1+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000934845 s, 0.0 kB/s


xfs project quota

1.umount /data0/

2.mkfs.xfs -f /dev/vdb

3.mount -o prjquota /dev/vdb /data0/

4.mkdir /data0/test1

5.echo '50:/data0/test1' >> /etc/projects

6.echo 'dev-projectss:50' >> /etc/projid

7.xfs_quota -x -c 'project -s dev-projectss' /data0

8.xfs_quota -x -c 'limit -p bhard=1m dev-projectss' /data0

9.chown -R jvm-test1.jvm /data0/test1

10.su - jvm-test1
11.dd if=/dev/zero of=/data0/test1/testsdf bs=1024 count=100000
dd: writing `/data0/test1/testsdf': No space left on device
15357+0 records in
15356+0 records out
15724544 bytes (16 MB) copied, 0.281963 s, 55.8 MB/s