[imp] High Availability / Load Balancing

Jimmy Brake jimmy at isurge.com
Sat Dec 14 23:10:18 PST 2002


out of curiosity ---

why not simply use nfs with/for/whatever the dir where sessions and/or
uploaded files reside and have a simple script that 'pings' the nfs
server -- if it fails just fail over to the nfs server backup?

Jimmy


On Sat, 2002-12-14 at 22:43, Dominic Ijichi wrote:
> Hi,
> 
> > Hey All,
> > We're looking into adding a second imp front end server to provide load
> > balancing and redundancy to webmail. Forgetting for a minute how to
> > implement the actual service redundancy/load balancing (i.e. via
> > hardware, dns roundrobin etc...), I wanted to get a feel for how others
> > handled the horde/imp/turba specific issues.
> 
> I currently run two imp frontends going to single IMAP store.  Various domains 
> are pointed through DNS RR to both frontends.
> 
> > Since we currently store all prefs in ldap, I think i have boiled the
> > problems that need to be solved down to:
> 
> I store all prefs in SQL as the LDAP support doesn't seem to support proper 
> trees, last time I looked - been on my todo list for aaages, not had time to 
> fix.
> 
> > 1) Sessions - They're currently stored in files. Could a client be
> > reading or composing an email then try to load a page, end up with the
> > second horde/imp server (that doesnt have an active session) and be
> > logged out?
> 
> Yes, this does happen frequently, you have to contend for it.  I use AdoDB, and 
> prepend the session include in php.ini on both servers like this (setting the 
> session_handler to user, of course):
> 
> auto_prepend_file = "/opt/data/htdocs/sessionlib/adodb-session.php"
> 
> Then setup mysql on both servers in bidirectional replication agreements and 
> create the relevent users and databases.  Then, in horde/conf.php where the 
> custom session handler entries are:
> 
> $conf['sessionhandler']['params']['open']    = 'adodb_sess_open';
> $conf['sessionhandler']['params']['close']   = 'adodb_sess_close';
> $conf['sessionhandler']['params']['read']    = 'adodb_sess_read';
> $conf['sessionhandler']['params']['write']   = 'adodb_sess_write';
> $conf['sessionhandler']['params']['destroy'] = 'adodb_sess_destroy';
> $conf['sessionhandler']['params']['gc']      = 'adodb_sess_gc';
> 
> It's a little inefficient, as every single php page loaded through the 
> webserver preloads the whole session stuff, but it doesn't seem to slow it 
> significantly, and more importantly has provided transparent session failover 
> across all my php apps.  The point of having the bidi-sql replication is that 
> it's pretty much immediate, so when one server fails you have good confidence 
> in taking up with the other one immediately.
> 
> The downer to this is bandwidth.  I've got two servers located on different 
> networks for redundancy, and the bandwidth that the session replication uses is 
> huge, and it's all down to horde - HOWEVER, I use a heavily hacked version from 
> CVS a couple of months ago, so it may well just be down to that.  Be prepared 
> though, under moderate usage, to get replication bandwidth of 500Mb+ per day!
> 
> > 2) Attachments - Could a user upload an attachment, then send the mail
> > (using the other server that doesn't have the attachment) and get an
> > error?
> 
> Never hit this problem.  You can store attachments in SQL under VFS, so if you 
> include this in the replication it's taken care of.
> 
> Few things to consider - I've found some buggy (beta) versions of IE tend to 
> send the session handling into a loop of undetermined nature, so again 
> replication bandwidth is hammered really badly, and mysql replication 
> (deliberately) stops on any error - I tend to ignore some of them in my.cnf 
> like this:
>  slave-skip-errors=1062, 1007
> 
> Might also be worth using compression:
>  slave_compressed_protocol= 1
> 
> Hope this helps,
> dom
> 
>  
> > Has anyone dealt with redundancy / high availability and found
> > solutions to the above problems? Are there any other problems that I'm
> > not thinking about?
> > 
> > Thanks,
> > Lee
> > 
> > 
> > --
> > IMP mailing list
> > Frequently Asked Questions: http://horde.org/faq/
> > To unsubscribe, mail: imp-unsubscribe@lists.horde.org
> 
> 
> ------------------------------------------
> This message was penned by the hand of Dom
-- 
Jimmy Brake <jimmy@isurge.com>



More information about the imp mailing list