linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arne Jansen <sensille@gmx.net>
To: Andrey Kuzmin <andrey.v.kuzmin@gmail.com>
Cc: Hugo Mills <hugo@carfax.org.uk>,
	linux-btrfs <linux-btrfs@vger.kernel.org>,
	Chris Mason <chris.mason@oracle.com>,
	hch@infradead.org, ricwheeler@gmail.com
Subject: Re: Quota Implementation
Date: Sat, 04 Jun 2011 08:36:22 +0200	[thread overview]
Message-ID: <4DE9D266.7000403@gmx.net> (raw)
In-Reply-To: <BANLkTikaEpiDucHfTALmh=Ndsf-j=dwSJA@mail.gmail.com>

On 03.06.2011 22:44, Andrey Kuzmin wrote:
> On Fri, Jun 3, 2011 at 8:47 PM, Hugo Mills<hugo@carfax.org.uk>  wrote:
>> On Fri, Jun 03, 2011 at 06:24:41PM +0200, Arne Jansen wrote:
>>> Hi,
>>>
>>> If no one is already working on it, I'd like to take the Quota lock and
>>> see how far I come.
>>> Let me sketch out in short what I'm planning to do:
>>>
>>>   - Quota will be subvolume based. Only the FS-trees and data extents
>>>     will be accounted.
>>>   - Quota Groups can be defined. Every quota group can comprise any
>>>     number of subvolumes. A subvolume can be assigned to any number
>>>     of quota groups.
>>>   - A Quota Group can account/limit the total amount of space that is
>>>     referenced by it and/or the amount of space that is exclusively
>>>     referenced (i.e. referenced by no other quota group).
>>>   - With this it is possible to define a hierarchical quota that need
>>>     not necessarily reflect the filesystem hierarchy.
>>>   - It is also possible to decide for each snapshot if it should be
>>>     accounted into the parent group. So in a scenario where each
>>>     subvolume reflect a user home, it's possible to have some snapshots
>>>     accounted to the user and others not (e.g. the ones needed for system
>>>     backups).
>>>   - Quota information will be stored in new records, possibly in a
>>>     separate tree.
>>>   - It should be possible to change the Quota config and group
>>>     assignments online, though this might need a full re-scan of the fs.
>>>   - It does NOT include any kind of user/group (UID/GID) quota.
>>>
>>> Any addenda or arguments why it's impossible or insane welcome.
>>
>>    There's a problem in that in some cases, it's possible to get into
>> a situation where you can't *delete* files because you're going over
>> quota. If I have two subvolumes that share most of their data
>> (e.g. one is a snapshot of the other), and both subvolumes have a
>> limit under the "exclusive use" clause, then deleting material from
>> subvolume A could cause subvolume B to go over quota.
>>
>>    If users can create their own subvolumes, then using the "exclusive
>> use" form is also pointless, because as a user, I can simply snapshot
>> (or otherwise CoW copy) all my data into a snapshot, and I then don't
>> pay for it. That one probably comes under the "admin shot himself in
>> the foot", though.
>>
>>    Getting out the bike-shed brush, I might suggest the use of some
>> name other than "quota", because inevitably people will think of
>> UID/GID-type quotas, and we've got enough confusingly-modified
>> terminology already. "Size bounds", "storage bounds", possibly?
>
> Budget :)?

I wouldn't bother trying to coin a new term. Quota is already widely
in use for non-UID style quotas. ZFS has Filesystem Quotas, NetApp has
Tree Quotas (well, originally Quota Trees). So with calling them
Subvolume Quotas or Subvol Quotas I feel comfortable. This is distinct
enough from "User Quota".

-Arne

>
> Regards,
> Andrey
>
>>
>>    Hugo.
>>
>> --
>> === Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk ===
>>   PGP key: 515C238D from wwwkeys.eu.pgp.net or http://www.carfax.org.uk
>>          --- Is it true that "last known good" on Windows XP ---
>>                             boots into CP/M?
>>
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.10 (GNU/Linux)
>>
>> iD8DBQFN6RAiIKyzvlFcI40RAkkQAKCAulO65dL1F/vaO7W20qJEAKuonwCghfvH
>> XlliA+eCfmLmP/G0quVALe0=
>> =m513
>> -----END PGP SIGNATURE-----
>>
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


  reply	other threads:[~2011-06-04  6:36 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-03 16:24 Quota Implementation Arne Jansen
2011-06-03 16:47 ` Hugo Mills
2011-06-03 20:44   ` Andrey Kuzmin
2011-06-04  6:36     ` Arne Jansen [this message]
2011-06-04  8:04   ` Arne Jansen
2011-06-03 21:18 ` Johannes Hirte
2011-06-04  6:25   ` Arne Jansen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DE9D266.7000403@gmx.net \
    --to=sensille@gmx.net \
    --cc=andrey.v.kuzmin@gmail.com \
    --cc=chris.mason@oracle.com \
    --cc=hch@infradead.org \
    --cc=hugo@carfax.org.uk \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=ricwheeler@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).