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