[Dovecot] Maildir configuration vs ZFS and snapshots...
Peter Eriksson
peter at ifm.liu.se
Wed Jul 4 13:21:45 EEST 2007
>> namespace private {
>> separator = /
>> prefix = snapshot/
>> location =
>> maildir:~/.zfs/snapshot/2007-06-18/Maildir:CONTROL=~/.dovecot/control:INDEX=~/.dovecot/index
>>
>> }
>>
...
> We are switching from the UW IMAP server with local disks to Dovecot
> using a NetApp filer. The filer provides snapshots too, although with a
> slightly different layout as the ".snapshot" directory appears in each
> and every directory with its files and folders. For example:
>
> ~/Maildir/.snapshot/nightly.0/...
> ~/Maildir/.snapshot/nightly.1/...
> ~/Maildir/.snapshot/nightly.2/...
> etc
>
> where the ".0" suffixed directory is the most recent etc.
Uh.. I'n your case I think it would be quite easy. I think this should work:
namespace private {
separator = /
prefix = snapshot-0/
location =
maildir:~/Maildir/.snapshot/nightly.0:CONTROL=~/.dovecot/control:INDEX=~/.dovecot/index
}
namespace private {
separator = /
prefix = snapshot-1/
location =
maildir:~/Maildir/.snapshot/nightly.1:CONTROL=~/.dovecot/control:INDEX=~/.dovecot/index
}
etc... You won't see the INBOX either (like me) unless you create the
symlink suggested (.INBOX -> .) before taking the snapshots.
I think I tried setting up hierarchical namespaces but it didn't work
(I would have liked to see snapshot/0, snapshot/1 etc).
> In your example your snapshots seem to be in directories named after a
> specific date (when the snapshot was taken?). I was wondering if you
> had some clever way of providing access to these; in your example above
> you hard-code the names into the Dovecot configuration file, which
> doesn't seem practical for a live system?
In ZFS you can name your snapshots anything you like, it's just a tag
that you select when you create it like this:
zfs snapshot -r andromeda/mail at 2007-07-04
(-r = take snapshot of all the subfilesystems too. Each user has their
own filesystem here).
In a real live situation I'd probably name them "yesterday" "last-week"
or something more suitable for the hardcoding in the dovecot.conf file.
Our I'd look at creating some kind of dynamic internal namespaces
(requires hacking of Dovecot :-).
I'd really like to be able to present all the available snapshots over
IMAP if possible. However, I'm a bit worried though that the mail client
will walk thru all the mailboxes in all the snapshots when accessing the
server though...
>
> Basically I'm trying to mimic your setup and was wondering if you had
> already solved the problem of getting down from your "snapshot"
> directory through the intermediate level to the Maildir itself.
>
> In passing, would I need to use a separate CONTROL and INDEX storage
> area for these, or will the files for the snapshot folders live happily
> alongside those for the live area? (I'm not too sure how the
> organisation of these storage areas works when namespaces and prefixes
> are concerned!)
You need to point the CONTROL and INDEX storage things outside of the
readonly snapshots or Dovecot will complain when it wants to update the
indexes...
- Peter
More information about the dovecot
mailing list