| From | Stefan Schmidt <jsj at jsj dot dyndns dot org> |
| Subject | Exchange 2k7 success story |
| Date | Tue, 2 Feb 2010 11:07:53 +0100 |
Hello Gilles,
On Tuesday 02 February 2010 00:44:03 Gilles LAMIRAL wrote:
> > Despite of what Gilles said, I was quite successful with a move
> > from Cyrus to Exchange 2k7 about a year ago.
>
> Good news! You're the first admin telling me a success story
> about imapsync and Exchange 2007. Do you have the numbers
> or any piece of information like service pack 1 or service pack 42?
Uhm, OK ;-)
Our Exchange admin tells me, we had Exchange 2007 SP1, most probably
with Update Rollup 2 installed at that time - about a year ago, between
February and March 2009.
I used 1.278 at that time.
I already described our move in my mail from Aug 5th, 2009,
<200908050952 dot 05139 dot jsj at jsj dot dyndns dot org>.
Again, here is the text:
====
FWIW, I migrated from cyrus to Exchange using the following command
line:
/root/bin/imapsync.1_278 \
--host1 $CYRUSSERVER --user1 $CYRUSUSER \
--authuser1 cyrusadmin --password1 PWCHANGED \
--host2 $EXCHANGESERVER --user2 $EXCHANGEUSER \
--authuser2 exchangemigration --password2 PWCHANGED \
--useheader 'Message-Id' --useheader 'Message-ID' \
--useheader 'Received' \
--nofoldersizes \
--skipsize \
--regexflag 's/(\A[^\\]\w+\s)|(\s[^\\]\w+)//g' \
--regexflag 's/(\$No.Junk)//g' \
--regexflag 's/(No.Junk)//g' \
--regexflag 's/(Seen-handled)/Seen/g' \
--regexflag 's/(Junk)//g' \
--regexflag 's/(\$)//g' \
--regexmess 's/^Message-Id/Message-ID/i' \
--regextrans2 's/.Drafts{,1}$/Drafts/' \
--regextrans2 's/^INBOX$//' \
--regextrans2 's/(.{1,})/\/$1/' \
--regextrans2 's/(.*)/INBOX$1/' \
--regextrans2 's/\.Draft[s]{0,1}$/Drafts/' \
--regextrans2 's/.*\/Drafts/Drafts/' \
--regextrans2 's/.*\/.Sent/Sent\ Items/' \
--exclude '.Trash$' \
--fastio1 --fastio2
So I had a big deal with removing flags Exchange does want to know about
and moving folders to places where an Exchange user expects her/his
mails.
I looped it for 2 weeks in 4 threads over all users with a final run
after the deliver switch.
I do not recall any issues with deleted mails, except omitting the
.Trash folder from squirrelmail or TB.
There were warnings and sometimes not transferred mail boxes due to
other flags I did not cover here, but that affected only about 10 out of
approx 2000 mailboxes.
As written in an other thread here, if there were messages not
transferred due to "Keywords are not supported", these messages were
successfully transferred during the next loop.
====
Exchange seem to allow the 6 RFC3501 sec 2.3.2. mentioned flags \Seen,
\Answered, \Flagged, \Deleted, \Draft and \Recent, only. So in migrating
to Exchange one has to make sure, that only these flags are there and
delete all others.
Also, as Exchange rewrites the mails upon receiving, for comparison with
already existing mails, restrict to use only to the "Received:" and
"Message-ID" header.
The "Keywords are not supported" issues were with mails containing
square brackets in the "Subject:" header. These were nevertheless
transferred successfully.
A really important - but not Exchange related - point for me was, to not
use ssl if possible, or when you have huge mails, say bigger than 10MB.
It slows down the transfer greatly by the horrible memory management in
the ssl libraries - allocating space, filling it up, allocating a memory
chunk 4096 bytes bigger, memcopying the first buffer into the second,
reading 4096 byte, allocation 4096 bytes bigger buffer, memcopying, and
so on. This is OK for up until 10MB, but afterwards it takes ages for a
single mail - I remember a 75MB mail took more than 5000s on a Xeon
X7350 core with 4GB RAM!
HTH, imapsync made the migration (for which we spend top Euros for hired
external partners - which failed royally) a - lets say - walk. And:
imapsync was only the personal "Plan B". Great piece of software!
Stefan
--
Stefan Schmidt zu Hause
Bremen
Attachment:
signature.asc
Description: This is a digitally signed message part.