Two items I forgot to mention in my initial post:

(A) I am running the sync command on the new v2.3 server.

(B) To get sync to work, I had to add the following to the old v2.2 server:


auth_socket_path = /var/run/dovecot/auth-master


I think this relates to what I said in my initial post about AWS linux installing all of the sockets into a non-standard location.

I say this because when I was trying get this working but before I had added the above setting, I noticed the following message:


Error: userdb lookup: connect(/usr/local/var/run/dovecot/auth-userdb) failed: No such file or directory


This seemed to indicate that the old server was looking for the auth socket in the incorrect location.  So, I decided to correct this with the setting I noted above.

Please let me know if I had this correct or perhaps there is something else going on here…

Thanks...



Begin forwarded message:

From: Antonio Leding <tech@leding.net>
Subject: Dsync mail migration from v2.2 --> v2.3
Date: July 13, 2020 at 8:45:18 PM PDT

Hello all,

I’ve been battling how to migrate my imap mail following a new server install that has Dovecot and Postfix upgrades.

The research seems pretty clear that the preferred method is to use dsync to get the mail from Server-A to B.  After several hours and several different combos, I think I might finally have this working.  However, before committing to my procedure and running it against all mailboxes, I wanted to bounce this off of the community and get any feedback that might catch possible issues and\or offer some advice.

Environment

  • Old server: Dovecot 2.2.2 running on AWS linux 1 (I believe that is based on RHEL 4 or 5).
  • New server: Dovecot 2.3.10.1 running on CentOS 7.6.
  • All authentication is done by Dovecot against a mySQL (and Maria) database — nothing is in files.
  • All mail data and mailboxes are owned by a dedicated user “vmail” and I’m using a static userdb.
  • SSH is via public key file only — no PW based SSH is allowed.
  • SSH is on a non-standard port

Operations

  • I’ve decided to migrate one mailbox per command.  I only have about 30 accounts on the server so this shoudn't be a huge deal.
  • Here is the command that I believe is good to go:

sudo doveadm -Dv sync -u [ MBOX_TO_MIGRATE ] remote:vmail@[ SERVER ]

  • The SERVER references a host stanza in root's SSH connection file: /root/.ssh/config
  • I need to use the config file because I (a) use a non-standard SSH port; (b) need to login as “vmail” ; (c) need to use the “vmail" identity file.

Comments & notes

  • The Dovecot 2.2 package for AWS Linux was apparently setup to install all of the sockets in /usr/local/var/run/dovecot.  This must have caused authentication issues because to get it working properly, I then had to add "path = /var/run/dovecot/auth-master” statement to the “auth" stanza in dovecot.conf file.
  • Also, the fact that I do not use a “standard” SSH config was an issue early on but once I committed to allowing vmail to SSH into the old server, that part became moot.  For security purposes, I will probably disable vmail SSH after the data is migrated.

Questions

  • First and foremost — any obvious issues here?
  • Next, any advice and\or lessons learned with this type of migration?
  • Finally, presuming this is the proper way to do this, will this migrate all mail content including Sent, Deleted, Drafts, etc.?


Thanks in advance for taking the time and providing any feedback — very much appreciated...