Transition from one server to another.

deano-dovecot at areyes.com deano-dovecot at areyes.com
Mon Jul 14 22:32:38 UTC 2014


I've done this a couple of times, and there are a couple of things you 
can do to help make it go smoothly.  I did it not too long ago to move 
to a new single server, and am getting ready to do it again to a fully 
redundant setup (3 nodes for percona clustering, 2 of the nodes as 
dovecot with sync).

* Set your current MX records TTL to the lowest you can, usually 30 
minutes.  This will make it quicker to do the final transition when you 
do.
* Create an A record in DNS for the new server, but no MX records for it 
just yet.
* If you're using SPF, add your new server IP address to the TXT record.

Get your new server up and ready and *tested*.  Verify everything works. 
  Web access to roundcube/squirrelmail/whatever, imaps access from 
thunderbird/outlook/whatever and so on, sending mail from the new 
server.  The works.

Get bi-directional replication going between the two servers.  This 
doesn't have to be dovecot dsync, you can use offlineimap too.  
Whatever, get sync going.  The aim is to be sure that any changes on one 
server are synced to the other one.  Test it - use swaks to create mail 
on the new server, make sure it shows up cleanly on the old (that people 
are still using).

* NOW, add an MX record of higher (lower number) priority pointing to 
the new server.  Remove the MX record for the old server.

Point clients to the new server.  This can be done gradually, as mail 
will be replicated between the two systems.

All new mail should now be going to the new server, while some systems 
with cached DNS will still use the old one.  Any mail they deliver to 
the old server will replicate to the new one.  The cached MX records 
should expire fairly soon (remember the 30 minute TTL you set) but 
sometimes they don't for a while.

Wait a few hours.

* Disable inbound smtp on the old server.

Now any connections coming into the old will fail, and the source 
systems should spool the mail for retry later, delivering to the new 
server.  Clients can still use the old server, and even send mail from 
it.

Wait a day or so and watch the old server.  Pretty quickly you should 
see no more connections coming into it.  "tshark port 25 or port 587" is 
your friend here.

Finally decommission the old server once you have all clients moved over 
to the new server.

If anyone is interested, that redundant setup is part of an automated 
installer I've been working on.  You can set up a 3-node environment on 
cheap VPS', two 2gig ram nodes for the 
dovecot/exim4/roundcube/spamassassin/clamav and a 512meg ram one for the 
3rd Percona cluster DB node (to make a quorum).  Everything replicates 
via encrypted vpn, so you can point to either main node for roundcube or 
imaps.  Works fine in Amazon AWS too, though that's a little pricier 
than the cheap VPS providers.



On 2014-07-14 16:22, Anders Wegge Keller wrote:
> A frind of mine and I are running a dedicated server, that among
> other things host mail for ourselves and friends and families. All in
> all about 15 different domains with 35-40 users. The machine in
> question is old, so we are doing a slow transition from the old server
> to the new one. So far, we've managed to move web hosts
> seamlessly. Due to the technical capabilities at some of the user
> base, it would be nice to get to a setup, where we can move individual
> users imaps from the old server to the new one, as we get the time to
> visit them.
> 
>  I have an idea how such a transition could go:
> 
>  1. Upgrade the old dovecot 1.2.15 to 2.1.whateveritis from debian
>     squeeze backports.
> 
>  2. Set dsync up to replicate mails from the old server to the new
>     server. I know that 2.2 is recommended, but with a limited amount
>     of user, I'm willing to take a performance hit.
> 
>  3. Migrate my parents &c to use the new server.
> 
>  4. When all users have been moved on to using the new server, upgrade
>     MX records for the domain to point at the new server.
> 
>  5. When all MX records are updated, decalre success.
> 
> 
>  Is this feasible, and what would the risks be. For instance, during
> step 4, mails are bound to arrive at bothe the old and new server for
> some time. Will this cause problems?
> 
>  Is there a simpler solution to the problem?


More information about the dovecot mailing list