A beginner question about Murder

Andrew Morgan morgan at orst.edu
Wed Sep 8 16:41:26 EDT 2010


On Thu, 9 Sep 2010, Shuvam Misra wrote:

> Dear all,
>
> If I have, say, three IMAP servers each hosting a few thousand mailboxes,
> and I want to aggregate all of them for the IMAP client, I'll run Murder
> on one of the servers.
>
> 1.  Can I run Murder on one of the back-end servers? If yes, it will act
>    as an aggregator for incoming connections from clients, and it will
>    also serve a part of the mailboxes. This means that the murder daemon
>    (whatever it is called) will sometimes talk to the local IMAP daemon.
>    Does this work?
>
> 2.  If yes to the last question, then can I run Murder on all my three
>    IMAP daemons? This way, I'll be able to distribute the load of both
>    aggregating and mailbox serving across all my servers, if I can tell
>    my IMAP clients to distribute their connections across these three
>    Murder servers.
>
> Can this sort of setup work? If yes, is this is a good idea, compared to
> dedicated aggregator hardware and dedicated mailbox-serving servers?
>
> I've never set up Murder (I'm sure it's obvious) and I'm wondering about
> what architecture works well. We're trying to build some multi-IMAP-server
> setups for one or two of our customers.

In a "traditional" Cyrus Murder (not a "unified" Murder), there are 3 
roles:

1. backends - these store email
2. frontends - these proxy incoming connections to the correct backend
3. mupdate master - maintains the list of mailboxes in the Murder

There can only be 1 mupdate master process.  I'm not positive if you can 
run it on a backend or frontend server, or if it must be running on a 
separate server.

We run a traditional Cyrus Murder here.  We have 3 backend servers (the 
number is determined by performance and capacity requirements).  We have 3 
frontend servers (for redundancy and performance) that sit behind a 
ServerIron hardware load balancer and all answer for 
"imap.onid.oregonstate.edu", which is the IMAP server name all of our 
clients use.  We have 1 standalone mupdate master server.

The backend servers register all of their mailboxes with the mupdate 
master, so that it has a complete list of all the mailboxes and their 
locations in the Murder.  The frontend servers read and cache the list of 
mailboxes from the mupdate master, so that they can proxy incoming IMAP 
client connections to the correct backend.

When a new mailbox is created on a backend, the backend first checks the 
mupdate master to make sure the mailbox name is not already in use.  Then 
it reserves the name, creates the mailbox, and registers the mailbox with 
the mupdate master.

Unfortunately, I've never setup a "unified" Murder, so I don't fully 
understand what the advantages and disadvantages of it compared to a 
"traditional" Murder.  Maybe someone else can jump in here with their 
experiences.

 	Andy


More information about the Info-cyrus mailing list