Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Jun 2008 15:37:33 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Jeremy Chadwick <koitsu@freebsd.org>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: It's 2008.  1 TB disk drives cost $160.  Quotas are 32-bit.
Message-ID:  <20080629123733.GO17123@deviant.kiev.zoral.com.ua>
In-Reply-To: <20080628235832.GA15910@eos.sc1.parodius.com>
References:  <20080628132632.R1807@kozubik.com> <20080628235832.GA15910@eos.sc1.parodius.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--chReQkDOePndSGWY
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sat, Jun 28, 2008 at 04:58:32PM -0700, Jeremy Chadwick wrote:
> On Sat, Jun 28, 2008 at 02:56:03PM -0700, John Kozubik wrote:
> > I needed to set a user quota of greater than 2 TB today.  I failed,
> > because FreeBSD does not have 64-bit quota tools.
> >=20
> > I wasted a fair amount of time trying to track down what I assumed was =
my
> > own user error.  Surely there is _no way_ that an enterprise operating
> > system, in 2008, has 32-bit quotas.
> >=20
> > Now I know better.
> >=20
> > I am upset to find that several of my non-technical friends now have
> > larger filesystems _in their living rooms_ than FreeBSD can handle with
> > quotas.
> >=20
> > Quotas are a long-standing, core piece of filesystem functionality and
> > have been considered a bedrock of unix operating systems for decades.
> > There is nothing new or experimental in moving quotas from 32 to 64 bit.
> >=20
> > This is _as opposed to_ porting ZFS to FreeBSD, and gjournal, and every
> > other shiny bauble that has monopolized freebsd-fs in the last four yea=
rs.
> > Those are new.  Those are experimental.
> >=20
> > Apparently those take priority.
> >=20
> > I don't have time to monitor the core pieces of FreeBSD to make sure _t=
hey
> > still exist_.  Further, while I might have volunteered to help with the
> > code back in 2004, when it took 5 hard drives to max out the usefulness=
 of
> > the filesystem, that's not how I'll be spending my time in 2008.
> >=20
> > So I'll try this instead:
> >=20
> > I will paypal $1000 to whoever can deliver fully clean 64-bit quotas
> > and userland tools in FreeBSD by July 20, 2008.
> >=20
> > That is, if you can tear yourself away from ZFS and whatever sexy SMP
> > improvements you're building into FreeBSD 14.0 for a week.
>=20
> John,
>=20
> We don't use quotas here, but FWIW, I agree with you.  Additionally,
> that 2GB limit should really be 4GB; someone likely used a signed number
> instead of unsigned.
>=20
> I'll take this project on (and there's no need for any monetary
> exchange) if I can make heads or tails of the existing quota
> infrastructure.  No promises, but I'll at least look into it.  I
> definitely can't meet the July 20th deadline, sorry about that.

The change alone of the 32/31-bit fields in the struct dqblk to the
64-bit is a trivial part. I think in-kernel part would simply work
after the conversion, but I have no idea about user-mode utilites. Most
likely, usermode would require some tweaking.

Not so easy is the backward compatibility. Quota file is read/written
directly by the kernel, and have no useful magic sequence to identify
it. Some external measures are needed to inform kernel about the version
of the dqblk on the disk. Then, either code shall be conditionalized to
do the keeping in 32/64 bitness (preferrable), or old dqblk layout shall
be converted from/to on i/o.

Another useful thing to do with in-kernel quota implementation is to
move it from ufs/ to the generic VFS service. Again, the code is mostly
filesystem-neutral, and the change should be in the interfaces. This
would make addition of the quota support for some non-ufs filesystems
nearly trivial.

--chReQkDOePndSGWY
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)

iEYEARECAAYFAkhngg0ACgkQC3+MBN1Mb4jjtgCg4qEHtKjnCZGtTEeFQ+68msnG
GaMAnjpRhKcH3tnI3FuYhXBiDn600uHd
=yliK
-----END PGP SIGNATURE-----

--chReQkDOePndSGWY--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080629123733.GO17123>