Mail Spool Partitions

A mail spool is divided in partitions. The partition Cyrus IMAP ships with by default is called default.

Partitions can give you the opportunity to tier your storage, and/or use multiple filesystems to apply restrictions to information (contained within mailboxes), such as the absolute maximum quantity of storage used.

Storage Tiering with Partitions

As an example, one could imagine a set of disks configured as follows:

  • Some small but fast (expensive) disks for the main storage array,
  • Some large but slow (cheap) disks for archives.

Note

This particular example is more efficaciously achieved via the new (post 3.0) Archiving feature.

Mounting a filesystem on the fast disks under /var/spool/cyrus/fast/, and mounting a filesystem on the slow disks under /var/spool/cyrus/slow/, you could configure the following in imapd.conf(5):

defaultpartition: fast
partition-fast: /var/spool/cyrus/fast/
partition-slow: /var/spool/cyrus/slow/

Next, you could set the quota on user/john@example.org to a measly 1 gigabyte:

$ cyradm -u localhost
verify error:num=18:self signed certificate
IMAP Password:
localhost> sq user/john@example.org 1048576

You could then also give John a mailbox Archive for him to clean up his Personal Namespace without loosing access to his existing mail:

$ cyradm -u localhost
verify error:num=18:self signed certificate
IMAP Password:
localhost> cm user/john/Archive@example.org slow
localhost> sq user/john/Archive@example.org none

John now has unlimited storage in his Archive folder on the cheap slow disks, while his day-to-day email is on the expensive fast disks.

Restricting Storage Used with Partitions

Important

It is not recommended to use partitions for the purposes of restricting the amount of storage used by (sets of) mailboxes, unless you can also grow the filesystem (preferably online) and you have (automated) means to determine what is to end up on each partition.

If a customer example.org purchases 5 GB of storage, and example.com purchases 500 GB of storage, then two partitions sized 5 GB and 500 GB respectively could be used to restrict the users of each customers without individually restricting each user (to a percentage of the total storage).

Warning

Monitoring the storage used is critical, because actually running out of disk space is very costly – and not a problem the customer themselves could recover from.

Back to Features