Move of mailboxes
simon at leaky.org
Thu May 5 05:28:04 EDT 2011
On 5 May 2011, at 09:15, Frank Elsner wrote:
> we have 2 backends in a murder environment (running cyrus 2.3.11) which works.
> And now for the problem:
> We want to replace both backends by new hardware. Therefore the mailboxes
> from both must be moved to the replacement machines.
> Is there a recommended procedure to do the move? Any pointers (even to pitfalls) are welcome.
You should upgrade Cyrus on the new machines because there's a quota bug < 2.3.14 (I think) where the quota on the new machine counts expunged messages or something similar so you end up needing to run quota -f to fix it.
For a live migration, where downtime per mailbox is minimal - add the new hardware into the murder as machines 3 and 4. Use XFER to move the mailboxes to the new machines. XFER from 2.3.12 to 2.4.8 worked fine here. The problem with this method is you have to issue an XFER command for each mailbox separately - fine if you have a separate database with mailboxes in it, but not so helpful if you only have the cyradm "listmailbox" output. Advantages are that you can transfer a test mailbox over first to check that the new server works ok (authentication etc) and you can do the migration over the course of a few days rather than having to do them all at once.
If you can afford to take the servers offline for a few hours to half a day or more depending on spool size, you can simply copy the data over. This has the advantage that you can name the new server exactly the same as the old server. Stop cyrus (and exim/sendmail/postfix) on both old and new servers, use rsync to copy the spool and conf directories over to the new servers and then start Cyrus. Pitfalls here include things like mismatched BDB versions (convert mailboxes.db and others to skiplist format first). I've successfully migrated 2.2.x (CentOS4) to 2.4.8 using this method.
simon at leaky.org
More information about the Info-cyrus