[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Exchange 2k7 success story


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.