Cyrus IMAP and MySQL mailboxes (Building load-balancing cluster)

Sarah Walters s.walters at its.uq.edu.au
Thu Nov 16 20:54:39 EST 2006


 

> -----Original Message-----
> From: info-cyrus-bounces at lists.andrew.cmu.edu 
> [mailto:info-cyrus-bounces at lists.andrew.cmu.edu] On Behalf Of 
> Igor Zhbanov
> Sent: Friday, 17 November 2006 10:32 AM
> To: info-cyrus at lists.andrew.cmu.edu
> Subject: Re: Cyrus IMAP and MySQL mailboxes (Building 
> load-balancing cluster)
> 
> 2006/11/17, Sarah Walters <s.walters at its.uq.edu.au>:
> > > > > The main problem is to build a shared storage that can
> > > survive server
> > > > > crashes, where mail will be stored.
> > > >
> > > > Use a SAN.
> > > First of all, such SAN must be very reliable itself. 
> Second, it must
> > > support some kind of global locking mechanism, so several 
> nodes can
> > > use lock to protect file from simultaneous writing. 
> Third, Cyrus IMAP
> > > must lock mailboxes, so several instances on different 
> server can work
> > > with one mailbox without conflicts. Whether Cyrus IMAP 
> use locks or
> > > assumes that he is the only one who access mail box, I 
> don't know. Can
> > > it safely access one mailbox from different servers, I 
> don't know too.
> >
> > A good commercial SAN costs a fortune, but it is very 
> reliable. And did
> > you want a *cluster* or a group of servers? A cluster 
> should operate as
> > if it is a single host, and thus avoid the locking issues. 
> Have a look
> > at Red Hat's clustering product for an example. If our cyrus
> > installation was going to be clustered, RH cluster with a 
> SAN backend is
> > what we would do.
> 
> Yes, I need the cluster exactly. Have I lots of domains, I could store
> mailboxes of each domain on separate server. But I have only one big
> domain. So, I need to spread mailboxes on one domain across several
> servers. And than I need very clever load-balancer that will send
> request to server where particular mailbox is. I don't know such
> balancers aware of mail system structure.

I believe that Sun's mail server can do this, but if you lost a
particular
server you would lose the mailboxes on that server (or rather, would
have
to put up a new server connected to that part of the SAN storage).

Why don't you look at throwing two beefy boxes at this problem in a
hot-spare
configuration? Have a single large box managing the mail and a heartbeat
so
that if one goes down the other immediately takes over its IP and just
keeps
going? You will lose anything that is actually in memory, but that
shouldn't
be an issue as long as you are using a SAN and immediately committing to
disk
rather than using a solution like MySQL. There is no need for load
balancing
here as far as I can tell, and what you lose in having to buy a chunkier
server
you will gain in reduced power consumption and associated data centre
costs.

Regards,
Sarah Walters


More information about the Info-cyrus mailing list