This documentation is for Dovecot v2.x, see wiki1 for v1.x documentation.
Differences between revisions 10 and 11
Revision 10 as of 2009-03-15 22:35:07
Size: 3546
Editor: localhost
Comment: converted to 1.6 markup
Revision 11 as of 2010-06-15 17:12:31
Size: 3280
Editor: TimoSirainen
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

Filesystem quota supports both local filesystems and rquota (NFS).
Line 7: Line 9:
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. 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.
Line 35: Line 37:
== Quota reporting ==

Dovecot supports filesystem quota reporting using a quota plugin. New features in Dovecot v1.1 include:

 * RPC quota (for NFS) support.
 * Inode quota is reported as message count quota for [[MailboxFormat/Maildir|Maildir]] and [[MailboxFormat/Cydir|Cydir]] formats.
 * Group quota is supported. It's used if user quota doesn't exist, or if quota parameters contains "group".
Line 45: Line 39:
All of these require v1.1+: By default only user quota is shown, or if it doesn't exist, group quota is used as fallback.
Line 49: Line 43:
 * inode_per_mail: Report inode quota as "number of message" quota.  * inode_per_mail: Report inode quota as "number of message" quota. This can be useful with Maildir or single-dbox.
Line 58: Line 52:
mail_plugins = $mail_plugins quota
Line 59: Line 54:
  mail_plugins = quota imap_quota   mail_plugins = mail_plugins imap_quota
Line 67: Line 62:
If you want to see both user and group quotas as separate quota roots, you can use this with v1.1: If you want to see both user and group quotas as separate quota roots, you can use this:
Line 76: Line 71:
If you have your mails in two filesystems, you can create two quota roots with v1.1: If you have your mails in two filesystems, you can create two quota roots:

Filesystem quota

Filesystem quota supports both local filesystems and rquota (NFS).

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.

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.

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.

Example preferred configuration:

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

Note that if you change the location of the control files, Dovecot will look in the new CONTROL directory (/var/no-quotas/control/%u) for the subscriptions file.

Parameters

By default only user quota is shown, or if it doesn't exist, group quota is used as fallback.

  • user: Report only user quotas, don't fallback to showing group quotas.
  • group: Report only group quotas
  • inode_per_mail: Report inode quota as "number of message" quota. This can be useful with Maildir or single-dbox.
  • noenforcing: Don't try to enforce quotas by calculating if saving would get user over quota. Only handle write failures.
  • mount=<path>: Report quota from given path. Default is to use the path for the mail root directory.

If you want to give multiple parameters, separate them with ':' (e.g. "inode_per_mail:noenforcing").

Examples

mail_plugins = $mail_plugins quota
protocol imap {
  mail_plugins = mail_plugins imap_quota
}

plugin {
  quota = fs:user
}

If you want to see both user and group quotas as separate quota roots, you can use this:

plugin {
  quota = fs:User quota:user
  quota2 = fs:Group quota:group
}

If you have your mails in two filesystems, you can create two quota roots:

plugin {
  # Assuming INBOX in /var/mail/ which is mounted to /
  quota = fs:INBOX:mount=/
  # Assuming other mailboxes are in /home mount
  quota2 = fs:Others:mount=/home
}

None: Quota/FS (last edited 2021-07-07 23:36:47 by MichaelSlusarz)