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