Filesystem quota
================

Index files
-----------

It's a good idea to keep index files in a partition where there are no
filesystem quota limits. The index files exist to speed up mailbox operations,
so Dovecot runs more slowly if it can't keep them updated. You can specify the
index file location by appending ':INDEX=/somewhere' to <mail_location>
[MailLocation.txt].

Since v1.0.rc27 Dovecot can handle "out of disk space" errors in index file
handling and transparently move to in-memory indexes. It'll use the in-memory
indexes until the mailbox is re-opened. Earlier versions will break more or
less badly.

mbox
----

It's a good idea to have 'mbox_lazy_writes=yes' (default), otherwise Dovecot
might give "Not enough disk space" errors when opening the mailbox, making it
impossible to expunge any mails.

If user has run out of quota and index files are also in memory (because
they're also over quota), it's possible that message flag changes are lost.
This should be pretty rare though because Dovecot keeps some extra space
allocated inside the mbox file for flag changes.

Example preferred configuration:

---%<-------------------------------------------------------------------------
mail_location = mbox:~/mail:INBOX=/var/mail/%u:INDEX=/var/no-quotas/index/%u
---%<-------------------------------------------------------------------------

Maildir
-------

Maildir needs to be able to add UIDs of new messages to 'dovecot-uidlist' file.
If it can't do this, it can give an error when opening the mailbox, making it
impossible to expunge any mails.

Currently the only way to avoid this is to use a separate partition for the
uidlist files where there are no filesystem quota limits. You can do this by
appending ':CONTROL=/somewhere' to <mail_location> [MailLocation.txt].

Example preferred configuration:

---%<-------------------------------------------------------------------------
mail_location =
maildir:~/Maildir:INDEX=/var/no-quotas/index/%u:CONTROL=/var/no-quotas/control/%u
---%<-------------------------------------------------------------------------

Quota reporting
---------------

Dovecot supports filesystem quota reporting using a quota plugin. This may
still be buggy in some operating systems, so do not rely on it before you have
tried it. Example configuration:

---%<-------------------------------------------------------------------------
protocol imap {
  mail_plugins = quota imap_quota
}

plugin {
  quota = fs
}
---%<-------------------------------------------------------------------------

(This file was created from the wiki on 2007-04-13 14:32)
