xfs
[Top] [All Lists]

Re: xfs directory quota doesn't work

To: Simon Xia <simonxiaomg@xxxxxxxxx>
Subject: Re: xfs directory quota doesn't work
From: Brian Foster <bfoster@xxxxxxxxxx>
Date: Mon, 24 Aug 2015 08:02:25 -0400
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <CANX=BtY-Q0w5q4WZx869u0q=up+yE9f6u-gJ_O28L9TYzze_Dw@xxxxxxxxxxxxxx>
References: <CANX=BtYB4yoGwxz72sUN+6aSVL0fQ1JnS3PEw0zRqTbtO4_KDg@xxxxxxxxxxxxxx> <20150821112118.GB46372@xxxxxxxxxxxxxxx> <CANX=BtY-Q0w5q4WZx869u0q=up+yE9f6u-gJ_O28L9TYzze_Dw@xxxxxxxxxxxxxx>
User-agent: Mutt/1.5.23 (2014-03-12)
On Mon, Aug 24, 2015 at 02:43:07PM +0800, Simon Xia wrote:
> I do create two subdirectory for project
> 

Please try not to top-post...

> and the error maybe caused by this step:
> xfs_quota -x -c 'project âc task1' /home/xiameng.xm/xfs_dir
                           ^
That looks like an invalid character in the command here (and those
below). I probably didn't notice it before and just fixed up my local
commands...

> 
> âc - no such project in /etc/projects

... but this suggests it's not being interpreted as a command flag.
E.g., a command with the wrong character:

# xfs_quota -x -c 'project âc task1' /mnt
âc - no such project in /etc/projects or invalid project number
Checking project task1 (path /mnt/task1)...
/mnt/task1 - project identifier is not set (inode=0, tree=11)
/mnt/task1 - project inheritance flag is not set
Processed 1 (/etc/projects and cmdline) paths for project task1 with recursion 
depth infinite (-1).

vs. with the correct:

# xfs_quota -x -c 'project -c task1' /mnt
Checking project task1 (path /mnt/task1)...
/mnt/task1 - project identifier is not set (inode=0, tree=11)
/mnt/task1 - project inheritance flag is not set
Processed 1 (/etc/projects and cmdline) paths for project task1 with recursion 
depth infinite (-1).

All in all, you should see something like the following from the '-s'
command before this is expected to work:

# xfs_quota -xc 'project -s task1' /mnt
Setting up project task1 (path /mnt/task1)...
Processed 1 (/etc/projects and cmdline) paths for project task1 with recursion 
depth infinite (-1).

And for further verification, the project ID should be set on the
associated directory:

# xfs_io -c "lsproj" /mnt/task1
projid = 11

Brian

> Checking project task1 (path /home/xiameng.xm/xfs_dir/task1)...
> /home/xiameng.xm/xfs_dir/task1 - project identifier is not set (inode=0,
> tree=11)
> /home/xiameng.xm/xfs_dir/task1 - project inheritance flag is not set
> Processed 1 /etc/projects paths for project task1
> 
> I'm a little confused about the output message, cause everything is ok in
> config file
> 
> 2015-08-21 19:21 GMT+08:00 Brian Foster <bfoster@xxxxxxxxxx>:
> 
> > On Fri, Aug 21, 2015 at 05:05:00PM +0800, Simon Xia wrote:
> > > hi, everyone, I encounter a problem when using xfs
> > >
> > > now I have two tasks and I wanna run them in different directory and
> > limit
> > > the directoryâs size. I use xfsâs project quota to achieve this.
> > >
> > > I follow the steps from here:
> > > https://solidlinux.wordpress.com/2012/12/09/xfs-quota-managament/
> > >
> > > here is detail of my two config files
> > >
> > > /etc/projects:
> > >
> > > 11:/home/xiameng.xm/xfs_dir/task1
> > > 12:/home/xiameng.xm/xfs_dir/task2
> > >
> > > /etc/projid:
> > >
> > > task1:11
> > > task2:12
> > >
> > > and here is my step:
> > >
> > > touch test_xfs
> > > dd if=/dev/zero of=test_xfs bs=1000000 count=1
> > > mkfs.xfs test_xfs
> > >
> >
> > That looks small, I can't even mkfs a file that small. I ran through
> > this using 'bs=1M count=100.'
> >
> > > mkdir xfs_dir
> > > mount test_xfs ./xfs_dir -o pquota,loop
> > >
> > > xfs_quota -xc 'project âs task1' /home/xiameng.xm/xfs_dir
> > > xfs_quota -xc 'project âs task2' /home/xiameng.xm/xfs_dir
> > >
> >
> > I don't see where you've created the directories yet..? I get the
> > following:
> >
> > # xfs_quota -xc 'project -s task1' /mnt/
> > xfs_quota: cannot find mount point for path `/mnt/task1': No such file or
> > directory
> >
> > ... until I create the task1/task2 directories. This is required because
> > the project quota command has to set the project id on the directory
> > inode. It won't work if the directory is created after this point,
> > regardless of whether the quota limit is specified.
> >
> > Once I create those directories and run the project command, everything
> > seems to work. I can write up to 2MB to task1 and 10MB to task2.
> >
> > Brian
> >
> > > xfs_quota -x -c 'limit -p bhard=2m task1' /home/xiameng.xm/xfs_dir
> > > xfs_quota -x -c 'limit -p bhard=10m task2' /home/xiameng.xm/xfs_dir
> > >
> > > here is the output of xfs_quota -x -c 'report /home/xiameng.xm/xfs_dir'
> > >
> > > Project quota on /home/xiameng.xm/xfs_dir (/dev/loop1)
> > >                                Blocks
> > > Project ID       Used       Soft       Hard    Warn/Grace
> > > ---------- --------------------------------------------------
> > > task1               0          0       2048     00 [--------]
> > > task2               0          0      10240     00 [--------]
> > >
> > > the question is no mater how large I create a file in ./xfs_dir/task1 or
> > > ./xfs_dir/task2, it success!
> > >
> > > the quota limit doesnât work!
> > >
> > > Any help will be appreciated :)
> > >
> > >
> > > ps: I also post my question here:
> > >
> > http://unix.stackexchange.com/questions/224606/xfs-directory-quota-doesnt-work
> > >
> > > ----
> > >
> > > Best Regards
> > > Simon Xia
> > > â
> >
> > > _______________________________________________
> > > xfs mailing list
> > > xfs@xxxxxxxxxxx
> > > http://oss.sgi.com/mailman/listinfo/xfs
> >
> >
> 
> 
> -- 
> Best Regards
> 
> Simon Xia

> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs

<Prev in Thread] Current Thread [Next in Thread>