Cyrus mail spool entirely on SSD - tiered storage

Rob N ★ robn at fastmail.com
Fri Oct 21 19:25:13 EDT 2016


On Fri, 21 Oct 2016, at 08:46 PM, Vladislav Kurz via Info-cyrus wrote:
> would you be so kind and point to some info (docs, howtos) about cyrus
> tiered storage? All I found is
> http://www.cyrusimap.org/~vanmeeuwen/imap/features/mail-spool-partitions.html
> but that seem to be quite tedious to set up

That doc[1] is describing splitting the mail store by folder. We don't
use that. Instead, we use the "archive partition" feature, which splits
the mail store by message age (and size and flags).

The interesting imapd.conf[2] parameters are: archive_enabled
archive_days archive_maxsize archive_keepflagged archivepartition-name.

And then you'll want to look at the -A flag to cyr_expire[3], which is
the thing that moves "old" stuff from the main partition down to the
archive partition.

The docs suggest this feature is in the currently-unreleased Cyrus 3.0
series. That's probably true, but I can't be sure (FastMail runs the
current dev/master branch, so we're ahead of 3.0). It'll be well worth
the upgrade when the time comes though if you've got large mail stores.
Its a rock-solid feature, I love it.

> How transparent it is for users?

Entirely. The message indexes are still stored in the metadata area like
normal; its only the actual messages that are on the archive partition.
In the worst case loading an older archived message is slightly slower
because the disk is slower but most people probably won't notice anyway.

For reference, FastMail's config is very simple:

defaultpartition: default
partition-default: /mnt/ssd21d1/sloti21d1t01/store92/spool
archivepartition-default: /mnt/i21d1t01/sloti21d1t01/store92/spool-archive
archive_enabled: yes

Our mount naming convention isn't hugely important; the main thing to
note is that ssd21d1 is a SSD partition, while i21d1t01 is on
conventional spindles. The other archive_* options aren't used because
the defaults are sensible (which makes sense; we developed the feature
so they're our defaults!).

And then every day we run cyr_expire -A 7d from cron, and that's it.

Its worth noting that tiered search indexes are possible, but are
managed through a different set of config options. I'm not going to
write about that right now because there's no docs for me to point back
to and search setup is a bit more involved depending on your needs.

What I will do is invoke the Cyrus docs people so they're aware of
the gap in the docs and hopefully we can get a better guide put
together sometime.

Cheers,
Rob N.


Links:

  1. http://cyrusimap.org/imap/concepts/features/mail-spool-partitions.html
  2. http://cyrusimap.org/imap/reference/manpages/configs/imapd.conf.html
  3. http://cyrusimap.org/imap/reference/manpages/systemcommands/cyr_expire.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.andrew.cmu.edu/pipermail/info-cyrus/attachments/20161022/d3a85182/attachment.html>


More information about the Info-cyrus mailing list