Will Murnane
2009-Jan-28 17:49 UTC
[zfs-discuss] ZFS+NFS+refquota: full filesystems still return EDQUOT for unlink()
We have been using ZFS for user home directories for a good while now. When we discovered the problem with full filesystems not allowing deletes over NFS, we became very anxious to fix this; our users fill their quotas on a fairly regular basis, so it''s important that they have a simple recourse to fix this (e.g., rm). I played around with this on my OpenSolaris box at home, read around on mailing lists, and concluded that the ''refquota'' property would solve this. With some trepidation, we decided at work that we would ignore the problem and wait for 10u6, at which point we would put the value of the quota property in the refquota property, and set quota=none. We did this a week or so ago, and we''re still having the problem. Here''s an example: (on the client workstation) willm1 at chasca:~$ dd if=/dev/urandom of=bigfile dd: closing output file `bigfile'': Disk quota exceeded willm1 at chasca:~$ rm bigfile rm: cannot remove `bigfile'': Disk quota exceeded willm1 at chasca:~$ strace rm bigfile execve("/bin/rm", ["rm", "bigfile"], [/* 57 vars */]) = 0 (...) access("bigfile", W_OK) = 0 unlink("bigfile") = -1 EDQUOT (Disk quota exceeded) (on the NFS server) willm1 at c64:~$ rm bigfile (no error) This is a big problem. We don''t want to allow (or force) users to log in to the NFS server to delete files. Why is the behavior different over NFSv3/4 (I tried both, same problem both times) versus locally? In case it matters, here are the properties of the filesystem above: # zfs get all home1/willm1 NAME PROPERTY VALUE SOURCE home1/willm1 type filesystem - home1/willm1 creation Mon Jun 2 14:37 2008 - home1/willm1 used 3.47G - home1/willm1 available 136M - home1/willm1 referenced 3.47G - home1/willm1 compressratio 1.00x - home1/willm1 mounted yes - home1/willm1 quota none default home1/willm1 reservation none default home1/willm1 recordsize 128K default home1/willm1 mountpoint /export/home1/willm1 inherited from home1 home1/willm1 sharenfs rw=cmscnet inherited from home1 home1/willm1 checksum on default home1/willm1 compression off default home1/willm1 atime on default home1/willm1 devices on default home1/willm1 exec on default home1/willm1 setuid on default home1/willm1 readonly off default home1/willm1 zoned off default home1/willm1 snapdir hidden default home1/willm1 aclmode groupmask default home1/willm1 aclinherit restricted default home1/willm1 canmount on default home1/willm1 shareiscsi off default home1/willm1 xattr on default home1/willm1 copies 1 default home1/willm1 version 1 - home1/willm1 utf8only off - home1/willm1 normalization none - home1/willm1 casesensitivity sensitive - home1/willm1 vscan off default home1/willm1 nbmand off default home1/willm1 sharesmb off default home1/willm1 refquota 3.60G local home1/willm1 refreservation none default Any suggestions are welcome. If we can''t resolve this we''ll have to investigate other options for our home directories; going without quotas is unacceptable for administrative reasons, and other options don''t have this problem. Thanks, Will
Chris Kirby
2009-Jan-29 00:04 UTC
[zfs-discuss] ZFS+NFS+refquota: full filesystems still return EDQUOT for unlink()
On Jan 28, 2009, at 11:49 AM, Will Murnane wrote:> > (on the client workstation) > willm1 at chasca:~$ dd if=/dev/urandom of=bigfile > dd: closing output file `bigfile'': Disk quota exceeded > willm1 at chasca:~$ rm bigfile > rm: cannot remove `bigfile'': Disk quota exceededWill, I filed a CR on this (6798878), fix on the way for OpenSolaris. Can you continue using regular quotas (instead of refquotas)? Those don''t suffer from the same issue, although of course you''ll lose the refquota functionality. -Chris
Will Murnane
2009-Jan-29 02:25 UTC
[zfs-discuss] ZFS+NFS+refquota: full filesystems still return EDQUOT for unlink()
On Wed, Jan 28, 2009 at 19:04, Chris Kirby <chris.kirby at sun.com> wrote:> On Jan 28, 2009, at 11:49 AM, Will Murnane wrote: > >> >> (on the client workstation) >> willm1 at chasca:~$ dd if=/dev/urandom of=bigfile >> dd: closing output file `bigfile'': Disk quota exceeded >> willm1 at chasca:~$ rm bigfile >> rm: cannot remove `bigfile'': Disk quota exceeded > > Will, > > I filed a CR on this (6798878), fix on the way for OpenSolaris. > Can you continue using regular quotas (instead of refquotas)? Those > don''t suffer from the same issueWeird, you''re right. I was under the impression that quotas suffered the same issue, and refquota was the *fix* to this issue (c.f. [1]). Well, live and learn; I''ll switch them back. Thanks for the quick fix. I didn''t see anything about this in the 10u6 release notes [2]; where could I have found the notification that quotas were behaving nicely WRT unlink()?> although of course you''ll lose the > refquota functionality.That''s okay, at least for the time being. I''ll track the CR for further details. Will [1]: https://kerneltrap.org/mailarchive/freebsd-bugs/2008/3/11/1134694 [2]: http://docs.sun.com/app/docs/doc/817-0547/ghgdx