[Dovecot] Using a namespace for providing access to mail snapshots for user based on-demand restoration of email backups
Charles Marcus
CMarcus at Media-Brokers.com
Thu Apr 5 18:28:59 EEST 2012
Hi all,
I'm planning on implementing this in my new upcoming dovecot instance,
and would like to hear thoughts on how best to accomplish this. We will
be paying Timo's support company to do the work, but obviously, the less
work in the form of coding he has to do to get this working (I'm hoping
it won't be a lot), the more money it will save us... ;)
First - I currently use rsnapshot to backup emails, so that is the
use-case I'm most interested in getting working. It is rsync based, and
like other rsync based backup programs it uses hardlinks to save storage
space - so you can have a *lot* of backups (going back months, or even
years), where each snapshot only adds a little more to the total disk
space being used.
The snapshots are stored with the following filesystem layout:
/path/to/snapshotsdir/hourly.0
...
/path/to/snapshotsdir/hourly.4
/path/to/snapshotsdir/daily.0
...
/path/to/snapshotsdir/daily.7
/path/to/snapshotsdir/weekly.0
...
/path/to/snapshotsdir/weekly.4
/path/to/snapshotsdir/monthly.0
...
/path/to/snapshotsdir/monthly.12
/path/to/snapshotsdir/yearly.0
...
/path/to/snapshotsdir/yearly.5
The 'names' (hourly, daily, weekly, monthly, yearly) are arbitrary (this
is a bit confusing to people new to rsnapshot), and would *not* be used
for displaying the mail folders to the users - it is the Date/Time
stamps of each of the snapshot dirs above that would be used to display
the folder names under the 'Time Machine' namespace. This is, I imagine,
the part that will need some actual coding by Timo to get working -
maybe just some new config variables added to the namespace code for
mapping the date/time stamps of the directories to user friendly folder
names in the namespace.
That said, I'd like to design this and have it coded such that it will
work with almost any type of backup storage that stores snapshots as
date/time stamped directories like this (there must be others, right?).
Also, it goes without saying that this code will be (if Timo is ok with
it) part of the core dovecot code going forward, so anyone else will be
able to benefit from it.
What I'm envisioning is something like this...
1. Define a namespace - for this example we'll call it 'Time Machine'
2. Under this namespace, each user will see their, and *only* their
snapshots
So, each user would see something like this:
My Mail Account
Inbox
Drafts
Templates
Sent
Time Machine (sorted above user created folders if possible)
-4/3/12, 8:00am (first subfolder)
Inbox
Drafts
etc... (all other folders and sub-folders shown here)
+4/3/12, 12:00pm (first subfolder)
etc...
Other User Folders
...
Or even better, I'm thinking some magical code that can group them by
Date, like:
-4/3/12 (first subfolder)
-8:00am (next sub-folder)
Inbox
Drafts
Etc... (all folders and sub-folders shown here)
+12:00pm
+4:00pm
+8:00pm
+4/4/12
etc...
Comments? Suggestions? Flames?
--
Best regards,
Charles
More information about the dovecot
mailing list