Cyrus IMAP and MySQL mailboxes (Building load-balancing cluster)
Igor Zhbanov
izh1979 at gmail.com
Thu Nov 16 19:31:52 EST 2006
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.
Another way is to try to use something like GFS, constructed from
several servers. Each server will contain one portion of data and will
have Cyrus IMAP instance. But GFS will be mounted to each server, so
each Cyrus IMAP instance will see whole filesystem. Of course, here we
have same possible lock issues as with NFS. And we have no redundancy,
as I understand.
So, I need cluster for reliability to. I want to have each mailbox at
least on two servers (or to have shared storage upon two-nodes
failover cluster), so I can survive crash of any node (and not only of
disk system, that can be protected by RAID, but CPU crash, memory...)
with minimal recovery time.
More information about the Info-cyrus
mailing list