Load balance multiple servers with common storage
Andrew Morgan
morgan at orst.edu
Wed Nov 12 14:04:44 EST 2008
On Tue, 11 Nov 2008, ram wrote:
> I have been googling but couldnt see any concrete answer
> Is it possible to load balance multiple cyrus imapd connections with
> multiple servers connecting to same common storage
>
> Say , I mount the /var/spool/imap and /var/imap and the sieve dir from a
> SAN box on 2+ servers, Any user trying to access his mailbox will
> connect to any server using a h/w load balancer
> Irrespective of which server he connects to he will always see the same
> mailbox
>
> Is this a feasible solution. Will it not create locking issues on the
> mailboxes.db How many imap processes can a single mailboxes.db handle If
> I want to give a zero delay response.
> If there is requirement for more mailboxes , I just add more frontend
> boxes behind the load balancer.
>
> Can this work ?
You have to use an actual clustered file system solution to do this.
Search the mailing list archives for "cyrus cluster" and you should find
extensive discussions on this.
Some folks use a frontend proxy such as Perdition or nginx in combination
with multiple replicated backends for high-availability in order to scale
to large numbers of concurrent connections. There are some tradeoffs with
that solution also (cannot share mailboxes between backend servers).
Personally, I use the Cyrus built-in clustering (named "Murder") with 2
backends and 3 frontends. The 3 frontends are behind a ServerIron network
load balancer. The backends connect to a SAN, but they do not share the
same LUNs. This provides excellent scalability, but not
high-availability. If one of the backend servers dies, all the mailboxes
it hosts will go offline until it is replaced.
Andy
More information about the Info-cyrus
mailing list