Replicated murder question

Martin Wendel Martin.Wendel at its.uu.se
Fri Aug 26 10:38:22 EDT 2005


I'm trying to set up a replicated murder (Cyrus 2.3). I've got a  
shared storage
using IBM SAN-FS, two IMAP-servers (AIX) and a mupdate master. The  
plan is to
use two load-balancers with this solution, connecting to the IMAP- 
servers.
Since I'm new to murder I wish to get some confirmation that I'm on  
the right
track. It is a test environment but is planned to go into production  
within a
month or so. I'll attach config files below.

Mupdate seems to work, adding mailboxes on one of the IMAP-server  
propagates
to mailboxes.db on the master and the other IMAP-server. Running  
ctl_mboxlist -m
on one of the IMAP-servers removes all mailboxes:

# su mail -c ctl_mboxlist -mw
Remove Local Mailbox: user.test1
Remove Local Mailbox: user.test10
Remove Local Mailbox: user.test11
Remove Local Mailbox: user.test12
Remove Local Mailbox: user.test13
Remove Local Mailbox: user.test14
Remove Local Mailbox: user.test15
Remove Local Mailbox: user.test16
Remove Local Mailbox: user.test17
Remove Local Mailbox: user.test18
Remove Local Mailbox: user.test19
Remove Local Mailbox: user.test2
...

So I figurered, remove this from the START in cyrus.conf. After that  
it seems to
work, but I'm unsure if this is the right way.

We've got a single cyrus IMAP-host in production today, and plan to  
migrate all
mailboxes to the new murder. It is about 1TB spool in a single  
filesystem so it
is not a good way to just sync the filesystem. Mailboxes must be  
migrated using
IMAP or murder mechanism. Would it be a working approach to include  
the production
server in the murder and migrate using 'rename'? sync_server seems  
not to be
working on the test machines, however. What is the best way to do  
this, imapsync?


Config files on the IMAP-servers:

# cat cyrus.conf
# standard standalone server implementation

START {
   # do not delete this entry!
   recover       cmd="ctl_cyrusdb -r"
#  syncclient    cmd="/cyrus/server/bin/sync_client -r"
#  mupdatepush   cmd="/cyrus/server/bin/ctl_mboxlist -m"
   # this is only necessary if using idled for IMAP IDLE
#  idled                cmd="idled"
}

# UNIX sockets start with a slash and are put into /var/imap/sockets
SERVICES {
   # add or remove based on preferences
   imap          cmd="imapd" listen="imap" prefork=0 provide_uuid=1
   pop3          cmd="pop3d" listen="pop3" prefork=0 provide_uuid=1

   # LMTP is required for delivery
    mupdate      cmd="/cyrus/server/bin/mupdate" listen=3905 prefork=1
#   syncserver    cmd="/cyrus/server/bin/sync_server -v" listen="csync"
   lmtpunix      cmd="lmtpd" listen="/cyrus/server/imap/socket/lmtp"  
prefork=0 provide_uuid=1
   lmtp      cmd="lmtpd -a" listen="lmtp" prefork=0

   # this is only necessary if using notifications
#  notify       cmd="notifyd" listen="/var/imap/socket/notify"  
proto="udp" prefork=1
}

EVENTS {
   # this is required
   checkpoint    cmd="ctl_cyrusdb -c" period=30

   # this is only necessary if using duplicate delivery suppression
   delprune      cmd="ctl_deliver -E 3" at=0400

   # this is only necessary if caching TLS sessions
   tlsprune      cmd="tls_prune" at=0400
}
# cat imapd.conf
allowusermoves: yes
allowplaintext: yes
fulldirhash: true
hashimapspool: true
configdirectory: /cyrus/server/imap
partition-default: /cyrus/server/spool
admins: martinw root
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
#sync_host: elvira.its.uu.se
#sync_authname: martinw
#sync_auth: PLAIN
#sync_password: hejhopp
#sync_machineid: 1
#sync_log: yes
mupdate_config: replicated
mupdate_server: colibri.its.uu.se
mupdate_username: martinw
mupdate_authname: martinw
mupdate_password: hejhopp
#

The mupdatemaster:


# cat cyrus.conf
# standard standalone server implementation

START {
   # do not delete this entry!
   recover       cmd="ctl_cyrusdb -r"
#  syncclient   cmd="/cyrus/server/bin/sync_client -r"

   # this is only necessary if using idled for IMAP IDLE
#  idled                cmd="idled"
}

# UNIX sockets start with a slash and are put into /var/imap/sockets
SERVICES {
   # add or remove based on preferences
#  imap         cmd="imapd" listen="imap" prefork=0 provide_uuid=1
#  pop3         cmd="pop3d" listen="pop3" prefork=0 provide_uuid=1

   # LMTP is required for delivery
     mupdate     cmd="/cyrus/server/bin/mupdate -m" listen=3905  
prefork=1
#  syncserver    cmd="/cyrus/server/bin/sync_server -v" listen="csync"
#  lmtpunix     cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0  
provide_uuid=1

   # this is only necessary if using notifications
#  notify       cmd="notifyd" listen="/var/imap/socket/notify"  
proto="udp" prefork=1
}

EVENTS {
   # this is required
   checkpoint    cmd="ctl_cyrusdb -c" period=30

   # this is only necessary if using duplicate delivery suppression
   delprune      cmd="ctl_deliver -E 3" at=0400

   # this is only necessary if caching TLS sessions
   tlsprune      cmd="tls_prune" at=0400
}
# cat imapd.conf
allowplaintext: yes
configdirectory: /cyrus/server/imap
partition-default: /tmp
admins: martinw root
sasl_pw_check_method: sasldb
sasl_mech_list: PLAIN
#sync_host: elvira.its.uu.se
#sync_authname: martinw
#sync_auth: PLAIN
#sync_password: hejhopp
#sync_machineid: 1
#sync_log: yes
mupdate_config: replicated
#mupdate_server: colibri.its.uu.se
#mupdate_username: martinw
#mupdate_authname: martinw
#mupdate_password: hejhopp











More information about the Info-cyrus mailing list