Piecemeal migration

Alain Spineux aspineux at gmail.com
Fri Apr 18 08:44:02 EDT 2008


On Mon, Apr 14, 2008 at 5:42 PM, Shelley Waltz <shwaltz at cabm.rutgers.edu> wrote:
> I wish to migrate imap accounts from my current cyrus-imapd-2.2.3-4 on RHEl3
>  to cyrus-imapd-2.3.7 on RHEL5.  I have the new server installed and the db
>  formats will ramin the same on both servers except for deliver.db and
>  tls_sessions.db which will change from berkeley to skiplist.  My
>  understanding is that I can simply start with fresh db on the new server
>  and do not need to migrate these(copy and convert).
>

Right

>  I will be migrating about 250 accounts of 1GB or less.  I need to do these in
>  5-10 at a time to minimize complications and downtime.  Last time I did
>  this, it worked out well, migrating from 1.6 to 2.2 even though I did need
>  to convert dbs.  I will set up alias forwarding for the migrated accounts
>  and once all migrated, change TTL on DNS and modify records to move
>  completely to new server.
>
>  I know I need to copy from olde server to new server,
>  (1) /var/lib/imap/user/"a-z"/"username".sub,seen
>  (2) /var/lib/quota/"a-z"/user."username"
>  (3) /var/lib/imap/sieve/"a-z"/"username"/
>  and
>  (4)/var/spool/imap/"a-z"/user/"username"/
>
>  Additionally, and this was the sticky part the last time, is the
>  mailboxes.db which contains the INBOX/folder structure.  Last time, I
>  migrated my LDAP database(for authentication) and the entire
>  mailboxes.db(dumped to flatfile and then recreated on the new server)
>  before beginning to migrate the accounts in batches.  The issue arose,
>  however, of this being out of sync with some mailboxes in time as users
>  changed their folders.  Soooo, my question is, is there a way to update or
>  add new mailboxes individually using the flatfile information I can
>  extract from the old server?  Can one easily do this without stopping the
>  server?

Do you know imapsync ?
It can synchronize two imap mailbox, including SEENand ACL (but not
quota or sieve script)
You can sync all mailboxes at once using the cyrus manager account: 'cyrus'
Here is a script I used for testing, I use ssh port fowarding to bypass IMAPS
not very well supported by current imapsync

# /bin/bash
S_HOST=localhost
T_HOST=fc8asx

S_USER=cyrus
T_USER=cyrus

S_PASSWD=******
T_PASSWD=******

DOMAIN=mydomain.loc

ssh -f -L 8143:127.0.0.1:143 $T_HOST sleep 60
/kolab/bin/perl -I/kolab/lib/emailgency/perl /usr/bin/imapsync \
                --host1 $S_HOST --user1 $S_USER --authuser1 $S_USER
--password1 $S_PASSWD \
                --host2 127.0.0.1 --port2 8143 --user2 $T_USER
--authuser2 $T_USER --password2 $T_PASSWD \
                --include "^user/.*@${DOMAIN}" \
                --syncacls \

/kolab/lib/emailgency/perl  contains perl-Mail-IMAPClient-2.2.9
because imapsync like it

Hope this help regards

>
>  Any suggestions are greatly appreciated!
>  S.Waltz
>  ----
>  Cyrus Home Page: http://cyrusimap.web.cmu.edu/
>  Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
>  List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html
>



-- 
Alain Spineux
aspineux gmail com
May the sources be with you


More information about the Info-cyrus mailing list