Linux – Best practices to migrate IMAP mailboxes of thousands users using imapsync tool

cyrusexchange-2013imapimapsynclinux

I'm going to migrate IMAP mailboxes from Exchange 2013 to Cyrus with over 10k users. I plan to use imapsync as the tool for this.

[root@centos65]# imapsync --version
1.644

I'm testing with 5 users and total 134 mails ( most are plaintext + one 9MB attachment ).

First, I tried with below command:

while read user pwd1 pwd2
do
    /usr/bin/imapsync \
    --host1 exchange_svr \
    --password1 "$pwd1" --user1 $user@domain \
    --authmech1 "PLAIN" \
    --host2 cyrus_svr --user2  $user@domain \
    --ssl1 --subscribeall \
    --authmech2 "PLAIN" \
    --password2 "$pwd2"
done < input

Finish time is 1min 57sec.

Using some options in hope to speed up:

  ...
  /usr/bin/imapsync \
--nofoldersizes --nofoldersizesatend --buffersize 49152000 --usecache --idatefromheader \ ## <-- add these options
--host1 exchange_svr \
  ...

Finish time is 1min 49sec, not much faster.

My input file:

user1@example.com   pwd1   pwd2
user2@example.com   pwd1   pwd2
user3@example.com   pwd1   pwd2
user4@example.com   pwd1   pwd2
user5@example.com   pwd1   pwd2

I've tested running multiple scripts, by which each script will deal with some folders (using --exclude or --include) but not really faster ( in fact it took over 2mins ).

Do you guys have any best practices to work with this tool with such many users/mailboxes? Any suggestion for me to make it better?

Best Answer

There is a FAQ about massive migration in the imapsync documentation: http://imapsync.lamiral.info/FAQ.d/FAQ.Massive.txt

Q. I have to migrate 500k users using 400 TB of disk space. How do I proceed?

Q. How to determine what is the bottleneck in my current imapsync process?

Related Topic