Recommend how to move 31GB of mail to a new server
robm at fastmail.fm
Sun Jun 24 20:40:12 EDT 2007
> Would it be possible to use replication for this?
> Set up a replica of the first server, copy while both servers online.
> Then take first server offline and change IPs/servernames/whatever.
Yes, it's definitely possible, but potentially quite a bit of work.
We actually have some modules that use replication to allow you to move one
user at a time between arbitrary servers. Basically it:
1. Creates a new temporary cyrus config dir with db,quota,sieve,user
2. Generates on the fly a new imapd.conf file with the appropriate sync_*
3. Creates a new mailboxes.db with just the user directories (it hacks the
partition to be the same as the destination one wanted, but makes the dirs
in the temp imapd.conf for that partition point to the old place)
4. symlinks the users seen,sub,quota,sieve files to the new tmp config dir
5. Runs a sync_client -u to copy the user
This basically allow arbitary moving of any single user from any server to
any other server on any partition.
The nice thing is this can happily run while the user is logged in and doing
stuff. Once it's run once, we then disable logins and email deliveries for
the user and disconnect them from any imap/pop session, run the sync again
(generally very quick), update the db with which server they're on, then
re-enable them again. It's quite neat.
Unfortunately the code isn't really a releaseable state, there's too many FM
only assumptions and details in it.
More information about the Info-cyrus