Spool Directories ***************** Default Spool location ====================== The main Cyrus IMAP mail data directory structure is the spool, and its location is defined by "partition-name" entries in imapd.conf(5). Additionally, on servers with more than one spool partition, that partition in which new user mailboxes are to be created is specified by the "defaultpartition" directive. "partition-name:" The pathname of the partition *name*. At least one partition pathname MUST be specified. If the **defaultpartition** option is used, then its pathname MUST be specified. For example, if the value of the **defaultpartion** option is **part1**, then the **partition-part1** field is required. "defaultpartition:" The partition name used by default for new mailboxes. If not specified, the partition with the most free space will be used for new mailboxes. Note that the partition specified by this option must also be specified as *partition-name*, where you substitute 'name' for the alphanumeric string you set *defaultpartition* to. Note: There is nothing magical about the name "default" and in fact any name may be used for the default-partition. We'll use the name "main" in this documentation. * Sample: defaultpartition: main partition-main: /var/spool/cyrus Additional Spool locations ========================== Multiple partitions may be used for various reasons, such as to distribute load between different storage pools or technologies. Please consult Mail Spool Partitions for more details and use cases. To define additional mail spools, add more "partition-name" entries to imapd.conf(5) as needed. For example, let's imagine we want to migrate users to new partitions split by first character of the user's last name, and add a partition for shared mailboxes (see Shared Namespaces): * Sample: defaultpartition: main partition-main: /var/spool/cyrus partition-am: /var/spool/cyrus-am partition-nz: /var/spool/cyrus-nz partition-shared: /var/spool/cyrus-shared Metadata Partitions ******************* In addition to the mailbox and message data, Cyrus stores various metadata in the mail spool, such as indexes, annotations, etc. It may be useful in some circumstances to separate this metadata into its own partitions. For each partition to be split in this way, one must define a metadata partition for each data partition, using the same name, so Cyrus knows how to relate them to each other. As well as specifying locations for the metadata, one must also tell Cyrus which metadata files to place in these special partitions. The default behaviour is to locate *all* metadata in the data partition(s). The configuration directives to do so are quite similar to those for data partitions: "metapartition_files:" Space-separated list of metadata files to be stored on a *metapartition* rather than in the mailbox directory on a spool partition. Allowed values: *header*, *index*, *cache*, *expunge*, *squat*, *annotations*, *lock*, *dav*, *archivecache* "metapartition-name:" The pathname of the metadata partition *name*, corresponding to spool partition **partition-name**. For any mailbox residing in a directory on **partition-name**, the metadata files listed in *metapartition_files* will be stored in a corresponding directory on **metapartition-name**. Note that not every **partition-name** option is required to have a corresponding **metapartition-name** option, so that you can selectively choose which spool partitions will have separate metadata partitions. Again, building on our examples above: * Sample: defaultpartition: main partition-main: /var/spool/cyrus partition-am: /var/spool/cyrus-am partition-nz: /var/spool/cyrus-nz partition-shared: /var/spool/cyrus-shared metapartition_files: header index cache expunge squat annotations metapartition-main: /var/spool/cyrusmeta/main metapartition-am: /var/spool/cyrusmeta/am metapartition-nz: /var/spool/cyrusmeta/nz metapartition-shared: /var/spool/cyrusmeta/shared