You are saying that one instance of HAProxy runs in each system and one instance is assigned the VIP that clients hit-on (out of scope for HAProxy). But this HAProxy distributes the requests according to the load, either on system-A or system-B for which you seem to refer to as backup system. In what way are you now refering to it as backup system? Because I am interested in distributing the load to all the nodes.
________________________________ From: David Coulson <da...@davidcoulson.net> To: Hermes Flying <flyingher...@yahoo.com> Cc: Baptiste <bed...@gmail.com>; "haproxy@formilux.org" <haproxy@formilux.org> Sent: Thursday, November 29, 2012 8:57 PM Subject: Re: HAproxy and detect split-brain (network failures) You can do that, but haproxy doesn't have anything to do with the failover process, other than you run an instance of haproxy on one server, and another instance on your backup system. As I said, neither of the haproxy instances communicate anything, so all you need to do is move the IP clients are using from one server to the other in order to handle a failure. Moving the IP around is something keepalived, pacemaker, etc handles - Look at their documentation for specifics and challenges in a two-node config. HAProxy doesn't have a concent of primary and backup in terms of it's own instances. Each of them is stand alone. It's up to you, based on your network/IP config which one has traffic routed to it. David On 11/29/12 1:53 PM, Hermes Flying wrote: But if I install 2 HAProxy as load balancers, doesn't one act as the primary loadbalancer directing the load to the known servers while the secondary takes over load distribution as soon as the heartbeat fails? I remember reading this. Is this wrong? > > >From: David Coulson mailto:da...@davidcoulson.net >To: Hermes Flying mailto:flyingher...@yahoo.com >Cc: Baptiste mailto:bed...@gmail.com; mailto:haproxy@formilux.org >mailto:haproxy@formilux.org >Sent: Thursday, November 29, 2012 8:39 PM >Subject: Re: HAproxy and detect split-brain (network failures) > > >You are mixing two totally different things together. > >1) HAProxy will do periodic health checks of backend systems you are routing to. Depending if you configure something as 'backup' or 'not backup' will determine if/how traffic is routed to it. The backend systems do not 'take over'. Haproxy just routes traffic to systems based on your configuration. The backend systems don't know/care about the other backend nodes, unless your application requires it which is a different story and nothing to do with haproxy. HAproxy only cares about a single instance of itself - If you have more than one haproxy instance, they do NOT communicate anything between each other. > >2) In terms of keepalived, pacemaker, etc, it makes no difference which you use with haproxy - all they do is manage the IP address(es) which haproxy is listening on, and perhaps restart haproxy if it dies. Their configuration and how you maintain quorum in a two-node configuration is a question for one of their mailing lists, or just read their documentation. I personally use pacemaker. > > >On 11/29/12 1:35 PM, Hermes Flying wrote: > >Well I don't follow: >>"You can have a pool of primary that it routes across, then backup systems >>that are only used when all primary systems are unavailable." >>When you are saying that "the backup systems that are used when primary >>systems are unavailable", how do they decide to take over? How do they know >>that the other systems are unavailable? >>Are you saying that they depend on third party components like the ones you >>mentioned (Keepalived etc)? In this case, what is the most suitable tool to >>be used along with HAProxy? Is there a reference manual for this somewhere? >> >> >> >>From: David Coulson mailto:da...@davidcoulson.net >>To: Hermes Flying mailto:flyingher...@yahoo.com >>Cc: Baptiste mailto:bed...@gmail.com; mailto:haproxy@formilux.org >>mailto:haproxy@formilux.org >>Sent: Thursday, November 29, 2012 8:21 PM >>Subject: Re: HAproxy and detect split-brain (network failures) >> >> >>HAProxy only does primary and backup in terms of active backend systems - You >>can have a pool of primary that it routes across, then backup systems that >>are only used when all primary systems are unavailable. >> >>There is no concept of a cluster in terms of haproxy instances, although you can run more than one and manage them via something like pacemaker, keepalived or rgmanager. >> >> >>On 11/29/12 1:19 PM, Hermes Flying wrote: >> >>Hi, >>>From a quick look into HAProxy, I see that it is a Primary/backup >>>architecture. So isn't ensuring that both "nodes" don't become primary part >>>of HAProxy's primary/backup "protocol" ? >>> >>> >>>From: Baptiste mailto:bed...@gmail.com >>>To: Hermes Flying mailto:flyingher...@yahoo.com >>>Cc: mailto:haproxy@formilux.org mailto:haproxy@formilux.org >>>Sent: Thursday, November 29, 2012 3:02 PM >>>Subject: Re: HAproxy and detect split-brain (network failures) >>> >>>Hi, >>> >>>This is not HAProxy's role, this is the tool you use to ensure high >>>availability to do that. >>> >>>I could see a way where HAProxy can report one interface failing, >>>maybe this could help you to detect if you're in a split brain >>>situation. >>> >>>cheers >>> >>> >>> >>>On Thu, Nov 29, 2012 at 11:51 AM, Hermes Flying <flyingher...@yahoo.com> wrote: >>>> Hi, >>>> I am looking into using HAProxy as our load balancer. >>>> I see that you are using a primary/backup approach. I was wondering how does >>>> HAProxy (if it does) address split-brain situation? Do you have a mechanism >>>> to detect and avoid it? Do you have some standard recommendation to all >>>> those using your solution? >>>> >>>> Thanks >>> >>> >>> >> >> >> > > >