Advice needed: Migration Dovecot to Kolab Cyrus.

Scott Lambert lambert at lambertfam.org
Wed Mar 20 18:11:28 CET 2013


On Wed, Mar 20, 2013 at 12:30:11PM +0100, JP Horst wrote:
> I migrated to kolab3 on CentOS using imapsync.
> 
> imapsync --ssl1 --useuid --authmech1 PLAIN --ssl2 --authmech2 PLAIN --host1 
> 10.76.25.x --user1 x at y.de --passfile1 /root/migrate/pass_x --host2 10.76.25.y 
> --user2 xy --passfile2 /root/migrate/pass_xy
> 
> Unfortunately imapsync with kolab3 is extremely slow. With kolab 2 I 
> remembered it much faster. A big mailbox with 10 GB can take a day or more to 
> sync. (Message rate: 0.2 messages/s, Average bandwidth rate: 70.0 KiB/s)
> 
> I applied 3 steps:
> 
> 1. dryrun to see if all subfolders get synchronized. Due to errors I had users 
> to rename some folders
> 
> 2. Initial sync during productive use, which took several days.
> 
> 3. Final sync during swichting without productive use in the background. Since 
> the bulk of the mails is already transferred this third step will be quicker 
> and downtime shorter.
> 
> As a consequence there might be some mails doubled, but that should not be a 
> big problem.

There should not be any duplicates if the final sync is run with
the --delete2 and --expunge2 options enabled.

When I migrated from imap-uw to cyrus-imapd, I ran multiple syncs
prior to stopping the MTAs and blocking IMAP/POP3 access.  The first
sync takes so long that a lot changes happen to the imap spool while
it is running.  I actually just ran the process over and over, one
after another for a couple of weeks while I was verifying that what
was on the cyrus server was correct.

while true; do time run_imapsync.sh > imapsync.log; done;

This is what I used for each mailbox when migrating from imap-uw
to cyrus-imapd, assuming the username is the same on both sides:

------------------------------------------------------------
#DELETE="--delete2 --expunge2"
DELETE=""

/usr/local/bin/imapsync --host1 ${OLD_MAIL_IP} \
        --user1 $IMAPUSER1 --password1 $IMAPPASS1 --authmech1=LOGIN  \
        --host2 ${NEW_MAIL_IP} \
        --user2 $IMAPUSER1 --password2 $IMAPPASS1 --authmech2=LOGIN \
        --prefix1 mail/ \
        --include '^(INBOX|mail/)'  \
        --regextrans2 's#^INBOX/INBOX$#INBOX#' \
        --regextrans2 's#/INBOX\.#/#' \
        --regextrans2 's#/\.#/_#' \
        --regextrans2 's#[()<>!@]#_#g' \
        --regextrans2 's#\*#+#g' \
        --skipsize \
        --subscribe ${DELETE} \
        2>&1 | tee ${LOGFILES_DIR}/${IMAPUSER1}.log

------------------------------------------------------------

Coming from Dovecot will likely need different --regextrans2 options,
if any.  We migrated four servers to one and every server needed
different options to get a good end result.

The first serveral runs were with --justfolders so that we could
figure out which regextrans2 manipulations were needed before
starting to move e-mail.

We only had around 20G of imap data, 3700 user accounts.  It was
about three years ago.  I don't remember exactly how long the runs
were taking.  I think it was down to about 20 minutes per pass, at
night, after the first few runs, 2 - 4 hours during the local
business day.  The first run without --justfolders took a *long*
time.

I enabled delete after a week of testing.  The new server's imap
spool was growing quickly.  :-) We didn't have enough users removing
folders to worry about --delete2folders.

> Am Mittwoch, 20. März 2013, 09:56:32 schrieb Winfried Ritsch:
> >  I used imapsync from Fedora free source: https://fedorahosted.org/imapsync/
> > 
> >  with options:
> >   --tls1 --tls2 --syncinternaldates --delete2  --noexpunge --subscribe
> > 
> >   (no --delete2folders since it would erase default folders of Kolab)
> > 
> > Since mailboxes are quite big, I did a pre-sync during running system. after
> > that during switching (exim mailserver down, firewall blocked imap) I did a
> > new sync:
> >   - some of mails where doubled, folder structure was broken.
> > 
> > on this new imapsync a lot of mails are copied again, which will take more
> > then 8 hours, to long for a mailserver downtime.

It shouldn't be syncing the same e-mails, but there may have been
a lot of changes since the first run began.  Do several runs while
still in production on the exim/dovecot server.  Time the runs. See
if they get shorter.

To me, buying the new version of imapsync was worthwhile.

We are not running Kolab.  I want to see how v3 settles out before
I try to make it work on FreeBSD.

-- 
Scott Lambert                    KC5MLE                       Unix SysAdmin
lambert at lambertfam.org




More information about the users mailing list