Again, you are mixing everything up.

HAProxy has it's own configuration - It defines what nodes your port 80 traffic (or whatever) is routed to. Haproxy does periodic health checks of these backend services to make sure they are available for requests. If you have multiple haproxy instances they will all independently do health checks and not share any of that information with each other. HAProxy will route traffic to all systems defined as a backend for a particular service based upon whatever criteria is in the haproxy config.

You can run a two-node environment that is active/backup from a VIP perspective, but active/active from a haproxy service perspective - Each node would run Apache (or whatever your service is) and haproxy would distribute requests across both based on your haproxy config. But, at any point in time only one node would actually be routing requests through it's local instance of haproxy.

I can't make it any simpler than that. Draw a diagram of what you are trying to do if it doesn't make sense.


On 11/29/12 2:06 PM, Hermes Flying wrote:
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 <mailto: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












Reply via email to