Does domain quota work and how?
Kai Schaetzl
maillists at conactive.com
Thu Aug 16 20:51:16 EEST 2018
Hello,
I'm in the process of moving users from an old dovecot setup with system
users to a modern virtual user setup.
I can't find good documentation on domain quota.
It is mentioned in the docs as
quota2 = dict:domain:%d:proxy::quota_domain
but not much more.
Searching the mailing list or Google doesn't reveal much more info.
Searching the German mailing list at jpberlin finds mostly information
where they say that it doesn't work.
So, does it or does it not?
And if it works, does it work like I'm used to?
e.g. with system users and aquota the filesystem quota kicks in whenever
either the user or the domain quota is reached. That makes sense. It
prohibits that single users can "fill" the whole domain (group) quota.
I found one particular example where they say the dict quota works
different, e.g. it's an either/or. They give this example for the
user_query (the relevant part):
CONCAT('*:bytes=', \
IF(mailbox.quota = 0, domain.maxquota*1024000, mailbox.quota)) \
as quota_rule
So, this works as a default domain quota that is overridden on a user by
user basis. But this means that a user quota that is set cannot honor the
domain quota. So, in theory all users together can reach a maximum quota
that is way over the domain quota. Not desirable.
Concluding from the example in 90-quota.conf I want to set up this
user_query (relevant part):
concat('*:bytes=', m.quota) AS quota_rule, concat('*:bytes=',
(s.quota*1024*1024)) AS quota2_rule
(with m and s being the two tables for user and domain quota and s holding
the domain quota in MB)
Does this work together with this quota plugin setup and would provide
both a user and domain quota?
quota = dict:user::proxy::quota
quota2 = dict:domain:%d:proxy::quota_domain
quota_rule = *:storage=100M # default
quota2_rule = *:storage=1000M # default
I would like to know if this is supposed to work (and how) before I start
testing in vain.
One thing that I can confirm from several statements on the mailing lists
is that the recalc option of doveadm doesn't work correctly. A
doveadm quota recalc -A
sets the used domain quota to the user used quota that it handles last for
the domain (and a recalc -u sets the whole domain used quota to the one of
that user). Which sets the domain quota completely wrong. I tried
iterating thru the various users but got the same result as with -A. So,
this is clearly broken, at least from my point of view.
I'm using dovecot 2.3 from this repo:
deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/xenial xenial main
I installed it because of the native blowfish encryption support. So far,
it seems to be running great. Except for this particular aspect.
Thanks!
Kai
More information about the dovecot
mailing list